unittest / add options to set the number of jobs
This commit is contained in:
		
							
								
								
									
										17
									
								
								test/run.py
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								test/run.py
									
									
									
									
									
								
							| @@ -269,12 +269,12 @@ def executeJob(job): | ||||
|     return job | ||||
|  | ||||
|  | ||||
| def executeJobs(jobs): | ||||
| def executeJobs(jobs, cpuCount): | ||||
|     '''Execute a list of job concurrently on multiple CPU/cores''' | ||||
|  | ||||
|     poolSize = multiprocessing.cpu_count() | ||||
|     print('Using {} cores to execute the unittest'.format(cpuCount)) | ||||
|  | ||||
|     pool = multiprocessing.Pool(poolSize) | ||||
|     pool = multiprocessing.Pool(cpuCount) | ||||
|     results = pool.map(executeJob, jobs) | ||||
|     pool.close() | ||||
|     pool.join() | ||||
| @@ -346,7 +346,8 @@ def generateXmlOutput(results, xmlOutput, testRunName, runTime): | ||||
|         f.write(content.encode('utf-8')) | ||||
|  | ||||
|  | ||||
| def run(testName, buildDir, sanitizer, xmlOutput, testRunName, buildOnly, useLLDB): | ||||
| def run(testName, buildDir, sanitizer, xmlOutput, | ||||
|         testRunName, buildOnly, useLLDB, cpuCount): | ||||
|     '''Main driver. Run cmake, compiles, execute and validate the testsuite.''' | ||||
|  | ||||
|     # gen build files with CMake | ||||
| @@ -405,7 +406,7 @@ def run(testName, buildDir, sanitizer, xmlOutput, testRunName, buildOnly, useLLD | ||||
|         }) | ||||
|  | ||||
|     start = time.time() | ||||
|     results = executeJobs(jobs) | ||||
|     results = executeJobs(jobs, cpuCount) | ||||
|     runTime = time.time() - start | ||||
|     generateXmlOutput(results, xmlOutput, testRunName, runTime) | ||||
|  | ||||
| @@ -455,6 +456,8 @@ def main(): | ||||
|                         help='Run the test through lldb.') | ||||
|     parser.add_argument('--run_name', '-n', | ||||
|                         help='Name of the test run.') | ||||
|     parser.add_argument('--cpu_count', '-j', | ||||
|                         help='Number of cpus to use for running the tests.') | ||||
|  | ||||
|     args = parser.parse_args() | ||||
|  | ||||
| @@ -499,8 +502,10 @@ def main(): | ||||
|         print('LLDB is only supported on Apple at this point') | ||||
|         args.lldb = False | ||||
|  | ||||
|     cpuCount = args.cpu_count or multiprocessing.cpu_count() | ||||
|  | ||||
|     return run(args.test, buildDir, sanitizer, xmlOutput,  | ||||
|                testRunName, args.build_only, args.lldb) | ||||
|                testRunName, args.build_only, args.lldb, cpuCount) | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|   | ||||
		Reference in New Issue
	
	Block a user