[igt-dev] [PATCH i-g-t 8/8] lib/igt_kmod: fix nesting igt_fixture in igt_subtest
Dominik Karol Piatkowski
dominik.karol.piatkowski at intel.com
Mon Jun 5 10:47:16 UTC 2023
Fix the following issue:
$ ./build/tests/drm_buddy
Starting subtest: all-tests
nesting igt_fixture in igt_subtest is invalid
please refer to lib/igt_core documentation
Signed-off-by: Dominik Karol Piątkowski <dominik.karol.piatkowski at intel.com>
Cc: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>
Cc: Mauro Carvalho Chehab <mauro.chehab at linux.intel.com>
---
lib/igt_kmod.c | 80 ++++++++++++++++++++++++--------------------------
1 file changed, 38 insertions(+), 42 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index c62eb97a..2c0cc026 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -772,47 +772,45 @@ static int __igt_kunit(const char *module_name, const char *opts)
return ret;
}
- igt_fixture {
- if (igt_ktest_begin(&tst) != 0) {
- igt_warn("Unable to begin ktest for %s\n", module_name);
+ if (igt_ktest_begin(&tst) != 0) {
+ igt_warn("Unable to begin ktest for %s\n", module_name);
- igt_ktest_fini(&tst);
- return ret;
- }
+ igt_ktest_fini(&tst);
+ return ret;
+ }
- if (tst.kmsg < 0) {
- igt_warn("Could not open /dev/kmsg\n");
- goto unload;
- }
+ if (tst.kmsg < 0) {
+ igt_warn("Could not open /dev/kmsg\n");
+ goto unload;
+ }
- if (lseek(tst.kmsg, 0, SEEK_END)) {
- igt_warn("Could not seek the end of /dev/kmsg\n");
- goto unload;
- }
+ if (lseek(tst.kmsg, 0, SEEK_END)) {
+ igt_warn("Could not seek the end of /dev/kmsg\n");
+ goto unload;
+ }
- f = fdopen(tst.kmsg, "r");
+ f = fdopen(tst.kmsg, "r");
- if (f == NULL) {
- igt_warn("Could not turn /dev/kmsg file descriptor into a FILE pointer\n");
- goto unload;
- }
+ if (f == NULL) {
+ igt_warn("Could not turn /dev/kmsg file descriptor into a FILE pointer\n");
+ goto unload;
+ }
- /* The KUnit module is required for running any KUnit tests */
- if (igt_kmod_load("kunit", NULL) != 0 ||
- kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod) != 0) {
- igt_warn("Unable to load KUnit\n");
- igt_fail(IGT_EXIT_FAILURE);
- }
+ /* The KUnit module is required for running any KUnit tests */
+ if (igt_kmod_load("kunit", NULL) != 0 ||
+ kmod_module_new_from_name(kmod_ctx(), "kunit", &kunit_kmod) != 0) {
+ igt_warn("Unable to load KUnit\n");
+ igt_fail(IGT_EXIT_FAILURE);
+ }
- is_builtin = kmod_module_get_initstate(kunit_kmod) == KMOD_MODULE_BUILTIN;
+ is_builtin = kmod_module_get_initstate(kunit_kmod) == KMOD_MODULE_BUILTIN;
- results = ktap_parser_start(f, is_builtin);
+ results = ktap_parser_start(f, is_builtin);
- if (igt_kmod_load(module_name, opts) != 0) {
- igt_warn("Unable to load %s module\n", module_name);
- ret = ktap_parser_stop();
- igt_fail(IGT_EXIT_FAILURE);
- }
+ if (igt_kmod_load(module_name, opts) != 0) {
+ igt_warn("Unable to load %s module\n", module_name);
+ ret = ktap_parser_stop();
+ igt_fail(IGT_EXIT_FAILURE);
}
while (READ_ONCE(results->still_running) || READ_ONCE(results->head) != NULL)
@@ -820,7 +818,7 @@ static int __igt_kunit(const char *module_name, const char *opts)
if (READ_ONCE(results->head) != NULL) {
pthread_mutex_lock(&results->mutex);
- igt_subtest(results->head->test_name) {
+ igt_dynamic(results->head->test_name) {
if (READ_ONCE(results->head->passed))
igt_success();
else
@@ -836,19 +834,17 @@ static int __igt_kunit(const char *module_name, const char *opts)
}
unload:
- igt_fixture {
- igt_ktest_end(&tst);
+ igt_ktest_end(&tst);
- igt_ktest_fini(&tst);
+ igt_ktest_fini(&tst);
- ret = ktap_parser_stop();
+ ret = ktap_parser_stop();
- if (ret != 0)
- ret = IGT_EXIT_ABORT;
+ if (ret != 0)
+ ret = IGT_EXIT_ABORT;
- if (ret == 0)
- igt_success();
- }
+ if (ret == 0)
+ igt_success();
return ret;
}
--
2.34.1
More information about the igt-dev
mailing list