Merge "kunit: test: port test abort support to x86" into kunit/alpha/master
diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
index 5ba3a2a..dc4d14d 100755
--- a/tools/testing/kunit/kunit.py
+++ b/tools/testing/kunit/kunit.py
@@ -15,7 +15,7 @@
 
 from collections import namedtuple
 
-KunitRequest = namedtuple('KunitRequest', ['raw_output','timeout'])
+KunitRequest = namedtuple('KunitRequest', ['raw_output','timeout', 'jobs'])
 
 KunitResult = namedtuple('KunitResult', ['status','result'])
 
@@ -36,7 +36,7 @@
 	print(kunit_parser.timestamp('Building KUnit Kernel ...'))
 
 	build_start = time.time()
-	build_result = linux.build_um_kernel()
+	build_result = linux.build_um_kernel(request.jobs)
 	build_end = time.time()
 	if build_result.status != kunit_kernel.BuildStatus.SUCCESS:
 		return KunitResult(KunitStatus.BUILD_FAILURE, build_result)
@@ -92,6 +92,11 @@
 				default=300,
 				metavar='timeout')
 
+	run_parser.add_argument('--jobs',
+				help='As in the make command, "Specifies  the number of '
+				'jobs (commands) to run simultaneously."',
+				type=int, default=8, metavar='jobs')
+
 	new_parser = subparser.add_parser(
 			'new',
 			help='Prints out boilerplate for writing new tests.')
@@ -112,9 +117,11 @@
 	if cli_args.subcommand == 'new':
 		print_test_skeletons(cli_args)
 	elif cli_args.subcommand == 'run':
-		request = KunitRequest(cli_args.raw_output, cli_args.timeout)
+		request = KunitRequest(cli_args.raw_output,
+				       cli_args.timeout,
+				       cli_args.jobs)
 		result = run_tests(linux, request)
-		if result.status == KunitStatus.TEST_FAILURE:
+		if result.status != KunitStatus.SUCCESS:
 			sys.exit(1)
 	else:
 		parser.print_help()
diff --git a/tools/testing/kunit/kunit_kernel.py b/tools/testing/kunit/kunit_kernel.py
index bd81c82..1cbb2ee 100644
--- a/tools/testing/kunit/kunit_kernel.py
+++ b/tools/testing/kunit/kunit_kernel.py
@@ -50,9 +50,9 @@
 		except subprocess.CalledProcessError as e:
 			raise ConfigError(e.output)
 
-	def make(self):
+	def make(self, jobs):
 		try:
-			subprocess.check_output(['make', 'ARCH=um'])
+			subprocess.check_output(['make', 'ARCH=um', '--jobs=' + str(jobs)])
 		except OSError as e:
 			raise BuildError('Could not call execute make: ' + e)
 		except subprocess.CalledProcessError as e:
@@ -137,13 +137,13 @@
 			print('Generating .config ...')
 			return self.build_config()
 
-	def build_um_kernel(self):
+	def build_um_kernel(self, jobs):
 		try:
 			self._ops.make_olddefconfig()
-			self._ops.make()
+			self._ops.make(jobs)
 		except (ConfigError, BuildError) as e:
 			logging.error(e)
-			return BuildResult(BuildStatus.FAILURE, e.message)
+			return BuildResult(BuildStatus.FAILURE, str(e))
 		used_kconfig = kunit_config.Kconfig()
 		used_kconfig.read_from_file(KCONFIG_PATH)
 		try: