Skip to content

Commit 535d19f

Browse files
committed
feat(kbuild): Add kselftest disable option
Some kernel builds does not require to build kselftest. Also remove disable_modules option as its dynamic now. Signed-off-by: Denys Fedoryshchenko <denys.f@collabora.com>
1 parent 510a989 commit 535d19f

1 file changed

Lines changed: 47 additions & 38 deletions

File tree

kernelci/kbuild.py

Lines changed: 47 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
- cross_compile: cross compile prefix
2222
- cross_compile_compat: cross compile compat prefix
2323
- dtbs_check: run "make dtbs_check" ONLY, it is actually a separate test
24+
- kselftest: false - do not build kselftest
2425
"""
2526

2627
import os
@@ -151,7 +152,10 @@ def __init__(self, node=None, jobname=None, params=None, jsonobj=None, apiconfig
151152
self._dtbs_check = params['dtbs_check']
152153
else:
153154
self._dtbs_check = False
154-
self._disable_modules = params.get('disable_modules', False)
155+
if params.get('kselftest') == 'disable':
156+
self._kfselftest = False
157+
else:
158+
self._kfselftest = True
155159
self._apijobname = jobname
156160
self._steps = []
157161
self._artifacts = []
@@ -205,7 +209,7 @@ def __init__(self, node=None, jobname=None, params=None, jsonobj=None, apiconfig
205209
)
206210
self._full_artifacts = jsonobj['full_artifacts']
207211
self._dtbs_check = jsonobj['dtbs_check']
208-
self._disable_modules = jsonobj['disable_modules']
212+
self._kfselftest = jsonobj['kfselftest']
209213
return
210214
raise ValueError("No valid arguments provided")
211215

@@ -303,11 +307,11 @@ def init_steps(self):
303307
if not self._dtbs_check:
304308
self._artifacts.append("build_kimage.log")
305309
self._artifacts.append("build_kimage_stderr.log")
306-
if not self._disable_modules:
307-
self._artifacts.append("build_modules.log")
308-
self._artifacts.append("build_modules_stderr.log")
309-
self._artifacts.append("build_kselftest.log")
310-
self._artifacts.append("build_kselftest_stderr.log")
310+
self._artifacts.append("build_modules.log")
311+
self._artifacts.append("build_modules_stderr.log")
312+
if self._kfselftest:
313+
self._artifacts.append("build_kselftest.log")
314+
self._artifacts.append("build_kselftest_stderr.log")
311315
# disable DTBS for some archs
312316
if self._arch not in DTBS_DISABLED:
313317
self._artifacts.append("build_dtbs.log")
@@ -542,15 +546,15 @@ def _generate_script(self):
542546
# We can check that if fragments have CONFIG_EXTRA_FIRMWARE
543547
self._fetch_firmware()
544548
self._build_kernel()
545-
if not self._disable_modules:
546-
self._build_modules()
547-
self._build_kselftest()
549+
self._build_modules()
550+
if self._kfselftest:
551+
self._build_kselftest()
548552
if self._arch not in DTBS_DISABLED:
549553
self._build_dtbs()
550554
self._package_kimage()
551-
if not self._disable_modules:
552-
self._package_modules()
553-
self._package_kselftest()
555+
self._package_modules()
556+
if self._kfselftest:
557+
self._package_kselftest()
554558
if self._arch not in DTBS_DISABLED:
555559
self._package_dtbs()
556560
else:
@@ -923,11 +927,12 @@ def submit(self, retcode, dry_run=False):
923927
# TODO(nuclearcat):
924928
# Add child_nodes for each sub-step
925929
# do we have kselftest_tar_gz in artifact keys? then node is ok
926-
kselftest_result = 'fail'
927-
for artifact in af_uri:
928-
if artifact == 'kselftest_tar_gz':
929-
kselftest_result = 'pass'
930-
break
930+
if self._kfselftest:
931+
kselftest_result = 'fail'
932+
for artifact in af_uri:
933+
if artifact == 'kselftest_tar_gz':
934+
kselftest_result = 'pass'
935+
break
931936

932937
results = {
933938
'node': {
@@ -953,26 +958,30 @@ def submit(self, retcode, dry_run=False):
953958
results['node']['data']['fragments'] = self._fragments
954959
results['node']['data']['config_full'] = self._config_full
955960

956-
kselftest_node = self._node.copy()
957-
# remove id to not have same as parent
958-
kselftest_node.pop('id')
959-
kselftest_node['name'] = kselftest_node['name'] + "-kselftest"
960-
kselftest_node['kind'] = 'test'
961-
existing_path = kselftest_node.get('path')
962-
if existing_path and isinstance(existing_path, list):
963-
kselftest_node['path'] = existing_path.append(kselftest_node['name'])
964-
kselftest_node['parent'] = self._node['id']
965-
kselftest_node['data'] = results['node']['data'].copy()
966-
kselftest_node['artifacts'] = None
967-
kselftest_node['state'] = 'done'
968-
kselftest_node['result'] = kselftest_result
969-
970-
child_nodes = [
971-
{
972-
'node': kselftest_node,
973-
'child_nodes': []
974-
}
975-
]
961+
# if we have kselftest, we need to add child node
962+
if self._kfselftest:
963+
kselftest_node = self._node.copy()
964+
# remove id to not have same as parent
965+
kselftest_node.pop('id')
966+
kselftest_node['name'] = kselftest_node['name'] + "-kselftest"
967+
kselftest_node['kind'] = 'test'
968+
existing_path = kselftest_node.get('path')
969+
if existing_path and isinstance(existing_path, list):
970+
kselftest_node['path'] = existing_path.append(kselftest_node['name'])
971+
kselftest_node['parent'] = self._node['id']
972+
kselftest_node['data'] = results['node']['data'].copy()
973+
kselftest_node['artifacts'] = None
974+
kselftest_node['state'] = 'done'
975+
kselftest_node['result'] = kselftest_result
976+
977+
child_nodes = [
978+
{
979+
'node': kselftest_node,
980+
'child_nodes': []
981+
}
982+
]
983+
else:
984+
child_nodes = []
976985

977986
results['child_nodes'] = child_nodes
978987
api_helper = kernelci.api.helper.APIHelper(api)

0 commit comments

Comments
 (0)