[llvm] r342269 - Fix lit/example/many-tests pickling issue

Alex Langford via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 14 12:44:09 PDT 2018


Author: xiaobai
Date: Fri Sep 14 12:44:09 2018
New Revision: 342269

URL: http://llvm.org/viewvc/llvm-project?rev=342269&view=rev
Log:
Fix lit/example/many-tests pickling issue

Summary:
The multiprocess module uses pickling to transfer
information between processes and does not know how to pickle
the class created in the lit.cfg file and thus the example
fails.

Implement ManyTests in a separate file and import for the
example test passes

Patch by Nathan Lanza <nathan at lanza.io>

Differential Revision: https://reviews.llvm.org/D51328

Added:
    llvm/trunk/utils/lit/examples/many-tests/ManyTests.py
      - copied, changed from r340788, llvm/trunk/utils/lit/examples/many-tests/lit.cfg
Modified:
    llvm/trunk/utils/lit/examples/many-tests/lit.cfg

Copied: llvm/trunk/utils/lit/examples/many-tests/ManyTests.py (from r340788, llvm/trunk/utils/lit/examples/many-tests/lit.cfg)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/examples/many-tests/ManyTests.py?p2=llvm/trunk/utils/lit/examples/many-tests/ManyTests.py&p1=llvm/trunk/utils/lit/examples/many-tests/lit.cfg&r1=340788&r2=342269&rev=342269&view=diff
==============================================================================
--- llvm/trunk/utils/lit/examples/many-tests/lit.cfg (original)
+++ llvm/trunk/utils/lit/examples/many-tests/ManyTests.py Fri Sep 14 12:44:09 2018
@@ -1,23 +1,18 @@
-# -*- Python -*-
-
 from lit import Test
 
+
 class ManyTests(object):
     def __init__(self, N=10000):
         self.N = N
 
-    def getTestsInDirectory(self, testSuite, path_in_suite,
-                            litConfig, localConfig):
+    def getTestsInDirectory(self, testSuite, path_in_suite, litConfig, localConfig):
         for i in range(self.N):
-            test_name = 'test-%04d' % (i,)
-            yield Test.Test(testSuite, path_in_suite + (test_name,),
-                            localConfig)
+            test_name = "test-%04d" % (i,)
+            yield Test.Test(testSuite, path_in_suite + (test_name,), localConfig)
 
     def execute(self, test, litConfig):
         # Do a "non-trivial" amount of Python work.
         sum = 0
         for i in range(10000):
             sum += i
-        return Test.PASS,''
-
-config.test_format = ManyTests()
+        return Test.PASS, ""

Modified: llvm/trunk/utils/lit/examples/many-tests/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/examples/many-tests/lit.cfg?rev=342269&r1=342268&r2=342269&view=diff
==============================================================================
--- llvm/trunk/utils/lit/examples/many-tests/lit.cfg (original)
+++ llvm/trunk/utils/lit/examples/many-tests/lit.cfg Fri Sep 14 12:44:09 2018
@@ -1,23 +1,8 @@
 # -*- Python -*-
 
-from lit import Test
+import sys
+import os
+sys.path.insert(0, os.path.dirname(__file__))
+import ManyTests
 
-class ManyTests(object):
-    def __init__(self, N=10000):
-        self.N = N
-
-    def getTestsInDirectory(self, testSuite, path_in_suite,
-                            litConfig, localConfig):
-        for i in range(self.N):
-            test_name = 'test-%04d' % (i,)
-            yield Test.Test(testSuite, path_in_suite + (test_name,),
-                            localConfig)
-
-    def execute(self, test, litConfig):
-        # Do a "non-trivial" amount of Python work.
-        sum = 0
-        for i in range(10000):
-            sum += i
-        return Test.PASS,''
-
-config.test_format = ManyTests()
+config.test_format = ManyTests.ManyTests()




More information about the llvm-commits mailing list