no global variables in test suites
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 4 Jun 2020 19:12:11 +0000 (20:12 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 4 Jun 2020 19:12:11 +0000 (20:12 +0100)
src/soc/fu/alu/test/test_pipe_caller.py
src/soc/fu/compunits/test/test_alu_compunit.py

index 3e843a0c7d585137b525e205634dae9b0cf42307..f3e021f4380bf6b9138ed7e01683fd82ee78c303 100644 (file)
@@ -96,16 +96,16 @@ def set_alu_inputs(alu, dec2, sim):
 # massively. Before, it took around 1 minute on my computer, now it
 # takes around 3 seconds
 
-test_data = []
-
 
 class ALUTestCase(FHDLTestCase):
+    test_data = []
+
     def __init__(self, name):
         super().__init__(name)
         self.test_name = name
     def run_tst_program(self, prog, initial_regs=None, initial_sprs=None):
         tc = TestCase(prog, self.test_name, initial_regs, initial_sprs)
-        test_data.append(tc)
+        self.test_data.append(tc)
 
     def test_rand(self):
         insns = ["add", "add.", "subf"]
@@ -276,7 +276,7 @@ class TestRunner(FHDLTestCase):
 if __name__ == "__main__":
     unittest.main(exit=False)
     suite = unittest.TestSuite()
-    suite.addTest(TestRunner(test_data))
+    suite.addTest(TestRunner(ALUTestCase.test_data))
 
     runner = unittest.TextTestRunner()
     runner.run(suite)
index 7de152ab7efeafe13cbab01abb39b7a72ea39748..33ec89e1414549593c1394bb16e1dba07dcc88d3 100644 (file)
@@ -1,10 +1,8 @@
 import unittest
 from soc.decoder.power_enums import (XER_bits, Function)
 
-# XXX bad practice: use of global variables
 from soc.fu.alu.test.test_pipe_caller import get_cu_inputs
 from soc.fu.alu.test.test_pipe_caller import ALUTestCase # creates the tests
-from soc.fu.alu.test.test_pipe_caller import test_data # imports the data
 
 from soc.fu.compunits.compunits import ALUFunctionUnit
 from soc.fu.compunits.test.test_compunit import TestRunner
@@ -73,7 +71,7 @@ class ALUTestRunner(TestRunner):
 if __name__ == "__main__":
     unittest.main(exit=False)
     suite = unittest.TestSuite()
-    suite.addTest(ALUTestRunner(test_data))
+    suite.addTest(ALUTestRunner(ALUTestCase.test_data))
 
     runner = unittest.TextTestRunner()
     runner.run(suite)