* [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins
@ 2019-05-09 10:03 Arkadiusz Hiler
2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 2/5] lib/tests/igt_subtest_group: Operate within defined behavior Arkadiusz Hiler
` (8 more replies)
0 siblings, 9 replies; 15+ messages in thread
From: Arkadiusz Hiler @ 2019-05-09 10:03 UTC (permalink / raw)
To: igt-dev
Disable the memory allocating builtins as they may cause unexpected behavior
with our framework. They *may* get optimized out in favor of a register or
stack variable, making them effectively local.
Local variables do not play well with longjmp, which we use for fixtures
and subtests.
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
meson.build | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/meson.build b/meson.build
index 8196ab63..2d54c28f 100644
--- a/meson.build
+++ b/meson.build
@@ -62,6 +62,12 @@ cc_args = [
'-Werror=sequence-point',
'-Werror=trigraphs',
'-Werror=write-strings',
+# Disable the memory allocating builtins as they may cause unexpected behavior
+# with our framework. They *may* get optimized out in favor of a register or
+# stack variable, making them effectively local. Local variables do not play
+# well with longjmp which is heavily used by IGT framework.
+ '-fno-builtin-malloc',
+ '-fno-builtin-calloc',
]
foreach cc_arg : cc_args
--
2.20.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 15+ messages in thread* [igt-dev] [PATCH i-g-t 2/5] lib/tests/igt_subtest_group: Operate within defined behavior 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler @ 2019-05-09 10:03 ` Arkadiusz Hiler 2019-05-09 10:31 ` Ser, Simon 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 3/5] runner_tests: " Arkadiusz Hiler ` (7 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Arkadiusz Hiler @ 2019-05-09 10:03 UTC (permalink / raw) To: igt-dev Quoting lib/igt_core.c: * - Code blocks with magic control flow are implemented with setjmp() and * longjmp(). This applies to #igt_fixture and #igt_subtest blocks and all the * three variants to finish test: igt_success(), igt_skip() and igt_fail(). * Mostly this is of no concern, except when such a control block changes * stack variables defined in the same function as the control block resides. * Any store/load behaviour after a longjmp() is ill-defined for these * variables. Avoid such code. * * Quoting the man page for longjmp(): * * "The values of automatic variables are unspecified after a call to * longjmp() if they meet all the following criteria:" * - "they are local to the function that made the corresponding setjmp() call; * - "their values are changed between the calls to setjmp() and longjmp(); and * - "they are not declared as volatile." igt_subtest_group test uses two local variables for tracking the state of execution, making sure that skips are working correctly. We can just make them volatile to be back on the defined grounds. Cc: Simon Ser <simon.ser@intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> --- lib/tests/igt_subtest_group.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/tests/igt_subtest_group.c b/lib/tests/igt_subtest_group.c index 7783d021..d8e7d861 100644 --- a/lib/tests/igt_subtest_group.c +++ b/lib/tests/igt_subtest_group.c @@ -28,8 +28,8 @@ igt_main { - bool t1 = false; - int t2 = 0; + volatile bool t1 = false; + volatile int t2 = 0; igt_subtest_group { igt_fixture { -- 2.20.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/5] lib/tests/igt_subtest_group: Operate within defined behavior 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 2/5] lib/tests/igt_subtest_group: Operate within defined behavior Arkadiusz Hiler @ 2019-05-09 10:31 ` Ser, Simon 2019-05-09 11:11 ` Arkadiusz Hiler 0 siblings, 1 reply; 15+ messages in thread From: Ser, Simon @ 2019-05-09 10:31 UTC (permalink / raw) To: Hiler, Arkadiusz, igt-dev@lists.freedesktop.org On Thu, 2019-05-09 at 13:03 +0300, Arkadiusz Hiler wrote: > Quoting lib/igt_core.c: > * - Code blocks with magic control flow are implemented with setjmp() and > * longjmp(). This applies to #igt_fixture and #igt_subtest blocks and all the > * three variants to finish test: igt_success(), igt_skip() and igt_fail(). > * Mostly this is of no concern, except when such a control block changes > * stack variables defined in the same function as the control block resides. > * Any store/load behaviour after a longjmp() is ill-defined for these > * variables. Avoid such code. > * > * Quoting the man page for longjmp(): > * > * "The values of automatic variables are unspecified after a call to > * longjmp() if they meet all the following criteria:" > * - "they are local to the function that made the corresponding setjmp() call; > * - "their values are changed between the calls to setjmp() and longjmp(); and > * - "they are not declared as volatile." > > igt_subtest_group test uses two local variables for tracking the state > of execution, making sure that skips are working correctly. > > We can just make them volatile to be back on the defined grounds. > > Cc: Simon Ser <simon.ser@intel.com> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> > --- > lib/tests/igt_subtest_group.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/lib/tests/igt_subtest_group.c b/lib/tests/igt_subtest_group.c > index 7783d021..d8e7d861 100644 > --- a/lib/tests/igt_subtest_group.c > +++ b/lib/tests/igt_subtest_group.c > @@ -28,8 +28,8 @@ > > igt_main > { > - bool t1 = false; > - int t2 = 0; > + volatile bool t1 = false; > + volatile int t2 = 0; Hi, I think a little comment explaining why these need to be volatile would be a good addition to this patch. Something among the lines of: "Local variables updated in subtests have undefined contents unless marked as volatile". > igt_subtest_group { > igt_fixture { _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/5] lib/tests/igt_subtest_group: Operate within defined behavior 2019-05-09 10:31 ` Ser, Simon @ 2019-05-09 11:11 ` Arkadiusz Hiler 2019-05-09 11:30 ` Ser, Simon 0 siblings, 1 reply; 15+ messages in thread From: Arkadiusz Hiler @ 2019-05-09 11:11 UTC (permalink / raw) To: Ser, Simon; +Cc: igt-dev@lists.freedesktop.org On Thu, May 09, 2019 at 01:31:34PM +0300, Ser, Simon wrote: > On Thu, 2019-05-09 at 13:03 +0300, Arkadiusz Hiler wrote: > > Quoting lib/igt_core.c: > > * - Code blocks with magic control flow are implemented with setjmp() and > > * longjmp(). This applies to #igt_fixture and #igt_subtest blocks and all the > > * three variants to finish test: igt_success(), igt_skip() and igt_fail(). > > * Mostly this is of no concern, except when such a control block changes > > * stack variables defined in the same function as the control block resides. > > * Any store/load behaviour after a longjmp() is ill-defined for these > > * variables. Avoid such code. > > * > > * Quoting the man page for longjmp(): > > * > > * "The values of automatic variables are unspecified after a call to > > * longjmp() if they meet all the following criteria:" > > * - "they are local to the function that made the corresponding setjmp() call; > > * - "their values are changed between the calls to setjmp() and longjmp(); and > > * - "they are not declared as volatile." > > > > igt_subtest_group test uses two local variables for tracking the state > > of execution, making sure that skips are working correctly. > > > > We can just make them volatile to be back on the defined grounds. > > > > Cc: Simon Ser <simon.ser@intel.com> > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> > > --- > > lib/tests/igt_subtest_group.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/lib/tests/igt_subtest_group.c b/lib/tests/igt_subtest_group.c > > index 7783d021..d8e7d861 100644 > > --- a/lib/tests/igt_subtest_group.c > > +++ b/lib/tests/igt_subtest_group.c > > @@ -28,8 +28,8 @@ > > > > igt_main > > { > > - bool t1 = false; > > - int t2 = 0; > > + volatile bool t1 = false; > > + volatile int t2 = 0; > > Hi, > > I think a little comment explaining why these need to be volatile would > be a good addition to this patch. Something among the lines of: "Local > variables updated in subtests have undefined contents unless marked as > volatile". Right. I'll add the comment and make Petri read it as the series has his r-b. _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/5] lib/tests/igt_subtest_group: Operate within defined behavior 2019-05-09 11:11 ` Arkadiusz Hiler @ 2019-05-09 11:30 ` Ser, Simon 0 siblings, 0 replies; 15+ messages in thread From: Ser, Simon @ 2019-05-09 11:30 UTC (permalink / raw) To: Hiler, Arkadiusz; +Cc: igt-dev@lists.freedesktop.org On Thu, 2019-05-09 at 14:11 +0300, Arkadiusz Hiler wrote: > On Thu, May 09, 2019 at 01:31:34PM +0300, Ser, Simon wrote: > > On Thu, 2019-05-09 at 13:03 +0300, Arkadiusz Hiler wrote: > > > Quoting lib/igt_core.c: > > > * - Code blocks with magic control flow are implemented with setjmp() and > > > * longjmp(). This applies to #igt_fixture and #igt_subtest blocks and all the > > > * three variants to finish test: igt_success(), igt_skip() and igt_fail(). > > > * Mostly this is of no concern, except when such a control block changes > > > * stack variables defined in the same function as the control block resides. > > > * Any store/load behaviour after a longjmp() is ill-defined for these > > > * variables. Avoid such code. > > > * > > > * Quoting the man page for longjmp(): > > > * > > > * "The values of automatic variables are unspecified after a call to > > > * longjmp() if they meet all the following criteria:" > > > * - "they are local to the function that made the corresponding setjmp() call; > > > * - "their values are changed between the calls to setjmp() and longjmp(); and > > > * - "they are not declared as volatile." > > > > > > igt_subtest_group test uses two local variables for tracking the state > > > of execution, making sure that skips are working correctly. > > > > > > We can just make them volatile to be back on the defined grounds. > > > > > > Cc: Simon Ser <simon.ser@intel.com> > > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > > > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> > > > --- > > > lib/tests/igt_subtest_group.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/lib/tests/igt_subtest_group.c b/lib/tests/igt_subtest_group.c > > > index 7783d021..d8e7d861 100644 > > > --- a/lib/tests/igt_subtest_group.c > > > +++ b/lib/tests/igt_subtest_group.c > > > @@ -28,8 +28,8 @@ > > > > > > igt_main > > > { > > > - bool t1 = false; > > > - int t2 = 0; > > > + volatile bool t1 = false; > > > + volatile int t2 = 0; > > > > Hi, > > > > I think a little comment explaining why these need to be volatile would > > be a good addition to this patch. Something among the lines of: "Local > > variables updated in subtests have undefined contents unless marked as > > volatile". > > Right. I'll add the comment and make Petri read it as the series has his r-b. Okay. Then with this the patch is: Reviewed-by: Simon Ser <simon.ser@intel.com> _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 3/5] runner_tests: Operate within defined behavior 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 2/5] lib/tests/igt_subtest_group: Operate within defined behavior Arkadiusz Hiler @ 2019-05-09 10:03 ` Arkadiusz Hiler 2019-05-09 10:43 ` Petri Latvala 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 4/5] meson: Change the default build type to debugoptimized Arkadiusz Hiler ` (6 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Arkadiusz Hiler @ 2019-05-09 10:03 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala Quoting lib/igt_core.c: * - Code blocks with magic control flow are implemented with setjmp() and * longjmp(). This applies to #igt_fixture and #igt_subtest blocks and all the * three variants to finish test: igt_success(), igt_skip() and igt_fail(). * Mostly this is of no concern, except when such a control block changes * stack variables defined in the same function as the control block resides. * Any store/load behaviour after a longjmp() is ill-defined for these * variables. Avoid such code. * * Quoting the man page for longjmp(): * * "The values of automatic variables are unspecified after a call to * longjmp() if they meet all the following criteria:" * - "they are local to the function that made the corresponding setjmp() call; * - "their values are changed between the calls to setjmp() and longjmp(); and * - "they are not declared as volatile." We have quite a few igt_subtest_group that define local variables to share the state between subtest and fixture (e.g. set open() in subtest, close() in the following fixture), causing the contents to be undefined. We can allocate some of them using malloc and make the others volatile to be back on the defined grounds. Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> --- runner/runner_tests.c | 573 ++++++++++++++++++++++-------------------- 1 file changed, 300 insertions(+), 273 deletions(-) diff --git a/runner/runner_tests.c b/runner/runner_tests.c index ade78b18..33e289a4 100644 --- a/runner/runner_tests.c +++ b/runner/runner_tests.c @@ -10,7 +10,7 @@ #include "job_list.h" #include "executor.h" -static char testdatadir[] = TESTDATA_DIRECTORY; +static const char testdatadir[] = TESTDATA_DIRECTORY; static void igt_assert_eqstr(const char *one, const char *two) { @@ -65,10 +65,10 @@ static void job_list_filter_test(const char *name, const char *filterarg1, const size_t expected_normal, size_t expected_multiple) { int multiple; - struct settings settings; + struct settings *settings = malloc(sizeof(*settings)); igt_fixture - init_settings(&settings); + init_settings(settings); for (multiple = 0; multiple < 2; multiple++) { igt_subtest_f("job-list-filters-%s-%s", name, multiple ? "multiple" : "normal") { @@ -84,9 +84,9 @@ static void job_list_filter_test(const char *name, const char *filterarg1, const size_t size; init_job_list(&list); - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - success = create_job_list(&list, &settings); + success = create_job_list(&list, settings); size = list.size; if (success) @@ -99,8 +99,10 @@ static void job_list_filter_test(const char *name, const char *filterarg1, const } } - igt_fixture - free_settings(&settings); + igt_fixture { + free_settings(settings); + free(settings); + } } static void clear_directory_fd(int dirfd) @@ -196,10 +198,10 @@ static void assert_execution_results_exist(int dirfd) igt_main { - struct settings settings; + struct settings *settings = malloc(sizeof(*settings)); igt_fixture - init_settings(&settings); + init_settings(settings); igt_subtest("default-settings") { const char *argv[] = { "runner", @@ -207,26 +209,26 @@ igt_main "path-to-results", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert_eq(settings.abort_mask, 0); - igt_assert(!settings.test_list); - igt_assert_eqstr(settings.name, "path-to-results"); - igt_assert(!settings.dry_run); - igt_assert_eq(settings.include_regexes.size, 0); - igt_assert_eq(settings.exclude_regexes.size, 0); - igt_assert(!settings.sync); - igt_assert_eq(settings.log_level, LOG_LEVEL_NORMAL); - igt_assert(!settings.overwrite); - igt_assert(!settings.multiple_mode); - igt_assert_eq(settings.inactivity_timeout, 0); - igt_assert_eq(settings.overall_timeout, 0); - igt_assert(!settings.use_watchdog); - igt_assert(strstr(settings.test_root, "test-root-dir") != NULL); - igt_assert(strstr(settings.results_path, "path-to-results") != NULL); + igt_assert_eq(settings->abort_mask, 0); + igt_assert(!settings->test_list); + igt_assert_eqstr(settings->name, "path-to-results"); + igt_assert(!settings->dry_run); + igt_assert_eq(settings->include_regexes.size, 0); + igt_assert_eq(settings->exclude_regexes.size, 0); + igt_assert(!settings->sync); + igt_assert_eq(settings->log_level, LOG_LEVEL_NORMAL); + igt_assert(!settings->overwrite); + igt_assert(!settings->multiple_mode); + igt_assert_eq(settings->inactivity_timeout, 0); + igt_assert_eq(settings->overall_timeout, 0); + igt_assert(!settings->use_watchdog); + igt_assert(strstr(settings->test_root, "test-root-dir") != NULL); + igt_assert(strstr(settings->results_path, "path-to-results") != NULL); - igt_assert(!settings.piglit_style_dmesg); - igt_assert_eq(settings.dmesg_warn_level, 4); + igt_assert(!settings->piglit_style_dmesg); + igt_assert_eq(settings->dmesg_warn_level, 4); } igt_subtest_group { @@ -262,10 +264,10 @@ igt_main } igt_subtest_group { + const char tmptestlist[] = "tmp.testlist"; char dirname[] = "tmpdirXXXXXX"; - char tmptestlist[] = "tmp.testlist"; char pathtotestlist[64]; - char *path; + volatile char *path; igt_fixture { int dirfd, fd; @@ -290,19 +292,19 @@ igt_main dirname, }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); path = realpath(testdatadir, NULL); igt_assert(path != NULL); - igt_assert_eqstr(settings.test_root, path); - free(path); + igt_assert_eqstr(settings->test_root, (char*)path); + free((void*)path); path = realpath(dirname, NULL); igt_assert(path != NULL); - igt_assert_eqstr(settings.results_path, path); - free(path); + igt_assert_eqstr(settings->results_path, (char*)path); + free((void*)path); path = realpath(pathtotestlist, NULL); igt_assert(path != NULL); - igt_assert_eqstr(settings.test_list, path); + igt_assert_eqstr(settings->test_list, (char*)path); } igt_fixture { @@ -313,7 +315,7 @@ igt_main close(dirfd); rmdir(dirname); - free(path); + free((void*)path); } } @@ -324,24 +326,24 @@ igt_main }; setenv("IGT_TEST_ROOT", testdatadir, 1); - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert_eq(settings.abort_mask, 0); - igt_assert(!settings.test_list); - igt_assert_eqstr(settings.name, "path-to-results"); - igt_assert(!settings.dry_run); - igt_assert_eq(settings.include_regexes.size, 0); - igt_assert_eq(settings.exclude_regexes.size, 0); - igt_assert(!settings.sync); - igt_assert_eq(settings.log_level, LOG_LEVEL_NORMAL); - igt_assert(!settings.overwrite); - igt_assert(!settings.multiple_mode); - igt_assert_eq(settings.inactivity_timeout, 0); - igt_assert_eq(settings.overall_timeout, 0); - igt_assert(!settings.use_watchdog); - igt_assert(strstr(settings.test_root, testdatadir) != NULL); - igt_assert(strstr(settings.results_path, "path-to-results") != NULL); - igt_assert(!settings.piglit_style_dmesg); + igt_assert_eq(settings->abort_mask, 0); + igt_assert(!settings->test_list); + igt_assert_eqstr(settings->name, "path-to-results"); + igt_assert(!settings->dry_run); + igt_assert_eq(settings->include_regexes.size, 0); + igt_assert_eq(settings->exclude_regexes.size, 0); + igt_assert(!settings->sync); + igt_assert_eq(settings->log_level, LOG_LEVEL_NORMAL); + igt_assert(!settings->overwrite); + igt_assert(!settings->multiple_mode); + igt_assert_eq(settings->inactivity_timeout, 0); + igt_assert_eq(settings->overall_timeout, 0); + igt_assert(!settings->use_watchdog); + igt_assert(strstr(settings->test_root, testdatadir) != NULL); + igt_assert(strstr(settings->results_path, "path-to-results") != NULL); + igt_assert(!settings->piglit_style_dmesg); } igt_fixture { @@ -372,30 +374,30 @@ igt_main "path-to-results", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert_eq(settings.abort_mask, ABORT_TAINT | ABORT_LOCKDEP); - igt_assert(strstr(settings.test_list, "path-to-test-list") != NULL); - igt_assert_eqstr(settings.name, "foo"); - igt_assert(settings.dry_run); - igt_assert_eq(settings.include_regexes.size, 2); - igt_assert_eqstr(settings.include_regexes.regex_strings[0], "pattern1"); - igt_assert_eqstr(settings.include_regexes.regex_strings[1], "pattern2"); - igt_assert_eq(settings.exclude_regexes.size, 2); - igt_assert_eqstr(settings.exclude_regexes.regex_strings[0], "xpattern1"); - igt_assert_eqstr(settings.exclude_regexes.regex_strings[1], "xpattern2"); - igt_assert(settings.sync); - igt_assert_eq(settings.log_level, LOG_LEVEL_VERBOSE); - igt_assert(settings.overwrite); - igt_assert(settings.multiple_mode); - igt_assert_eq(settings.inactivity_timeout, 27); - igt_assert_eq(settings.overall_timeout, 360); - igt_assert(settings.use_watchdog); - igt_assert(strstr(settings.test_root, "test-root-dir") != NULL); - igt_assert(strstr(settings.results_path, "path-to-results") != NULL); + igt_assert_eq(settings->abort_mask, ABORT_TAINT | ABORT_LOCKDEP); + igt_assert(strstr(settings->test_list, "path-to-test-list") != NULL); + igt_assert_eqstr(settings->name, "foo"); + igt_assert(settings->dry_run); + igt_assert_eq(settings->include_regexes.size, 2); + igt_assert_eqstr(settings->include_regexes.regex_strings[0], "pattern1"); + igt_assert_eqstr(settings->include_regexes.regex_strings[1], "pattern2"); + igt_assert_eq(settings->exclude_regexes.size, 2); + igt_assert_eqstr(settings->exclude_regexes.regex_strings[0], "xpattern1"); + igt_assert_eqstr(settings->exclude_regexes.regex_strings[1], "xpattern2"); + igt_assert(settings->sync); + igt_assert_eq(settings->log_level, LOG_LEVEL_VERBOSE); + igt_assert(settings->overwrite); + igt_assert(settings->multiple_mode); + igt_assert_eq(settings->inactivity_timeout, 27); + igt_assert_eq(settings->overall_timeout, 360); + igt_assert(settings->use_watchdog); + igt_assert(strstr(settings->test_root, "test-root-dir") != NULL); + igt_assert(strstr(settings->results_path, "path-to-results") != NULL); - igt_assert(settings.piglit_style_dmesg); - igt_assert_eq(settings.dmesg_warn_level, 3); + igt_assert(settings->piglit_style_dmesg); + igt_assert_eq(settings->dmesg_warn_level, 3); } igt_subtest("dmesg-warn-level-inferred") { @@ -404,10 +406,10 @@ igt_main "path-to-results", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert(!settings.piglit_style_dmesg); - igt_assert_eq(settings.dmesg_warn_level, 4); + igt_assert(!settings->piglit_style_dmesg); + igt_assert_eq(settings->dmesg_warn_level, 4); } igt_subtest("dmesg-warn-level-inferred-with-piglit-style") { @@ -417,10 +419,10 @@ igt_main "path-to-results", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert(settings.piglit_style_dmesg); - igt_assert_eq(settings.dmesg_warn_level, 5); + igt_assert(settings->piglit_style_dmesg); + igt_assert_eq(settings->dmesg_warn_level, 5); } igt_subtest("dmesg-warn-level-overridable-with-piglit-style") { @@ -431,10 +433,10 @@ igt_main "path-to-results", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert(settings.piglit_style_dmesg); - igt_assert_eq(settings.dmesg_warn_level, 3); + igt_assert(settings->piglit_style_dmesg); + igt_assert_eq(settings->dmesg_warn_level, 3); } igt_subtest("invalid-option") { @@ -444,14 +446,14 @@ igt_main "results-path", }; - igt_assert(!parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(!parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); } igt_subtest("paths-missing") { const char *argv[] = { "runner", "-o", }; - igt_assert(!parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(!parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); } igt_subtest("log-levels") { @@ -461,16 +463,16 @@ igt_main "results-path", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.log_level, LOG_LEVEL_NORMAL); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->log_level, LOG_LEVEL_NORMAL); argv[2] = "quiet"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.log_level, LOG_LEVEL_QUIET); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->log_level, LOG_LEVEL_QUIET); argv[2] = "verbose"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.log_level, LOG_LEVEL_VERBOSE); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->log_level, LOG_LEVEL_VERBOSE); } igt_subtest("abort-conditions") { @@ -480,35 +482,35 @@ igt_main "results-path", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.abort_mask, ABORT_TAINT); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->abort_mask, ABORT_TAINT); argv[1] = "--abort-on-monitored-error=lockdep"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.abort_mask, ABORT_LOCKDEP); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->abort_mask, ABORT_LOCKDEP); argv[1] = "--abort-on-monitored-error=taint"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.abort_mask, ABORT_TAINT); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->abort_mask, ABORT_TAINT); argv[1] = "--abort-on-monitored-error=lockdep,taint"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.abort_mask, ABORT_TAINT | ABORT_LOCKDEP); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->abort_mask, ABORT_TAINT | ABORT_LOCKDEP); argv[1] = "--abort-on-monitored-error=taint,lockdep"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.abort_mask, ABORT_TAINT | ABORT_LOCKDEP); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->abort_mask, ABORT_TAINT | ABORT_LOCKDEP); argv[1] = "--abort-on-monitored-error=all"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.abort_mask, ABORT_ALL); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->abort_mask, ABORT_ALL); argv[1] = "--abort-on-monitored-error="; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert_eq(settings.abort_mask, 0); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert_eq(settings->abort_mask, 0); argv[1] = "--abort-on-monitored-error=doesnotexist"; - igt_assert(!parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(!parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); } @@ -520,29 +522,29 @@ igt_main "results-path", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert_eqstr(settings.name, "foo"); - igt_assert(settings.dry_run); - igt_assert(!settings.test_list); - igt_assert(!settings.sync); + igt_assert_eqstr(settings->name, "foo"); + igt_assert(settings->dry_run); + igt_assert(!settings->test_list); + igt_assert(!settings->sync); argv[1] = "--test-list"; argv[3] = "--sync"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert_eqstr(settings.name, "results-path"); - igt_assert(!settings.dry_run); - igt_assert(strstr(settings.test_list, "foo") != NULL); - igt_assert(settings.sync); + igt_assert_eqstr(settings->name, "results-path"); + igt_assert(!settings->dry_run); + igt_assert(strstr(settings->test_list, "foo") != NULL); + igt_assert(settings->sync); } igt_subtest_group { char filename[] = "tmplistXXXXXX"; - int fd = -1; igt_fixture { + int fd; igt_require((fd = mkstemp(filename)) >= 0); close(fd); } @@ -554,9 +556,9 @@ igt_main "path-to-results", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert(validate_settings(&settings)); + igt_assert(validate_settings(settings)); } igt_fixture { @@ -573,18 +575,18 @@ igt_main }; igt_assert_lt(open(nosuchfile, O_RDONLY), 0); - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert(!validate_settings(&settings)); + igt_assert(!validate_settings(settings)); } igt_subtest_group { char dirname[] = "tmpdirXXXXXX"; - struct job_list list; + struct job_list *list = malloc(sizeof(*list)); igt_fixture { igt_require(mkdtemp(dirname) != NULL); - init_job_list(&list); + init_job_list(list); } igt_subtest("job-list-no-test-list-txt") { @@ -593,14 +595,15 @@ igt_main "path-to-results", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert(!create_job_list(&list, &settings)); + igt_assert(!create_job_list(list, settings)); } igt_fixture { rmdir(dirname); - free_job_list(&list); + free_job_list(list); + free(list); } } @@ -614,17 +617,18 @@ igt_main igt_subtest_group { char filename[] = "tmplistXXXXXX"; - char testlisttext[] = "igt@successtest@first-subtest\n" + const char testlisttext[] = "igt@successtest@first-subtest\n" "igt@successtest@second-subtest\n" "igt@nosubtests\n"; - int fd = -1, multiple; - struct job_list list; + int multiple; + struct job_list *list = malloc(sizeof(*list)); igt_fixture { + int fd; igt_require((fd = mkstemp(filename)) >= 0); igt_require(write(fd, testlisttext, strlen(testlisttext)) == strlen(testlisttext)); close(fd); - init_job_list(&list); + init_job_list(list); } for (multiple = 0; multiple < 2; multiple++) { @@ -636,21 +640,21 @@ igt_main "path-to-results", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); - igt_assert_eq(list.size, multiple ? 2 : 3); + igt_assert_eq(list->size, multiple ? 2 : 3); - igt_assert_eqstr(list.entries[0].binary, "successtest"); - if (!multiple) igt_assert_eqstr(list.entries[1].binary, "successtest"); - igt_assert_eqstr(list.entries[multiple ? 1 : 2].binary, "nosubtests"); + igt_assert_eqstr(list->entries[0].binary, "successtest"); + if (!multiple) igt_assert_eqstr(list->entries[1].binary, "successtest"); + igt_assert_eqstr(list->entries[multiple ? 1 : 2].binary, "nosubtests"); - igt_assert_eq(list.entries[0].subtest_count, multiple ? 2 : 1); - igt_assert_eq(list.entries[1].subtest_count, multiple ? 0 : 1); - if (!multiple) igt_assert_eq(list.entries[2].subtest_count, 0); + igt_assert_eq(list->entries[0].subtest_count, multiple ? 2 : 1); + igt_assert_eq(list->entries[1].subtest_count, multiple ? 0 : 1); + if (!multiple) igt_assert_eq(list->entries[2].subtest_count, 0); - igt_assert_eqstr(list.entries[0].subtests[0], "first-subtest"); - igt_assert_eqstr(list.entries[multiple ? 0 : 1].subtests[multiple ? 1 : 0], "second-subtest"); + igt_assert_eqstr(list->entries[0].subtests[0], "first-subtest"); + igt_assert_eqstr(list->entries[multiple ? 0 : 1].subtests[multiple ? 1 : 0], "second-subtest"); } igt_subtest_f("job-list-testlist-filtered-%s", multiple ? "multiple" : "normal") { @@ -663,32 +667,33 @@ igt_main "path-to-results", }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); - igt_assert_eq(list.size, 1); - igt_assert_eqstr(list.entries[0].binary, "successtest"); + igt_assert_eq(list->size, 1); + igt_assert_eqstr(list->entries[0].binary, "successtest"); - igt_assert_eq(list.entries[0].subtest_count, 1); - igt_assert_eqstr(list.entries[0].subtests[0], "second-subtest"); + igt_assert_eq(list->entries[0].subtest_count, 1); + igt_assert_eqstr(list->entries[0].subtests[0], "second-subtest"); } } igt_fixture { unlink(filename); - free_job_list(&list); + free_job_list(list); + free(list); } } igt_subtest_group { char dirname[] = "tmpdirXXXXXX"; - int dirfd = -1, fd = -1; - struct settings cmp_settings; + volatile int dirfd = -1, fd = -1; + struct settings *cmp_settings = malloc(sizeof(*cmp_settings)); igt_fixture { igt_require(mkdtemp(dirname) != NULL); rmdir(dirname); - init_settings(&cmp_settings); + init_settings(cmp_settings); } igt_subtest("settings-serialize") { @@ -714,9 +719,9 @@ igt_main dirname, }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); - igt_assert(serialize_settings(&settings)); + igt_assert(serialize_settings(settings)); dirfd = open(dirname, O_DIRECTORY, O_RDONLY); igt_assert_f(dirfd >= 0, "Serialization did not create the results directory\n"); @@ -725,27 +730,31 @@ igt_main "Opening %s/metadata.txt failed\n", dirname); close(fd); - igt_assert_f(read_settings_from_dir(&cmp_settings, dirfd), "Reading settings failed\n"); - assert_settings_equal(&settings, &cmp_settings); + igt_assert_f(read_settings_from_dir(cmp_settings, dirfd), "Reading settings failed\n"); + assert_settings_equal(settings, cmp_settings); } igt_fixture { close(fd); close(dirfd); clear_directory(dirname); - free_settings(&cmp_settings); + free_settings(cmp_settings); + free(cmp_settings); } } igt_subtest_group { char dirname[] = "tmpdirXXXXXX"; - int dirfd = -1, fd = -1; - struct job_list list, cmp_list; + volatile int dirfd = -1, fd = -1; + struct job_list *list, *cmp_list; int multiple; + list = malloc(sizeof(*list)); + cmp_list = malloc(sizeof(*cmp_list)); + igt_fixture { - init_job_list(&list); - init_job_list(&cmp_list); + init_job_list(list); + init_job_list(cmp_list); igt_require(mkdtemp(dirname) != NULL); rmdir(dirname); } @@ -759,11 +768,11 @@ igt_main dirname, }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); - igt_assert(serialize_settings(&settings)); - igt_assert(serialize_job_list(&list, &settings)); + igt_assert(serialize_settings(settings)); + igt_assert(serialize_job_list(list, settings)); dirfd = open(dirname, O_DIRECTORY, O_RDONLY); igt_assert_f(dirfd >= 0, "Serialization did not create the results directory\n"); @@ -773,27 +782,32 @@ igt_main close(fd); fd = -1; - igt_assert_f(read_job_list(&cmp_list, dirfd), "Reading job list failed\n"); - assert_job_list_equal(&list, &cmp_list); + igt_assert_f(read_job_list(cmp_list, dirfd), "Reading job list failed\n"); + assert_job_list_equal(list, cmp_list); } igt_fixture { close(fd); close(dirfd); clear_directory(dirname); - free_job_list(&cmp_list); - free_job_list(&list); + free_job_list(cmp_list); + free_job_list(list); } } + + igt_fixture { + free(cmp_list); + free(list); + } } igt_subtest_group { char dirname[] = "tmpdirXXXXXX"; - struct job_list list; - int dirfd = -1, subdirfd = -1, fd = -1; + struct job_list *list = malloc(sizeof(*list)); + volatile int dirfd = -1, subdirfd = -1, fd = -1; igt_fixture { - init_job_list(&list); + init_job_list(list); igt_require(mkdtemp(dirname) != NULL); rmdir(dirname); } @@ -806,19 +820,19 @@ igt_main dirname, }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); - igt_assert(initialize_execute_state(&state, &settings, &list)); + igt_assert(initialize_execute_state(&state, settings, list)); igt_assert_eq(state.next, 0); igt_assert(state.dry); - igt_assert_eq(list.size, 5); + igt_assert_eq(list->size, 5); igt_assert_f((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0, "Dry run initialization didn't create the results directory.\n"); /* Execute from just initialize_execute_state should fail */ - igt_assert(execute(&state, &settings, &list)); + igt_assert(execute(&state, settings, list)); igt_assert_f(openat(dirfd, "0", O_DIRECTORY | O_RDONLY) < 0, "Dry run executed when it should not have.\n"); igt_assert_f((fd = openat(dirfd, "metadata.txt", O_RDONLY)) >= 0, @@ -830,16 +844,16 @@ igt_main igt_assert_f((fd = openat(dirfd, "uname.txt", O_RDONLY)) < 0, "Dry run initialization created uname.txt.\n"); - igt_assert(initialize_execute_state_from_resume(dirfd, &state, &settings, &list)); + igt_assert(initialize_execute_state_from_resume(dirfd, &state, settings, list)); igt_assert_eq(state.next, 0); igt_assert(!state.dry); - igt_assert_eq(list.size, 5); + igt_assert_eq(list->size, 5); /* initialize_execute_state_from_resume() closes the dirfd */ igt_assert_f((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0, "Dry run resume somehow deleted the results directory.\n"); /* Execute from resume should work */ - igt_assert(execute(&state, &settings, &list)); + igt_assert(execute(&state, settings, list)); igt_assert_f((fd = openat(dirfd, "uname.txt", O_RDONLY)) >= 0, "Dry run resume didn't create uname.txt.\n"); close(fd); @@ -854,17 +868,18 @@ igt_main close(dirfd); close(subdirfd); clear_directory(dirname); - free_job_list(&list); + free_job_list(list); + free(list); } } igt_subtest_group { char dirname[] = "tmpdirXXXXXX"; - struct job_list list; - int dirfd = -1, fd = -1; + struct job_list *list = malloc(sizeof(*list)); + volatile int dirfd = -1, fd = -1; igt_fixture { - init_job_list(&list); + init_job_list(list); igt_require(mkdtemp(dirname) != NULL); rmdir(dirname); } @@ -876,13 +891,13 @@ igt_main dirname, }; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); - igt_assert(initialize_execute_state(&state, &settings, &list)); + igt_assert(initialize_execute_state(&state, settings, list)); igt_assert_eq(state.next, 0); - igt_assert_eq(list.size, 5); + igt_assert_eq(list->size, 5); igt_assert_f((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0, "Execute state initialization didn't create the results directory.\n"); igt_assert_f((fd = openat(dirfd, "metadata.txt", O_RDONLY)) >= 0, @@ -901,17 +916,18 @@ igt_main close(fd); close(dirfd); clear_directory(dirname); - free_job_list(&list); + free_job_list(list); + free(list); } } igt_subtest_group { char dirname[] = "tmpdirXXXXXX"; - struct job_list list; - int dirfd = -1, subdirfd = -1, fd = -1; + struct job_list *list = malloc(sizeof(*list)); + volatile int dirfd = -1, subdirfd = -1, fd = -1; igt_fixture { - init_job_list(&list); + init_job_list(list); igt_require(mkdtemp(dirname) != NULL); } @@ -923,16 +939,16 @@ igt_main testdatadir, dirname, }; - char journaltext[] = "first-subtest\n"; - char excludestring[] = "!first-subtest"; + const char journaltext[] = "first-subtest\n"; + const char excludestring[] = "!first-subtest"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); - igt_assert(list.size == 1); - igt_assert(list.entries[0].subtest_count == 0); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); + igt_assert(list->size == 1); + igt_assert(list->entries[0].subtest_count == 0); - igt_assert(serialize_settings(&settings)); - igt_assert(serialize_job_list(&list, &settings)); + igt_assert(serialize_settings(settings)); + igt_assert(serialize_job_list(list, settings)); igt_assert((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0); igt_assert(mkdirat(dirfd, "0", 0770) == 0); @@ -940,15 +956,15 @@ igt_main igt_assert((fd = openat(subdirfd, "journal.txt", O_CREAT | O_WRONLY | O_EXCL, 0660)) >= 0); igt_assert(write(fd, journaltext, strlen(journaltext)) == strlen(journaltext)); - free_job_list(&list); - free_settings(&settings); - igt_assert(initialize_execute_state_from_resume(dirfd, &state, &settings, &list)); + free_job_list(list); + free_settings(settings); + igt_assert(initialize_execute_state_from_resume(dirfd, &state, settings, list)); igt_assert_eq(state.next, 0); - igt_assert_eq(list.size, 1); - igt_assert_eq(list.entries[0].subtest_count, 2); - igt_assert_eqstr(list.entries[0].subtests[0], "*"); - igt_assert_eqstr(list.entries[0].subtests[1], excludestring); + igt_assert_eq(list->size, 1); + igt_assert_eq(list->entries[0].subtest_count, 2); + igt_assert_eqstr(list->entries[0].subtests[0], "*"); + igt_assert_eqstr(list->entries[0].subtests[1], excludestring); } igt_fixture { @@ -956,17 +972,18 @@ igt_main close(subdirfd); close(dirfd); clear_directory(dirname); - free_job_list(&list); + free_job_list(list); + free(list); } } igt_subtest_group { char dirname[] = "tmpdirXXXXXX"; - struct job_list list; - int dirfd = -1, subdirfd = -1, fd = -1; + struct job_list *list = malloc(sizeof(*list)); + volatile int dirfd = -1, subdirfd = -1, fd = -1; igt_fixture { - init_job_list(&list); + init_job_list(list); igt_require(mkdtemp(dirname) != NULL); } @@ -979,15 +996,15 @@ igt_main testdatadir, dirname, }; - char journaltext[] = "first-subtest\nsecond-subtest\n"; + const char journaltext[] = "first-subtest\nsecond-subtest\n"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); - igt_assert(list.size == 1); - igt_assert(list.entries[0].subtest_count == 2); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); + igt_assert(list->size == 1); + igt_assert(list->entries[0].subtest_count == 2); - igt_assert(serialize_settings(&settings)); - igt_assert(serialize_job_list(&list, &settings)); + igt_assert(serialize_settings(settings)); + igt_assert(serialize_job_list(list, settings)); igt_assert((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0); igt_assert(mkdirat(dirfd, "0", 0770) == 0); @@ -995,14 +1012,14 @@ igt_main igt_assert((fd = openat(subdirfd, "journal.txt", O_CREAT | O_WRONLY | O_EXCL, 0660)) >= 0); igt_assert(write(fd, journaltext, strlen(journaltext)) == strlen(journaltext)); - free_job_list(&list); - free_settings(&settings); - igt_assert(initialize_execute_state_from_resume(dirfd, &state, &settings, &list)); + free_job_list(list); + free_settings(settings); + igt_assert(initialize_execute_state_from_resume(dirfd, &state, settings, list)); /* All subtests are in journal, the entry should be considered completed */ igt_assert_eq(state.next, 1); - igt_assert_eq(list.size, 1); - igt_assert_eq(list.entries[0].subtest_count, 4); + igt_assert_eq(list->size, 1); + igt_assert_eq(list->entries[0].subtest_count, 4); } igt_fixture { @@ -1010,17 +1027,18 @@ igt_main close(subdirfd); close(dirfd); clear_directory(dirname); - free_job_list(&list); + free_job_list(list); + free(list); } } igt_subtest_group { char dirname[] = "tmpdirXXXXXX"; - struct job_list list; - int dirfd = -1, subdirfd = -1, fd = -1; + struct job_list *list = malloc(sizeof(*list)); + volatile int dirfd = -1, subdirfd = -1, fd = -1; igt_fixture { - init_job_list(&list); + init_job_list(list); igt_require(mkdtemp(dirname) != NULL); } @@ -1031,22 +1049,22 @@ igt_main testdatadir, dirname, }; - char journaltext[] = "first-subtest\nsecond-subtest\nexit:0\n"; + const char journaltext[] = "first-subtest\nsecond-subtest\nexit:0\n"; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); - igt_assert(list.size == 3); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); + igt_assert(list->size == 3); - if (!strcmp(list.entries[0].binary, "no-subtests")) { - struct job_list_entry tmp = list.entries[0]; - list.entries[0] = list.entries[1]; - list.entries[1] = tmp; + if (!strcmp(list->entries[0].binary, "no-subtests")) { + struct job_list_entry tmp = list->entries[0]; + list->entries[0] = list->entries[1]; + list->entries[1] = tmp; } - igt_assert(list.entries[0].subtest_count == 0); + igt_assert(list->entries[0].subtest_count == 0); - igt_assert(serialize_settings(&settings)); - igt_assert(serialize_job_list(&list, &settings)); + igt_assert(serialize_settings(settings)); + igt_assert(serialize_job_list(list, settings)); igt_assert_lte(0, dirfd = open(dirname, O_DIRECTORY | O_RDONLY)); igt_assert_eq(mkdirat(dirfd, "0", 0770), 0); @@ -1054,12 +1072,12 @@ igt_main igt_assert_lte(0, fd = openat(subdirfd, "journal.txt", O_CREAT | O_WRONLY | O_EXCL, 0660)); igt_assert_eq(write(fd, journaltext, sizeof(journaltext)), sizeof(journaltext)); - free_job_list(&list); - free_settings(&settings); - igt_assert(initialize_execute_state_from_resume(dirfd, &state, &settings, &list)); + free_job_list(list); + free_settings(settings); + igt_assert(initialize_execute_state_from_resume(dirfd, &state, settings, list)); igt_assert_eq(state.next, 1); - igt_assert_eq(list.size, 3); + igt_assert_eq(list->size, 3); } igt_fixture { @@ -1067,17 +1085,18 @@ igt_main close(subdirfd); close(dirfd); clear_directory(dirname); - free_job_list(&list); + free_job_list(list); + free(list); } } igt_subtest_group { - struct job_list list; - int dirfd = -1, subdirfd = -1, fd = -1; + struct job_list *list = malloc(sizeof(*list)); + volatile int dirfd = -1, subdirfd = -1, fd = -1; int multiple; igt_fixture { - init_job_list(&list); + init_job_list(list); } for (multiple = 0; multiple < 2; multiple++) { @@ -1100,11 +1119,11 @@ igt_main size_t expected_tests = multiple ? 2 : 3; size_t i; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); - igt_assert(initialize_execute_state(&state, &settings, &list)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); + igt_assert(initialize_execute_state(&state, settings, list)); - igt_assert(execute(&state, &settings, &list)); + igt_assert(execute(&state, settings, list)); igt_assert_f((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0, "Execute didn't create the results directory\n"); @@ -1132,9 +1151,12 @@ igt_main close(subdirfd); close(dirfd); clear_directory(dirname); - free_job_list(&list); + free_job_list(list); } } + + igt_fixture + free(list); } igt_subtest_group { @@ -1143,10 +1165,10 @@ igt_main FILE *f = fmemopen(metadata, strlen(metadata), "r"); igt_assert(f); - igt_assert(read_settings_from_file(&settings, f)); + igt_assert(read_settings_from_file(settings, f)); - igt_assert(settings.piglit_style_dmesg); - igt_assert_eq(settings.dmesg_warn_level, 5); + igt_assert(settings->piglit_style_dmesg); + igt_assert_eq(settings->dmesg_warn_level, 5); fclose(f); } @@ -1156,10 +1178,10 @@ igt_main FILE *f = fmemopen(metadata, strlen(metadata), "r"); igt_assert(f); - igt_assert(read_settings_from_file(&settings, f)); + igt_assert(read_settings_from_file(settings, f)); - igt_assert(settings.piglit_style_dmesg); - igt_assert_eq(settings.dmesg_warn_level, 3); + igt_assert(settings->piglit_style_dmesg); + igt_assert_eq(settings->dmesg_warn_level, 3); fclose(f); } @@ -1169,10 +1191,10 @@ igt_main FILE *f = fmemopen(metadata, strlen(metadata), "r"); igt_assert(f); - igt_assert(read_settings_from_file(&settings, f)); + igt_assert(read_settings_from_file(settings, f)); - igt_assert(!settings.piglit_style_dmesg); - igt_assert_eq(settings.dmesg_warn_level, 4); + igt_assert(!settings->piglit_style_dmesg); + igt_assert_eq(settings->dmesg_warn_level, 4); fclose(f); } @@ -1182,22 +1204,22 @@ igt_main FILE *f = fmemopen(metadata, strlen(metadata), "r"); igt_assert(f); - igt_assert(read_settings_from_file(&settings, f)); + igt_assert(read_settings_from_file(settings, f)); - igt_assert(!settings.piglit_style_dmesg); - igt_assert_eq(settings.dmesg_warn_level, 3); + igt_assert(!settings->piglit_style_dmesg); + igt_assert_eq(settings->dmesg_warn_level, 3); fclose(f); } } igt_subtest_group { - struct job_list list; - int dirfd = -1, subdirfd = -1, fd = -1; + struct job_list *list = malloc(sizeof(*list)); + volatile int dirfd = -1, subdirfd = -1, fd = -1; int multiple; igt_fixture { - init_job_list(&list); + init_job_list(list); } for (multiple = 0; multiple < 2; multiple++) { @@ -1222,11 +1244,11 @@ igt_main "skip-one\nexit:77 ("; const char *expected_1 = "skip-two\nexit:77 ("; - igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings)); - igt_assert(create_job_list(&list, &settings)); - igt_assert(initialize_execute_state(&state, &settings, &list)); + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); + igt_assert(initialize_execute_state(&state, settings, list)); - igt_assert(execute(&state, &settings, &list)); + igt_assert(execute(&state, settings, list)); igt_assert_f((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0, "Execute didn't create the results directory\n"); @@ -1266,9 +1288,12 @@ igt_main close(subdirfd); close(dirfd); clear_directory(dirname); - free_job_list(&list); + free_job_list(list); } } + + igt_fixture + free(list); } igt_subtest("file-descriptor-leakage") { @@ -1289,6 +1314,8 @@ igt_main } } - igt_fixture - free_settings(&settings); + igt_fixture { + free_settings(settings); + free(settings); + } } -- 2.20.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/5] runner_tests: Operate within defined behavior 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 3/5] runner_tests: " Arkadiusz Hiler @ 2019-05-09 10:43 ` Petri Latvala 0 siblings, 0 replies; 15+ messages in thread From: Petri Latvala @ 2019-05-09 10:43 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev On Thu, May 09, 2019 at 01:03:24PM +0300, Arkadiusz Hiler wrote: > runner/runner_tests.c | 573 ++++++++++++++++++++++-------------------- Oh boy, this in particular was a mouthful. Series is Reviewed-by: Petri Latvala <petri.latvala@intel.com> _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 4/5] meson: Change the default build type to debugoptimized 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 2/5] lib/tests/igt_subtest_group: Operate within defined behavior Arkadiusz Hiler 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 3/5] runner_tests: " Arkadiusz Hiler @ 2019-05-09 10:03 ` Arkadiusz Hiler 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 5/5] meson: Use -D_FORTIFY_SOURCE=2 on optimized builds Arkadiusz Hiler ` (5 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Arkadiusz Hiler @ 2019-05-09 10:03 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala Similar as we had with autotools, enables some more compile checks. Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> --- meson.build | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 2d54c28f..2a5a8580 100644 --- a/meson.build +++ b/meson.build @@ -3,7 +3,8 @@ project('igt-gpu-tools', 'c', default_options: [ 'warning_level=2', 'c_std=gnu11', - 'b_ndebug=false', + 'b_ndebug=false', + 'buildtype=debugoptimized', ], license : 'MIT', meson_version : '>=0.46.0') @@ -113,7 +114,7 @@ _tests_required = build_tests == 'true' _build_runner = build_runner != 'false' _runner_required = build_runner == 'true' -build_info = [] +build_info = ['Build type: ' + get_option('buildtype')] inc = include_directories('include/drm-uapi', 'lib', 'lib/stubs/syscalls', '.') -- 2.20.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 5/5] meson: Use -D_FORTIFY_SOURCE=2 on optimized builds 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler ` (2 preceding siblings ...) 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 4/5] meson: Change the default build type to debugoptimized Arkadiusz Hiler @ 2019-05-09 10:03 ` Arkadiusz Hiler 2019-05-09 11:37 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins Patchwork ` (4 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Arkadiusz Hiler @ 2019-05-09 10:03 UTC (permalink / raw) To: igt-dev; +Cc: Eero Tamminen Some distribution enable _FORTIFY_SOURCE implicitly if user sets of -O1 greater in the CFLAGS, which may cause surprise compile failures. Let's fortify explicitly and for everyone with default build, since the checks provided are good. Cc: Eero Tamminen <eero.t.tamminen@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> --- meson.build | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/meson.build b/meson.build index 2a5a8580..2d1f5c50 100644 --- a/meson.build +++ b/meson.build @@ -255,6 +255,13 @@ config.set10('HAVE_MEMFD_CREATE', have) add_project_arguments('-D_GNU_SOURCE', language : 'c') add_project_arguments('-include', 'config.h', language : 'c') +# FEATURE_TEST_MACROS(7) +# performs lightweight overflow checks on quite a few libc functions +# requires -O optimizations +if ['debugoptimized', 'release', 'minsize'].contains(get_option('buildtype')) + add_project_arguments('-D_FORTIFY_SOURCE=2', language : 'c') +endif + config.set('PACKAGE_NAME', meson.project_name()) config.set_quoted('PACKAGE_VERSION', meson.project_version()) config.set_quoted('PACKAGE', meson.project_name()) -- 2.20.1 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler ` (3 preceding siblings ...) 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 5/5] meson: Use -D_FORTIFY_SOURCE=2 on optimized builds Arkadiusz Hiler @ 2019-05-09 11:37 ` Patchwork 2019-05-09 14:54 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork ` (3 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2019-05-09 11:37 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins URL : https://patchwork.freedesktop.org/series/60459/ State : success == Summary == CI Bug Log - changes from CI_DRM_6069 -> IGTPW_2957 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/60459/revisions/1/mbox/ Known issues ------------ Here are the changes found in IGTPW_2957 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live_contexts: - fi-skl-gvtdvm: [PASS][1] -> [DMESG-FAIL][2] ([fdo#110235]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/fi-skl-gvtdvm/igt@i915_selftest@live_contexts.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/fi-skl-gvtdvm/igt@i915_selftest@live_contexts.html * igt@i915_selftest@live_hangcheck: - fi-skl-iommu: [PASS][3] -> [INCOMPLETE][4] ([fdo#108602] / [fdo#108744]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602 [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744 [fdo#110235]: https://bugs.freedesktop.org/show_bug.cgi?id=110235 Participating hosts (51 -> 45) ------------------------------ Missing (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper Build changes ------------- * IGT: IGT_4974 -> IGTPW_2957 CI_DRM_6069: 7dcd3d663bc180ef9e7dcc5d5f5adebee1f285bf @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2957: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/ IGT_4974: 23200bc1b008542bd4d744755540b07881d41fae @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler ` (4 preceding siblings ...) 2019-05-09 11:37 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins Patchwork @ 2019-05-09 14:54 ` Patchwork 2019-05-10 5:07 ` Arkadiusz Hiler 2019-05-09 20:35 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins (rev2) Patchwork ` (2 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Patchwork @ 2019-05-09 14:54 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins URL : https://patchwork.freedesktop.org/series/60459/ State : failure == Summary == CI Bug Log - changes from CI_DRM_6069_full -> IGTPW_2957_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_2957_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_2957_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://patchwork.freedesktop.org/api/1.0/series/60459/revisions/1/mbox/ Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_2957_full: ### IGT changes ### #### Possible regressions #### * igt@gem_eio@in-flight-suspend: - shard-kbl: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl1/igt@gem_eio@in-flight-suspend.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl3/igt@gem_eio@in-flight-suspend.html Known issues ------------ Here are the changes found in IGTPW_2957_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_tiled_swapping@non-threaded: - shard-iclb: [PASS][3] -> [FAIL][4] ([fdo#108686]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb5/igt@gem_tiled_swapping@non-threaded.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb4/igt@gem_tiled_swapping@non-threaded.html - shard-hsw: [PASS][5] -> [FAIL][6] ([fdo#108686]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-hsw1/igt@gem_tiled_swapping@non-threaded.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-hsw7/igt@gem_tiled_swapping@non-threaded.html * igt@i915_suspend@debugfs-reader: - shard-apl: [PASS][7] -> [DMESG-WARN][8] ([fdo#108566]) +6 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-apl7/igt@i915_suspend@debugfs-reader.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-apl4/igt@i915_suspend@debugfs-reader.html * igt@kms_cursor_crc@cursor-256x85-sliding: - shard-kbl: [PASS][9] -> [FAIL][10] ([fdo#103232]) +1 similar issue [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl1/igt@kms_cursor_crc@cursor-256x85-sliding.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl1/igt@kms_cursor_crc@cursor-256x85-sliding.html * igt@kms_cursor_crc@cursor-64x21-random: - shard-apl: [PASS][11] -> [FAIL][12] ([fdo#103232]) +1 similar issue [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-apl7/igt@kms_cursor_crc@cursor-64x21-random.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-apl5/igt@kms_cursor_crc@cursor-64x21-random.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc: - shard-glk: [PASS][13] -> [FAIL][14] ([fdo#103167]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-glk9/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-glk4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt: - shard-iclb: [PASS][15] -> [FAIL][16] ([fdo#103167]) +3 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes: - shard-kbl: [PASS][17] -> [DMESG-WARN][18] ([fdo#108566]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl7/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl7/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html * igt@kms_psr@psr2_sprite_plane_onoff: - shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109441]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb2/igt@kms_psr@psr2_sprite_plane_onoff.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb6/igt@kms_psr@psr2_sprite_plane_onoff.html * igt@kms_setmode@basic: - shard-iclb: [PASS][21] -> [FAIL][22] ([fdo#99912]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb5/igt@kms_setmode@basic.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb2/igt@kms_setmode@basic.html - shard-kbl: [PASS][23] -> [FAIL][24] ([fdo#99912]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl6/igt@kms_setmode@basic.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl1/igt@kms_setmode@basic.html #### Possible fixes #### * igt@gem_ctx_isolation@vcs0-s3: - shard-kbl: [DMESG-WARN][25] ([fdo#108566]) -> [PASS][26] +2 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl7/igt@gem_ctx_isolation@vcs0-s3.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl3/igt@gem_ctx_isolation@vcs0-s3.html * igt@i915_pm_rpm@system-suspend-execbuf: - shard-kbl: [INCOMPLETE][27] ([fdo#103665] / [fdo#107807]) -> [PASS][28] [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl1/igt@i915_pm_rpm@system-suspend-execbuf.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl1/igt@i915_pm_rpm@system-suspend-execbuf.html * igt@i915_suspend@sysfs-reader: - shard-apl: [DMESG-WARN][29] ([fdo#108566]) -> [PASS][30] +6 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-apl5/igt@i915_suspend@sysfs-reader.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-apl3/igt@i915_suspend@sysfs-reader.html * igt@kms_cursor_crc@cursor-128x42-offscreen: - shard-hsw: [INCOMPLETE][31] ([fdo#103540]) -> [PASS][32] [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-hsw7/igt@kms_cursor_crc@cursor-128x42-offscreen.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-hsw4/igt@kms_cursor_crc@cursor-128x42-offscreen.html * igt@kms_cursor_legacy@cursor-vs-flip-toggle: - shard-hsw: [FAIL][33] ([fdo#103355]) -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-hsw8/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-hsw6/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt: - shard-glk: [FAIL][35] ([fdo#103167]) -> [PASS][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-glk8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-glk9/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite: - shard-iclb: [FAIL][37] ([fdo#103167]) -> [PASS][38] +4 similar issues [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html * igt@kms_psr@psr2_cursor_plane_onoff: - shard-iclb: [SKIP][39] ([fdo#109441]) -> [PASS][40] +3 similar issues [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb6/igt@kms_psr@psr2_cursor_plane_onoff.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html * igt@kms_setmode@basic: - shard-apl: [FAIL][41] ([fdo#99912]) -> [PASS][42] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-apl8/igt@kms_setmode@basic.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-apl6/igt@kms_setmode@basic.html [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 [fdo#103355]: https://bugs.freedesktop.org/show_bug.cgi?id=103355 [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807 [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566 [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 Participating hosts (10 -> 6) ------------------------------ Missing (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 Build changes ------------- * IGT: IGT_4974 -> IGTPW_2957 * Piglit: piglit_4509 -> None CI_DRM_6069: 7dcd3d663bc180ef9e7dcc5d5f5adebee1f285bf @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2957: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/ IGT_4974: 23200bc1b008542bd4d744755540b07881d41fae @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins 2019-05-09 14:54 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork @ 2019-05-10 5:07 ` Arkadiusz Hiler 0 siblings, 0 replies; 15+ messages in thread From: Arkadiusz Hiler @ 2019-05-10 5:07 UTC (permalink / raw) To: igt-dev On Thu, May 09, 2019 at 02:54:01PM +0000, Patchwork wrote: > == Series Details == > > Series: series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins > URL : https://patchwork.freedesktop.org/series/60459/ > State : failure > > == Summary == > > CI Bug Log - changes from CI_DRM_6069_full -> IGTPW_2957_full > ==================================================== > > Summary > ------- > > **FAILURE** > > Serious unknown changes coming with IGTPW_2957_full absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_2957_full, please notify your bug team to allow them > to document this new failure mode, which will reduce false positives in CI. > > External URL: https://patchwork.freedesktop.org/api/1.0/series/60459/revisions/1/mbox/ > > Possible new issues > ------------------- > > Here are the unknown changes that may have been introduced in IGTPW_2957_full: > > ### IGT changes ### > > #### Possible regressions #### > > * igt@gem_eio@in-flight-suspend: > - shard-kbl: [PASS][1] -> [FAIL][2] > [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl1/igt@gem_eio@in-flight-suspend.html > [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl3/igt@gem_eio@in-flight-suspend.html Hey Martin, This is a false postive. I checked the test for anything that could go awry with the changes introduced with this series and there is nothing. So I did a rerun, just to be sure and it came out clean. Cheers, Arek > Known issues > ------------ > > Here are the changes found in IGTPW_2957_full that come from known issues: > > ### IGT changes ### > > #### Issues hit #### > > * igt@gem_tiled_swapping@non-threaded: > - shard-iclb: [PASS][3] -> [FAIL][4] ([fdo#108686]) > [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb5/igt@gem_tiled_swapping@non-threaded.html > [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb4/igt@gem_tiled_swapping@non-threaded.html > - shard-hsw: [PASS][5] -> [FAIL][6] ([fdo#108686]) > [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-hsw1/igt@gem_tiled_swapping@non-threaded.html > [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-hsw7/igt@gem_tiled_swapping@non-threaded.html > > * igt@i915_suspend@debugfs-reader: > - shard-apl: [PASS][7] -> [DMESG-WARN][8] ([fdo#108566]) +6 similar issues > [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-apl7/igt@i915_suspend@debugfs-reader.html > [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-apl4/igt@i915_suspend@debugfs-reader.html > > * igt@kms_cursor_crc@cursor-256x85-sliding: > - shard-kbl: [PASS][9] -> [FAIL][10] ([fdo#103232]) +1 similar issue > [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl1/igt@kms_cursor_crc@cursor-256x85-sliding.html > [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl1/igt@kms_cursor_crc@cursor-256x85-sliding.html > > * igt@kms_cursor_crc@cursor-64x21-random: > - shard-apl: [PASS][11] -> [FAIL][12] ([fdo#103232]) +1 similar issue > [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-apl7/igt@kms_cursor_crc@cursor-64x21-random.html > [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-apl5/igt@kms_cursor_crc@cursor-64x21-random.html > > * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc: > - shard-glk: [PASS][13] -> [FAIL][14] ([fdo#103167]) > [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-glk9/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html > [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-glk4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html > > * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt: > - shard-iclb: [PASS][15] -> [FAIL][16] ([fdo#103167]) +3 similar issues > [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html > [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html > > * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes: > - shard-kbl: [PASS][17] -> [DMESG-WARN][18] ([fdo#108566]) > [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl7/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html > [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl7/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html > > * igt@kms_psr@psr2_sprite_plane_onoff: > - shard-iclb: [PASS][19] -> [SKIP][20] ([fdo#109441]) > [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb2/igt@kms_psr@psr2_sprite_plane_onoff.html > [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb6/igt@kms_psr@psr2_sprite_plane_onoff.html > > * igt@kms_setmode@basic: > - shard-iclb: [PASS][21] -> [FAIL][22] ([fdo#99912]) > [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb5/igt@kms_setmode@basic.html > [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb2/igt@kms_setmode@basic.html > - shard-kbl: [PASS][23] -> [FAIL][24] ([fdo#99912]) > [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl6/igt@kms_setmode@basic.html > [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl1/igt@kms_setmode@basic.html > > > #### Possible fixes #### > > * igt@gem_ctx_isolation@vcs0-s3: > - shard-kbl: [DMESG-WARN][25] ([fdo#108566]) -> [PASS][26] +2 similar issues > [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl7/igt@gem_ctx_isolation@vcs0-s3.html > [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl3/igt@gem_ctx_isolation@vcs0-s3.html > > * igt@i915_pm_rpm@system-suspend-execbuf: > - shard-kbl: [INCOMPLETE][27] ([fdo#103665] / [fdo#107807]) -> [PASS][28] > [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-kbl1/igt@i915_pm_rpm@system-suspend-execbuf.html > [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-kbl1/igt@i915_pm_rpm@system-suspend-execbuf.html > > * igt@i915_suspend@sysfs-reader: > - shard-apl: [DMESG-WARN][29] ([fdo#108566]) -> [PASS][30] +6 similar issues > [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-apl5/igt@i915_suspend@sysfs-reader.html > [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-apl3/igt@i915_suspend@sysfs-reader.html > > * igt@kms_cursor_crc@cursor-128x42-offscreen: > - shard-hsw: [INCOMPLETE][31] ([fdo#103540]) -> [PASS][32] > [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-hsw7/igt@kms_cursor_crc@cursor-128x42-offscreen.html > [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-hsw4/igt@kms_cursor_crc@cursor-128x42-offscreen.html > > * igt@kms_cursor_legacy@cursor-vs-flip-toggle: > - shard-hsw: [FAIL][33] ([fdo#103355]) -> [PASS][34] > [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-hsw8/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html > [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-hsw6/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html > > * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt: > - shard-glk: [FAIL][35] ([fdo#103167]) -> [PASS][36] > [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-glk8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html > [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-glk9/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html > > * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite: > - shard-iclb: [FAIL][37] ([fdo#103167]) -> [PASS][38] +4 similar issues > [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html > [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html > > * igt@kms_psr@psr2_cursor_plane_onoff: > - shard-iclb: [SKIP][39] ([fdo#109441]) -> [PASS][40] +3 similar issues > [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-iclb6/igt@kms_psr@psr2_cursor_plane_onoff.html > [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html > > * igt@kms_setmode@basic: > - shard-apl: [FAIL][41] ([fdo#99912]) -> [PASS][42] > [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6069/shard-apl8/igt@kms_setmode@basic.html > [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/shard-apl6/igt@kms_setmode@basic.html > > > [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 > [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232 > [fdo#103355]: https://bugs.freedesktop.org/show_bug.cgi?id=103355 > [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540 > [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 > [fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807 > [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566 > [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686 > [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 > [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 > > > Participating hosts (10 -> 6) > ------------------------------ > > Missing (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 > > > Build changes > ------------- > > * IGT: IGT_4974 -> IGTPW_2957 > * Piglit: piglit_4509 -> None > > CI_DRM_6069: 7dcd3d663bc180ef9e7dcc5d5f5adebee1f285bf @ git://anongit.freedesktop.org/gfx-ci/linux > IGTPW_2957: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/ > IGT_4974: 23200bc1b008542bd4d744755540b07881d41fae @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools > piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit > > == Logs == > > For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2957/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins (rev2) 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler ` (5 preceding siblings ...) 2019-05-09 14:54 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork @ 2019-05-09 20:35 ` Patchwork 2019-05-10 4:46 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2019-05-10 8:28 ` [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Daniel Vetter 8 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2019-05-09 20:35 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins (rev2) URL : https://patchwork.freedesktop.org/series/60459/ State : success == Summary == CI Bug Log - changes from IGT_4978 -> IGTPW_2960 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/60459/revisions/2/mbox/ Known issues ------------ Here are the changes found in IGTPW_2960 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_suspend@basic-s3: - fi-apl-guc: [PASS][1] -> [DMESG-WARN][2] ([fdo#110512]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/fi-apl-guc/igt@gem_exec_suspend@basic-s3.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/fi-apl-guc/igt@gem_exec_suspend@basic-s3.html * igt@i915_selftest@live_evict: - fi-bsw-kefka: [PASS][3] -> [DMESG-WARN][4] ([fdo#107709]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/fi-bsw-kefka/igt@i915_selftest@live_evict.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/fi-bsw-kefka/igt@i915_selftest@live_evict.html #### Possible fixes #### * igt@amdgpu/amd_basic@userptr: - fi-kbl-8809g: [DMESG-WARN][5] ([fdo#108965]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/fi-kbl-8809g/igt@amdgpu/amd_basic@userptr.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/fi-kbl-8809g/igt@amdgpu/amd_basic@userptr.html * igt@gem_ctx_switch@basic-default: - {fi-icl-u2}: [INCOMPLETE][7] ([fdo#107713] / [fdo#108569]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/fi-icl-u2/igt@gem_ctx_switch@basic-default.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/fi-icl-u2/igt@gem_ctx_switch@basic-default.html * igt@i915_module_load@reload: - fi-blb-e6850: [INCOMPLETE][9] ([fdo#107718]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/fi-blb-e6850/igt@i915_module_load@reload.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/fi-blb-e6850/igt@i915_module_load@reload.html * igt@i915_selftest@live_hangcheck: - fi-skl-iommu: [INCOMPLETE][11] ([fdo#108602] / [fdo#108744]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: - fi-apl-guc: [DMESG-WARN][13] ([fdo#110512]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/fi-apl-guc/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/fi-apl-guc/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#107709]: https://bugs.freedesktop.org/show_bug.cgi?id=107709 [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713 [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718 [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569 [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602 [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744 [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965 [fdo#110512]: https://bugs.freedesktop.org/show_bug.cgi?id=110512 Participating hosts (50 -> 43) ------------------------------ Missing (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-whl-u fi-byt-clapper Build changes ------------- * IGT: IGT_4978 -> IGTPW_2960 CI_DRM_6072: 645586708589c3d2ac81114595e875cdfbbff385 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2960: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/ IGT_4978: b9b3646d4f04dd0204ead2a1a10f9e1806a0b622 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins (rev2) 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler ` (6 preceding siblings ...) 2019-05-09 20:35 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins (rev2) Patchwork @ 2019-05-10 4:46 ` Patchwork 2019-05-10 8:28 ` [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Daniel Vetter 8 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2019-05-10 4:46 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins (rev2) URL : https://patchwork.freedesktop.org/series/60459/ State : success == Summary == CI Bug Log - changes from IGT_4978_full -> IGTPW_2960_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/60459/revisions/2/mbox/ Known issues ------------ Here are the changes found in IGTPW_2960_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_color@pipe-a-ctm-blue-to-red: - shard-kbl: [PASS][1] -> [FAIL][2] ([fdo#107201]) +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-kbl4/igt@kms_color@pipe-a-ctm-blue-to-red.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-kbl7/igt@kms_color@pipe-a-ctm-blue-to-red.html * igt@kms_color@pipe-a-ctm-green-to-red: - shard-apl: [PASS][3] -> [FAIL][4] ([fdo#107201]) +1 similar issue [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-apl7/igt@kms_color@pipe-a-ctm-green-to-red.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-apl8/igt@kms_color@pipe-a-ctm-green-to-red.html * igt@kms_dp_dsc@basic-dsc-enable-edp: - shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109349]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb1/igt@kms_dp_dsc@basic-dsc-enable-edp.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render: - shard-iclb: [PASS][7] -> [FAIL][8] ([fdo#103167]) +5 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes: - shard-kbl: [PASS][9] -> [INCOMPLETE][10] ([fdo#103665]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-kbl3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html * igt@kms_plane_lowres@pipe-a-tiling-y: - shard-iclb: [PASS][11] -> [FAIL][12] ([fdo#103166]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-y.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb1/igt@kms_plane_lowres@pipe-a-tiling-y.html * igt@kms_psr2_su@frontbuffer: - shard-iclb: [PASS][13] -> [SKIP][14] ([fdo#109642]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb2/igt@kms_psr2_su@frontbuffer.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb3/igt@kms_psr2_su@frontbuffer.html * igt@kms_psr@psr2_primary_mmap_cpu: - shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#109441]) +3 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb7/igt@kms_psr@psr2_primary_mmap_cpu.html * igt@kms_vblank@pipe-a-ts-continuation-suspend: - shard-apl: [PASS][17] -> [DMESG-WARN][18] ([fdo#108566]) +1 similar issue [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-apl6/igt@kms_vblank@pipe-a-ts-continuation-suspend.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-apl8/igt@kms_vblank@pipe-a-ts-continuation-suspend.html #### Possible fixes #### * igt@i915_pm_rpm@dpms-mode-unset-lpsp: - shard-iclb: [INCOMPLETE][19] ([fdo#107713] / [fdo#108840]) -> [PASS][20] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb5/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb6/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html * igt@i915_pm_rpm@i2c: - shard-iclb: [DMESG-WARN][21] ([fdo#109982]) -> [PASS][22] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb2/igt@i915_pm_rpm@i2c.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb5/igt@i915_pm_rpm@i2c.html * igt@i915_suspend@debugfs-reader: - shard-apl: [DMESG-WARN][23] ([fdo#108566]) -> [PASS][24] +7 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-apl4/igt@i915_suspend@debugfs-reader.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-apl7/igt@i915_suspend@debugfs-reader.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic: - shard-hsw: [FAIL][25] ([fdo#105767]) -> [PASS][26] [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-hsw6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-hsw2/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible: - shard-glk: [FAIL][27] ([fdo#105363]) -> [PASS][28] +1 similar issue [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html * igt@kms_flip@dpms-vs-vblank-race-interruptible: - shard-glk: [FAIL][29] ([fdo#103060]) -> [PASS][30] [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-glk4/igt@kms_flip@dpms-vs-vblank-race-interruptible.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-glk3/igt@kms_flip@dpms-vs-vblank-race-interruptible.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render: - shard-iclb: [FAIL][31] ([fdo#103167]) -> [PASS][32] +1 similar issue [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html * igt@kms_psr2_su@page_flip: - shard-iclb: [SKIP][33] ([fdo#109642]) -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb1/igt@kms_psr2_su@page_flip.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb2/igt@kms_psr2_su@page_flip.html * igt@kms_psr@psr2_cursor_mmap_cpu: - shard-iclb: [SKIP][35] ([fdo#109441]) -> [PASS][36] +3 similar issues [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb5/igt@kms_psr@psr2_cursor_mmap_cpu.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html * igt@kms_setmode@basic: - shard-apl: [FAIL][37] ([fdo#99912]) -> [PASS][38] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-apl5/igt@kms_setmode@basic.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-apl6/igt@kms_setmode@basic.html * igt@kms_sysfs_edid_timing: - shard-iclb: [FAIL][39] ([fdo#100047]) -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4978/shard-iclb3/igt@kms_sysfs_edid_timing.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/shard-iclb1/igt@kms_sysfs_edid_timing.html [fdo#100047]: https://bugs.freedesktop.org/show_bug.cgi?id=100047 [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363 [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767 [fdo#107201]: https://bugs.freedesktop.org/show_bug.cgi?id=107201 [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713 [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566 [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840 [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#109982]: https://bugs.freedesktop.org/show_bug.cgi?id=109982 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 Participating hosts (7 -> 6) ------------------------------ Missing (1): shard-skl Build changes ------------- * IGT: IGT_4978 -> IGTPW_2960 CI_DRM_6072: 645586708589c3d2ac81114595e875cdfbbff385 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_2960: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/ IGT_4978: b9b3646d4f04dd0204ead2a1a10f9e1806a0b622 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2960/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler ` (7 preceding siblings ...) 2019-05-10 4:46 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork @ 2019-05-10 8:28 ` Daniel Vetter 8 siblings, 0 replies; 15+ messages in thread From: Daniel Vetter @ 2019-05-10 8:28 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev On Thu, May 09, 2019 at 01:03:22PM +0300, Arkadiusz Hiler wrote: > Disable the memory allocating builtins as they may cause unexpected behavior > with our framework. They *may* get optimized out in favor of a register or > stack variable, making them effectively local. > > Local variables do not play well with longjmp, which we use for fixtures > and subtests. > > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Uh ... occasionally I have regrest about the igt design I started years ago. Maybe we should have used C++ exceptions for this to get something more well-defined. Or Rust (but that wasn't a thing back then). On the series: Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > meson.build | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/meson.build b/meson.build > index 8196ab63..2d54c28f 100644 > --- a/meson.build > +++ b/meson.build > @@ -62,6 +62,12 @@ cc_args = [ > '-Werror=sequence-point', > '-Werror=trigraphs', > '-Werror=write-strings', > +# Disable the memory allocating builtins as they may cause unexpected behavior > +# with our framework. They *may* get optimized out in favor of a register or > +# stack variable, making them effectively local. Local variables do not play > +# well with longjmp which is heavily used by IGT framework. > + '-fno-builtin-malloc', > + '-fno-builtin-calloc', > ] > > foreach cc_arg : cc_args > -- > 2.20.1 > > _______________________________________________ > igt-dev mailing list > igt-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/igt-dev -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2019-05-10 8:28 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-05-09 10:03 [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Arkadiusz Hiler 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 2/5] lib/tests/igt_subtest_group: Operate within defined behavior Arkadiusz Hiler 2019-05-09 10:31 ` Ser, Simon 2019-05-09 11:11 ` Arkadiusz Hiler 2019-05-09 11:30 ` Ser, Simon 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 3/5] runner_tests: " Arkadiusz Hiler 2019-05-09 10:43 ` Petri Latvala 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 4/5] meson: Change the default build type to debugoptimized Arkadiusz Hiler 2019-05-09 10:03 ` [igt-dev] [PATCH i-g-t 5/5] meson: Use -D_FORTIFY_SOURCE=2 on optimized builds Arkadiusz Hiler 2019-05-09 11:37 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins Patchwork 2019-05-09 14:54 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork 2019-05-10 5:07 ` Arkadiusz Hiler 2019-05-09 20:35 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/5] meson/cc: Disable memory-allocating builtins (rev2) Patchwork 2019-05-10 4:46 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2019-05-10 8:28 ` [igt-dev] [PATCH i-g-t 1/5] meson/cc: Disable memory-allocating builtins Daniel Vetter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox