[PATCH] D51328: Fix lit/example/many-tests pickling issue

Nathan Lanza via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 27 15:56:41 PDT 2018


lanza created this revision.
Herald added subscribers: llvm-commits, delcypher.

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


Repository:
  rL LLVM

https://reviews.llvm.org/D51328

Files:
  utils/lit/examples/many-tests/ManyTests.py
  utils/lit/examples/many-tests/lit.cfg


Index: utils/lit/examples/many-tests/lit.cfg
===================================================================
--- utils/lit/examples/many-tests/lit.cfg
+++ utils/lit/examples/many-tests/lit.cfg
@@ -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()
Index: utils/lit/examples/many-tests/ManyTests.py
===================================================================
--- utils/lit/examples/many-tests/ManyTests.py
+++ utils/lit/examples/many-tests/ManyTests.py
@@ -1,5 +1,3 @@
-# -*- Python -*-
-
 from lit import Test
 
 class ManyTests(object):
@@ -12,12 +10,9 @@
             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()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51328.162766.patch
Type: text/x-patch
Size: 1713 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180827/dc007737/attachment.bin>


More information about the llvm-commits mailing list