1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00

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@lanza.io>

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

llvm-svn: 342269
This commit is contained in:
Alex Langford 2018-09-14 19:44:09 +00:00
parent 023adc2eda
commit 6602205ee0
2 changed files with 23 additions and 20 deletions

View File

@ -0,0 +1,18 @@
from lit import Test
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, ""

View File

@ -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()