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

index 2591bcd41820740c13ba476306e901d18370f3da..a5e9f7143c82aec754f16fbc213bd96da8b3679b 100644 (file)
@@ -1,9 +1,7 @@
 import unittest
 from soc.decoder.power_enums import (XER_bits, Function)
 
-# XXX bad practice: use of global variables
 from soc.fu.logical.test.test_pipe_caller import LogicalTestCase, get_cu_inputs
-from soc.fu.logical.test.test_pipe_caller import test_data
 
 from soc.fu.compunits.compunits import LogicalFunctionUnit
 from soc.fu.compunits.test.test_compunit import TestRunner
@@ -66,7 +64,7 @@ class LogicalTestRunner(TestRunner):
 if __name__ == "__main__":
     unittest.main(exit=False)
     suite = unittest.TestSuite()
-    suite.addTest(LogicalTestRunner(test_data))
+    suite.addTest(LogicalTestRunner(LogicalTestCase.test_data))
 
     runner = unittest.TextTestRunner()
     runner.run(suite)
index f64ea5311d13fc97af91439239456abad8fe82f3..c74dbe45192b5ebe47dfc40d06c5eb6dd49a3e35 100644 (file)
@@ -82,17 +82,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 LogicalTestCase(FHDLTestCase):
+    test_data = []
     def __init__(self, name):
         super().__init__(name)
         self.test_name = name
 
     def run_tst_program(self, prog, initial_regs=[0] * 32, initial_sprs={}):
         tc = TestCase(prog, initial_regs, initial_sprs, self.test_name)
-        test_data.append(tc)
+        self.test_data.append(tc)
 
     def test_rand(self):
         insns = ["and", "or", "xor"]
@@ -260,7 +259,7 @@ class TestRunner(FHDLTestCase):
 if __name__ == "__main__":
     unittest.main(exit=False)
     suite = unittest.TestSuite()
-    suite.addTest(TestRunner(test_data))
+    suite.addTest(TestRunner(LogicalTestCase.test_data))
 
     runner = unittest.TextTestRunner()
     runner.run(suite)