* [igt-dev] [PATCH i-g-t 1/4] runner: Fix declaration of timeofday_double
@ 2018-10-29 14:30 Petri Latvala
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 2/4] runner: const-correct the unit tests Petri Latvala
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Petri Latvala @ 2018-10-29 14:30 UTC (permalink / raw)
To: igt-dev; +Cc: Petri Latvala
Fixes compiler warning: function declaration isn’t a prototype
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
---
runner/executor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/runner/executor.c b/runner/executor.c
index fc79f772..007b72ce 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -928,7 +928,7 @@ static bool clear_old_results(char *path)
return true;
}
-static double timeofday_double()
+static double timeofday_double(void)
{
struct timeval tv;
--
2.18.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 2/4] runner: const-correct the unit tests
2018-10-29 14:30 [igt-dev] [PATCH i-g-t 1/4] runner: Fix declaration of timeofday_double Petri Latvala
@ 2018-10-29 14:30 ` Petri Latvala
2018-11-05 11:35 ` Arkadiusz Hiler
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 3/4] assembler: Compare correct things Petri Latvala
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Petri Latvala @ 2018-10-29 14:30 UTC (permalink / raw)
To: igt-dev; +Cc: Petri Latvala
const where possible, and cast away const when passing argv to
parse_options, which expects non-const strings, because it passes them
to getopt_long, which expects non-const strings...
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
---
runner/runner_tests.c | 318 +++++++++++++++++++++---------------------
1 file changed, 159 insertions(+), 159 deletions(-)
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index 9c0f9eb0..d07e6f37 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -12,7 +12,7 @@
static char testdatadir[] = TESTDATA_DIRECTORY;
-static void igt_assert_eqstr(char *one, char *two)
+static void igt_assert_eqstr(const char *one, const char *two)
{
if (one == NULL && two == NULL)
return;
@@ -38,7 +38,7 @@ static void debug_print_executions(struct job_list *list)
}
-static char *dump_file(int dirfd, char *name)
+static char *dump_file(int dirfd, const char *name)
{
int fd = openat(dirfd, name, O_RDONLY);
ssize_t s;
@@ -61,7 +61,7 @@ static char *dump_file(int dirfd, char *name)
return buf;
}
-static void job_list_filter_test(char *name, char *filterarg1, char *filterarg2,
+static void job_list_filter_test(const char *name, const char *filterarg1, const char *filterarg2,
size_t expected_normal, size_t expected_multiple)
{
int multiple;
@@ -73,18 +73,18 @@ static void job_list_filter_test(char *name, char *filterarg1, char *filterarg2,
for (multiple = 0; multiple < 2; multiple++) {
igt_subtest_f("job-list-filters-%s-%s", name, multiple ? "multiple" : "normal") {
struct job_list list;
- char *argv[] = { "runner",
- /* Ugly but does the trick */
- multiple ? "--multiple-mode" : "--sync",
- filterarg1, filterarg2,
- testdatadir,
- "path-to-results",
+ const char *argv[] = { "runner",
+ /* Ugly but does the trick */
+ multiple ? "--multiple-mode" : "--sync",
+ filterarg1, filterarg2,
+ testdatadir,
+ "path-to-results",
};
bool success = false;
size_t size;
init_job_list(&list);
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
success = create_job_list(&list, &settings);
size = list.size;
@@ -176,7 +176,7 @@ static void assert_job_list_equal(struct job_list *one, struct job_list *two)
}
}
-static void assert_execution_created(int dirfd, char *name)
+static void assert_execution_created(int dirfd, const char *name)
{
int fd;
@@ -201,12 +201,12 @@ igt_main
init_settings(&settings);
igt_subtest("default-settings") {
- char *argv[] = { "runner",
- "test-root-dir",
- "path-to-results",
+ const char *argv[] = { "runner",
+ "test-root-dir",
+ "path-to-results",
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(!settings.abort_on_error);
igt_assert(!settings.test_list);
@@ -281,13 +281,13 @@ igt_main
}
igt_subtest("absolute-path-usage") {
- char *argv[] = { "runner",
- "--test-list", pathtotestlist,
- testdatadir,
- dirname,
+ const char *argv[] = { "runner",
+ "--test-list", pathtotestlist,
+ testdatadir,
+ dirname,
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
path = realpath(testdatadir, NULL);
igt_assert(path != NULL);
@@ -315,13 +315,13 @@ igt_main
}
igt_subtest("environment-overrides-test-root-flag") {
- char *argv[] = { "runner",
- "test-root-dir",
- "path-to-results",
+ const char *argv[] = { "runner",
+ "test-root-dir",
+ "path-to-results",
};
setenv("IGT_TEST_ROOT", testdatadir, 1);
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(!settings.abort_on_error);
igt_assert(!settings.test_list);
@@ -346,29 +346,29 @@ igt_main
}
igt_subtest("parse-all-settings") {
- char *argv[] = { "runner",
- "-n", "foo",
- "--abort-on-monitored-error",
- "--test-list", "path-to-test-list",
- "--ignore-missing",
- "--dry-run",
- "-t", "pattern1",
- "-t", "pattern2",
- "-x", "xpattern1",
- "-x", "xpattern2",
- "-s",
- "-l", "verbose",
- "--overwrite",
- "--multiple-mode",
- "--inactivity-timeout", "27",
- "--overall-timeout", "360",
- "--use-watchdog",
- "--piglit-style-dmesg",
- "test-root-dir",
- "path-to-results",
+ const char *argv[] = { "runner",
+ "-n", "foo",
+ "--abort-on-monitored-error",
+ "--test-list", "path-to-test-list",
+ "--ignore-missing",
+ "--dry-run",
+ "-t", "pattern1",
+ "-t", "pattern2",
+ "-x", "xpattern1",
+ "-x", "xpattern2",
+ "-s",
+ "-l", "verbose",
+ "--overwrite",
+ "--multiple-mode",
+ "--inactivity-timeout", "27",
+ "--overall-timeout", "360",
+ "--use-watchdog",
+ "--piglit-style-dmesg",
+ "test-root-dir",
+ "path-to-results",
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(settings.abort_on_error);
igt_assert(strstr(settings.test_list, "path-to-test-list") != NULL);
@@ -393,50 +393,50 @@ igt_main
}
igt_subtest("invalid-option") {
- char *argv[] = { "runner",
- "--no-such-option",
- "test-root-dir",
- "results-path",
+ const char *argv[] = { "runner",
+ "--no-such-option",
+ "test-root-dir",
+ "results-path",
};
- igt_assert(!parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(!parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
}
igt_subtest("paths-missing") {
- char *argv[] = { "runner",
- "-o",
+ const char *argv[] = { "runner",
+ "-o",
};
- igt_assert(!parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(!parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
}
igt_subtest("log-levels") {
- char *argv[] = { "runner",
- "-l", "normal",
- "test-root-dir",
- "results-path",
+ const char *argv[] = { "runner",
+ "-l", "normal",
+ "test-root-dir",
+ "results-path",
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ 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), argv, &settings));
+ 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), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert_eq(settings.log_level, LOG_LEVEL_VERBOSE);
}
igt_subtest("parse-clears-old-data") {
- char *argv[] = { "runner",
- "-n", "foo",
- "--dry-run",
- "test-root-dir",
- "results-path",
+ const char *argv[] = { "runner",
+ "-n", "foo",
+ "--dry-run",
+ "test-root-dir",
+ "results-path",
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert_eqstr(settings.name, "foo");
igt_assert(settings.dry_run);
@@ -446,7 +446,7 @@ igt_main
argv[1] = "--test-list";
argv[3] = "--sync";
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert_eqstr(settings.name, "results-path");
igt_assert(!settings.dry_run);
@@ -464,13 +464,13 @@ igt_main
}
igt_subtest("validate-ok") {
- char *argv[] = { "runner",
- "--test-list", filename,
- testdatadir,
- "path-to-results",
+ const char *argv[] = { "runner",
+ "--test-list", filename,
+ testdatadir,
+ "path-to-results",
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(validate_settings(&settings));
}
@@ -481,15 +481,15 @@ igt_main
}
igt_subtest("validate-no-test-list") {
- char *nosuchfile = "no-such-file";
- char *argv[] = { "runner",
- "--test-list", nosuchfile,
- testdatadir,
- "path-to-results",
+ const char *nosuchfile = "no-such-file";
+ const char *argv[] = { "runner",
+ "--test-list", nosuchfile,
+ testdatadir,
+ "path-to-results",
};
igt_assert_lt(open(nosuchfile, O_RDONLY), 0);
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(!validate_settings(&settings));
}
@@ -504,12 +504,12 @@ igt_main
}
igt_subtest("job-list-no-test-list-txt") {
- char *argv[] = { "runner",
- dirname,
- "path-to-results",
+ const char *argv[] = { "runner",
+ dirname,
+ "path-to-results",
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(!create_job_list(&list, &settings));
}
@@ -545,14 +545,14 @@ igt_main
for (multiple = 0; multiple < 2; multiple++) {
igt_subtest_f("job-list-testlist-%s", multiple ? "multiple" : "normal") {
- char *argv[] = { "runner",
- "--test-list", filename,
- multiple ? "--multiple-mode" : "--sync",
- testdatadir,
- "path-to-results",
+ const char *argv[] = { "runner",
+ "--test-list", filename,
+ multiple ? "--multiple-mode" : "--sync",
+ testdatadir,
+ "path-to-results",
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &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);
@@ -570,16 +570,16 @@ igt_main
}
igt_subtest_f("job-list-testlist-filtered-%s", multiple ? "multiple" : "normal") {
- char *argv[] = { "runner",
- "--test-list", filename,
- multiple ? "--multiple-mode" : "--sync",
- "-t", "successtest",
- "-x", "first",
- testdatadir,
- "path-to-results",
+ const char *argv[] = { "runner",
+ "--test-list", filename,
+ multiple ? "--multiple-mode" : "--sync",
+ "-t", "successtest",
+ "-x", "first",
+ testdatadir,
+ "path-to-results",
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(create_job_list(&list, &settings));
igt_assert_eq(list.size, 1);
@@ -608,29 +608,29 @@ igt_main
}
igt_subtest("settings-serialize") {
- char *argv[] = { "runner",
- "-n", "foo",
- "--abort-on-monitored-error",
- "--test-list", "path-to-test-list",
- "--ignore-missing",
- "--dry-run",
- "-t", "pattern1",
- "-t", "pattern2",
- "-x", "xpattern1",
- "-x", "xpattern2",
- "-s",
- "-l", "verbose",
- "--overwrite",
- "--multiple-mode",
- "--inactivity-timeout", "27",
- "--overall-timeout", "360",
- "--use-watchdog",
- "--piglit-style-dmesg",
- testdatadir,
- dirname,
+ const char *argv[] = { "runner",
+ "-n", "foo",
+ "--abort-on-monitored-error",
+ "--test-list", "path-to-test-list",
+ "--ignore-missing",
+ "--dry-run",
+ "-t", "pattern1",
+ "-t", "pattern2",
+ "-x", "xpattern1",
+ "-x", "xpattern2",
+ "-s",
+ "-l", "verbose",
+ "--overwrite",
+ "--multiple-mode",
+ "--inactivity-timeout", "27",
+ "--overall-timeout", "360",
+ "--use-watchdog",
+ "--piglit-style-dmesg",
+ testdatadir,
+ dirname,
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(serialize_settings(&settings));
@@ -668,14 +668,14 @@ igt_main
for (multiple = 0; multiple < 2; multiple++) {
igt_subtest_f("job-list-serialize-%s", multiple ? "multiple" : "normal") {
- char *argv[] = { "runner",
- /* Ugly */
- multiple ? "--multiple-mode" : "--sync",
- testdatadir,
- dirname,
+ const char *argv[] = { "runner",
+ /* Ugly */
+ multiple ? "--multiple-mode" : "--sync",
+ testdatadir,
+ dirname,
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(create_job_list(&list, &settings));
igt_assert(serialize_settings(&settings));
@@ -716,12 +716,12 @@ igt_main
igt_subtest("execute-initialize-new-run") {
struct execute_state state;
- char *argv[] = { "runner",
- testdatadir,
- dirname,
+ const char *argv[] = { "runner",
+ testdatadir,
+ dirname,
};
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &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));
@@ -762,16 +762,16 @@ igt_main
igt_subtest("execute-initialize-subtest-started") {
struct execute_state state;
- char *argv[] = { "runner",
- "--multiple-mode",
- "-t", "successtest",
- testdatadir,
- dirname,
+ const char *argv[] = { "runner",
+ "--multiple-mode",
+ "-t", "successtest",
+ testdatadir,
+ dirname,
};
char journaltext[] = "first-subtest\n";
char excludestring[] = "!first-subtest";
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ 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);
@@ -817,16 +817,16 @@ igt_main
igt_subtest("execute-initialize-all-subtests-started") {
struct execute_state state;
- char *argv[] = { "runner",
- "--multiple-mode",
- "-t", "successtest@first-subtest",
- "-t", "successtest@second-subtest",
- testdatadir,
- dirname,
+ const char *argv[] = { "runner",
+ "--multiple-mode",
+ "-t", "successtest@first-subtest",
+ "-t", "successtest@second-subtest",
+ testdatadir,
+ dirname,
};
char journaltext[] = "first-subtest\nsecond-subtest\n";
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ 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);
@@ -871,14 +871,14 @@ igt_main
igt_subtest("execute-initialize-subtests-complete") {
struct execute_state state;
- char *argv[] = { "runner",
- "--multiple-mode",
- testdatadir,
- dirname,
+ const char *argv[] = { "runner",
+ "--multiple-mode",
+ testdatadir,
+ dirname,
};
char journaltext[] = "first-subtest\nsecond-subtest\nexit:0\n";
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
igt_assert(create_job_list(&list, &settings));
igt_assert(list.size == 3);
@@ -935,17 +935,17 @@ igt_main
igt_subtest_f("execute-subtests-%s", multiple ? "multiple" : "normal") {
struct execute_state state;
- char *argv[] = { "runner",
- multiple ? "--multiple-mode" : "--sync",
- "-t", "-subtest",
- testdatadir,
- dirname,
+ const char *argv[] = { "runner",
+ multiple ? "--multiple-mode" : "--sync",
+ "-t", "-subtest",
+ testdatadir,
+ dirname,
};
char testdirname[16];
size_t expected_tests = multiple ? 2 : 3;
size_t i;
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &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));
@@ -1001,19 +1001,19 @@ igt_main
igt_subtest_f("execute-skipper-journal-%s", multiple ? "multiple" : "normal") {
struct execute_state state;
- char *argv[] = { "runner",
- multiple ? "--multiple-mode" : "--sync",
- "-t", "skippers",
- testdatadir,
- dirname,
+ const char *argv[] = { "runner",
+ multiple ? "--multiple-mode" : "--sync",
+ "-t", "skippers",
+ testdatadir,
+ dirname,
};
char *dump;
- char *expected_0 = multiple ?
+ const char *expected_0 = multiple ?
"skip-one\nskip-two\nexit:77 (" :
"skip-one\nexit:77 (";
- char *expected_1 = "skip-two\nexit:77 (";
+ const char *expected_1 = "skip-two\nexit:77 (";
- igt_assert(parse_options(ARRAY_SIZE(argv), argv, &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));
--
2.18.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 3/4] assembler: Compare correct things
2018-10-29 14:30 [igt-dev] [PATCH i-g-t 1/4] runner: Fix declaration of timeofday_double Petri Latvala
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 2/4] runner: const-correct the unit tests Petri Latvala
@ 2018-10-29 14:30 ` Petri Latvala
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 4/4] meson: Enable more warning flags Petri Latvala
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Petri Latvala @ 2018-10-29 14:30 UTC (permalink / raw)
To: igt-dev; +Cc: Petri Latvala
This code is supposedly checking of the given register is nr=0 in ARF but
was instead checking twice if the register is anything in ARF.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
---
assembler/brw_eu_emit.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/assembler/brw_eu_emit.c b/assembler/brw_eu_emit.c
index d4fadffa..ca93245b 100644
--- a/assembler/brw_eu_emit.c
+++ b/assembler/brw_eu_emit.c
@@ -180,7 +180,7 @@ validate_reg(struct brw_instruction *insn, struct brw_reg reg)
}
if (reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
- reg.file == BRW_ARF_NULL)
+ reg.nr == BRW_ARF_NULL)
return;
assert(reg.hstride >= 0 && reg.hstride < Elements(hstride_for_reg));
--
2.18.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 4/4] meson: Enable more warning flags
2018-10-29 14:30 [igt-dev] [PATCH i-g-t 1/4] runner: Fix declaration of timeofday_double Petri Latvala
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 2/4] runner: const-correct the unit tests Petri Latvala
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 3/4] assembler: Compare correct things Petri Latvala
@ 2018-10-29 14:30 ` Petri Latvala
2018-10-30 1:59 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] runner: Fix declaration of timeofday_double Patchwork
2018-10-30 9:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Petri Latvala @ 2018-10-29 14:30 UTC (permalink / raw)
To: igt-dev; +Cc: Petri Latvala
We had quite a bit of warning flags active on autotools builds that
were not used for meson builds. Add the same flags autotools builds
used to what meson was using (some flags autotools didn't have).
For the assembler, disable some of the flags to make it build cleanly
again.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
---
assembler/meson.build | 18 ++++++++++++++++++
meson.build | 44 ++++++++++++++++++++++++++++++++++++++-----
2 files changed, 57 insertions(+), 5 deletions(-)
diff --git a/assembler/meson.build b/assembler/meson.build
index cefdba93..3b4af348 100644
--- a/assembler/meson.build
+++ b/assembler/meson.build
@@ -11,7 +11,23 @@ lib_brw_src = [
'ralloc.c',
]
+assembler_warnflags = [
+ '-Wno-declaration-after-statement',
+ '-Wno-discarded-qualifiers',
+ '-Wno-missing-format-attribute',
+ '-Wno-old-style-definition',
+ '-Wno-redundant-decls',
+ '-Wno-shadow',
+]
+assembler_args = []
+foreach flag : assembler_warnflags
+ if cc.has_argument(flag)
+ assembler_args += flag
+ endif
+endforeach
+
lib_brw = static_library('brw', lib_brw_src,
+ c_args : assembler_args,
dependencies : igt_deps)
flex = find_program('flex')
@@ -30,9 +46,11 @@ pgen = generator(bison,
pfiles = pgen.process('gram.y')
executable('intel-gen4asm', 'main.c', lfiles, pfiles,
+ c_args : assembler_args,
link_with : lib_brw, install : true)
executable('intel-gen4disasm', 'disasm-main.c',
+ c_args : assembler_args,
link_with : lib_brw, install : true)
conf_data = configuration_data()
diff --git a/meson.build b/meson.build
index eff35585..f74d901c 100644
--- a/meson.build
+++ b/meson.build
@@ -10,14 +10,48 @@ project('igt-gpu-tools', 'c',
cc = meson.get_compiler('c')
cc_args = [
- '-Wno-unused-parameter',
- '-Wno-sign-compare',
- '-Wno-missing-field-initializers',
+ '-Wbad-function-cast',
+ '-Wdeclaration-after-statement',
+ '-Wformat=2',
+# igt_assert(0) in switch statements triggers a bunch of this.
+ '-Wimplicit-fallthrough=0',
+ '-Wlogical-op',
+ '-Wmissing-declarations',
+ '-Wmissing-format-attribute',
+ '-Wmissing-noreturn',
+ '-Wmissing-prototypes',
+ '-Wnested-externs',
+ '-Wold-style-definition',
+ '-Wpointer-arith',
+ '-Wredundant-decls',
+ '-Wshadow',
+ '-Wstrict-prototypes',
+ '-Wuninitialized',
+ '-Wunused',
+
'-Wno-clobbered',
+ '-Wno-maybe-uninitialized',
+ '-Wno-missing-field-initializers',
+ '-Wno-pointer-arith',
+ '-Wno-sign-compare',
# Macros asserting on the range of their arguments triggers this.
'-Wno-type-limits',
-# igt_assert(0) in switch statements triggers a bunch of this.
- '-Wimplicit-fallthrough=0',
+ '-Wno-unused-parameter',
+ '-Wno-unused-result',
+
+ '-Werror=address',
+ '-Werror=array-bounds',
+ '-Werror=implicit',
+ '-Werror=init-self',
+ '-Werror=int-to-pointer-cast',
+ '-Werror=main',
+ '-Werror=missing-braces',
+ '-Werror=nonnull',
+ '-Werror=pointer-to-int-cast',
+ '-Werror=return-type',
+ '-Werror=sequence-point',
+ '-Werror=trigraphs',
+ '-Werror=write-strings',
]
foreach cc_arg : cc_args
--
2.18.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] runner: Fix declaration of timeofday_double
2018-10-29 14:30 [igt-dev] [PATCH i-g-t 1/4] runner: Fix declaration of timeofday_double Petri Latvala
` (2 preceding siblings ...)
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 4/4] meson: Enable more warning flags Petri Latvala
@ 2018-10-30 1:59 ` Patchwork
2018-10-30 9:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-10-30 1:59 UTC (permalink / raw)
To: Petri Latvala; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/4] runner: Fix declaration of timeofday_double
URL : https://patchwork.freedesktop.org/series/51683/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_5044 -> IGTPW_2008 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/51683/revisions/1/mbox/
== Known issues ==
Here are the changes found in IGTPW_2008 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_selftest@live_contexts:
fi-icl-u: PASS -> DMESG-FAIL (fdo#108569)
igt@drv_selftest@live_execlists:
fi-apl-guc: PASS -> INCOMPLETE (fdo#106693)
igt@kms_flip@basic-flip-vs-modeset:
fi-skl-6700hq: PASS -> DMESG-WARN (fdo#105998) +1
igt@kms_frontbuffer_tracking@basic:
fi-icl-u2: PASS -> FAIL (fdo#103167)
fi-byt-clapper: PASS -> FAIL (fdo#103167)
igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
fi-byt-clapper: PASS -> FAIL (fdo#103191, fdo#107362)
==== Possible fixes ====
igt@drv_module_reload@basic-reload:
fi-glk-j4005: DMESG-WARN (fdo#106725, fdo#106248) -> PASS
igt@drv_selftest@live_contexts:
fi-icl-u2: DMESG-FAIL (fdo#108569) -> PASS
igt@gem_exec_suspend@basic-s3:
fi-blb-e6850: INCOMPLETE (fdo#107718) -> PASS
igt@gem_sync@basic-each:
fi-glk-j4005: DMESG-WARN (fdo#105719) -> PASS
igt@kms_flip@basic-flip-vs-modeset:
fi-glk-j4005: DMESG-WARN (fdo#106000) -> PASS
igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
fi-byt-clapper: FAIL (fdo#103191, fdo#107362) -> PASS
igt@kms_pipe_crc_basic@read-crc-pipe-c-frame-sequence:
fi-glk-j4005: DMESG-FAIL (fdo#106000) -> PASS
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#105719 https://bugs.freedesktop.org/show_bug.cgi?id=105719
fdo#105998 https://bugs.freedesktop.org/show_bug.cgi?id=105998
fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248
fdo#106693 https://bugs.freedesktop.org/show_bug.cgi?id=106693
fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725
fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718
fdo#108569 https://bugs.freedesktop.org/show_bug.cgi?id=108569
== Participating hosts (47 -> 44) ==
Additional (5): fi-gdg-551 fi-cfl-8109u fi-ivb-3770 fi-pnv-d510 fi-snb-2600
Missing (8): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ilk-650 fi-ctg-p8600 fi-kbl-8809g fi-elk-e7500 fi-byt-n2820
== Build changes ==
* IGT: IGT_4698 -> IGTPW_2008
CI_DRM_5044: c4487dca27970879bf67f331614142c749984d65 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_2008: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2008/
IGT_4698: af57164fcb16950187ad402ed31f565e88c42a78 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2008/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/4] runner: Fix declaration of timeofday_double
2018-10-29 14:30 [igt-dev] [PATCH i-g-t 1/4] runner: Fix declaration of timeofday_double Petri Latvala
` (3 preceding siblings ...)
2018-10-30 1:59 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] runner: Fix declaration of timeofday_double Patchwork
@ 2018-10-30 9:14 ` Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-10-30 9:14 UTC (permalink / raw)
To: Petri Latvala; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/4] runner: Fix declaration of timeofday_double
URL : https://patchwork.freedesktop.org/series/51683/
State : success
== Summary ==
= CI Bug Log - changes from IGT_4698_full -> IGTPW_2008_full =
== Summary - WARNING ==
Minor unknown changes coming with IGTPW_2008_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_2008_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/51683/revisions/1/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in IGTPW_2008_full:
=== IGT changes ===
==== Warnings ====
igt@perf_pmu@rc6:
shard-kbl: PASS -> SKIP
igt@pm_rc6_residency@rc6-accuracy:
shard-snb: SKIP -> PASS
== Known issues ==
Here are the changes found in IGTPW_2008_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_suspend@shrink:
shard-apl: PASS -> INCOMPLETE (fdo#103927, fdo#106886)
igt@kms_available_modes_crc@available_mode_test_crc:
shard-apl: PASS -> FAIL (fdo#106641)
igt@kms_busy@basic-flip-b:
shard-apl: PASS -> DMESG-FAIL (fdo#105602, fdo#103558)
igt@kms_color@pipe-b-ctm-max:
shard-kbl: PASS -> FAIL (fdo#108147)
igt@kms_cursor_crc@cursor-128x128-sliding:
shard-glk: PASS -> FAIL (fdo#103232)
igt@kms_cursor_crc@cursor-128x42-sliding:
shard-kbl: PASS -> FAIL (fdo#103232) +2
igt@kms_cursor_crc@cursor-64x21-random:
shard-apl: PASS -> FAIL (fdo#103232) +2
igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
shard-glk: NOTRUN -> FAIL (fdo#107409, fdo#106509)
igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
shard-glk: PASS -> DMESG-WARN (fdo#106538, fdo#105763)
igt@kms_flip@flip-vs-dpms-interruptible:
shard-kbl: PASS -> DMESG-WARN (fdo#105345, fdo#103313)
igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
shard-apl: PASS -> FAIL (fdo#103167) +3
igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
shard-kbl: PASS -> FAIL (fdo#103167)
igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen:
shard-glk: PASS -> FAIL (fdo#103167) +3
igt@kms_plane@plane-position-covered-pipe-c-planes:
shard-apl: PASS -> FAIL (fdo#103166)
igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
shard-glk: PASS -> FAIL (fdo#108145) +1
igt@kms_rotation_crc@primary-rotation-180:
shard-snb: PASS -> FAIL (fdo#103925)
igt@kms_setmode@basic:
shard-apl: PASS -> FAIL (fdo#99912)
igt@kms_vblank@pipe-b-ts-continuation-dpms-rpm:
shard-apl: PASS -> DMESG-WARN (fdo#105602, fdo#103558) +1
==== Possible fixes ====
igt@gem_busy@close-race:
shard-glk: DMESG-FAIL (fdo#108561) -> PASS
shard-hsw: DMESG-FAIL (fdo#108561) -> PASS
shard-kbl: DMESG-FAIL (fdo#108561) -> PASS
igt@gem_ctx_isolation@bcs0-s3:
shard-kbl: INCOMPLETE (fdo#103665) -> PASS
igt@gem_exec_reloc@basic-gtt:
shard-snb: INCOMPLETE (fdo#105411) -> PASS
igt@gem_softpin@noreloc-s3:
shard-kbl: DMESG-WARN (fdo#103313) -> PASS
igt@kms_atomic_transition@1x-modeset-transitions-nonblocking-fencing:
shard-apl: DMESG-FAIL (fdo#108549) -> PASS +1
igt@kms_available_modes_crc@available_mode_test_crc:
shard-snb: FAIL (fdo#106641) -> PASS
igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
shard-glk: FAIL (fdo#108145) -> PASS
igt@kms_chv_cursor_fail@pipe-b-64x64-top-edge:
shard-kbl: DMESG-WARN (fdo#108550) -> PASS +9
igt@kms_cursor_crc@cursor-128x128-suspend:
shard-apl: FAIL (fdo#103232, fdo#103191) -> PASS
igt@kms_cursor_crc@cursor-256x85-onscreen:
shard-glk: FAIL (fdo#103232) -> PASS
igt@kms_cursor_crc@cursor-64x21-sliding:
shard-apl: FAIL (fdo#103232) -> PASS +1
igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-ytiled:
shard-glk: FAIL (fdo#107791) -> PASS
igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite:
shard-apl: FAIL (fdo#103167) -> PASS +1
igt@kms_frontbuffer_tracking@fbc-1p-rte:
shard-apl: DMESG-WARN (fdo#108131, fdo#103558) -> PASS
igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff:
shard-glk: FAIL (fdo#103167) -> PASS +5
igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes:
shard-apl: FAIL (fdo#103375) -> PASS
igt@kms_plane@plane-panning-top-left-pipe-b-planes:
shard-apl: INCOMPLETE (fdo#103927) -> PASS
igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
shard-glk: FAIL (fdo#103166) -> PASS +3
igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
shard-apl: FAIL (fdo#103166) -> PASS +1
igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
shard-kbl: FAIL (fdo#103166) -> PASS
igt@pm_rpm@gem-mmap-cpu:
shard-apl: DMESG-WARN (fdo#108549) -> PASS +21
igt@prime_busy@hang-bsd:
shard-glk: INCOMPLETE (k.org#198133, fdo#103359) -> PASS
==== Warnings ====
igt@kms_color@pipe-b-ctm-max:
shard-apl: DMESG-WARN (fdo#108549) -> FAIL (fdo#108147)
igt@kms_cursor_crc@cursor-128x42-sliding:
shard-apl: DMESG-WARN (fdo#108549) -> FAIL (fdo#103232)
fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
fdo#103313 https://bugs.freedesktop.org/show_bug.cgi?id=103313
fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#105345 https://bugs.freedesktop.org/show_bug.cgi?id=105345
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
fdo#105763 https://bugs.freedesktop.org/show_bug.cgi?id=105763
fdo#106509 https://bugs.freedesktop.org/show_bug.cgi?id=106509
fdo#106538 https://bugs.freedesktop.org/show_bug.cgi?id=106538
fdo#106641 https://bugs.freedesktop.org/show_bug.cgi?id=106641
fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
fdo#107409 https://bugs.freedesktop.org/show_bug.cgi?id=107409
fdo#107791 https://bugs.freedesktop.org/show_bug.cgi?id=107791
fdo#108131 https://bugs.freedesktop.org/show_bug.cgi?id=108131
fdo#108145 https://bugs.freedesktop.org/show_bug.cgi?id=108145
fdo#108147 https://bugs.freedesktop.org/show_bug.cgi?id=108147
fdo#108549 https://bugs.freedesktop.org/show_bug.cgi?id=108549
fdo#108550 https://bugs.freedesktop.org/show_bug.cgi?id=108550
fdo#108561 https://bugs.freedesktop.org/show_bug.cgi?id=108561
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133
== Participating hosts (6 -> 5) ==
Missing (1): shard-skl
== Build changes ==
* IGT: IGT_4698 -> IGTPW_2008
* Linux: CI_DRM_5042 -> CI_DRM_5044
CI_DRM_5042: 591c74093dc70bdceaa02441c494dd7090533564 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_5044: c4487dca27970879bf67f331614142c749984d65 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_2008: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2008/
IGT_4698: af57164fcb16950187ad402ed31f565e88c42a78 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2008/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/4] runner: const-correct the unit tests
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 2/4] runner: const-correct the unit tests Petri Latvala
@ 2018-11-05 11:35 ` Arkadiusz Hiler
0 siblings, 0 replies; 7+ messages in thread
From: Arkadiusz Hiler @ 2018-11-05 11:35 UTC (permalink / raw)
To: Petri Latvala; +Cc: igt-dev
On Mon, Oct 29, 2018 at 04:30:52PM +0200, Petri Latvala wrote:
> const where possible, and cast away const when passing argv to
> parse_options, which expects non-const strings, because it passes them
> to getopt_long, which expects non-const strings...
>
> Signed-off-by: Petri Latvala <petri.latvala@intel.com>
> ---
> runner/runner_tests.c | 318 +++++++++++++++++++++---------------------
> 1 file changed, 159 insertions(+), 159 deletions(-)
>
> diff --git a/runner/runner_tests.c b/runner/runner_tests.c
> index 9c0f9eb0..d07e6f37 100644
> --- a/runner/runner_tests.c
> +++ b/runner/runner_tests.c
> @@ -12,7 +12,7 @@
>
> static char testdatadir[] = TESTDATA_DIRECTORY;
>
> -static void igt_assert_eqstr(char *one, char *two)
> +static void igt_assert_eqstr(const char *one, const char *two)
> {
> if (one == NULL && two == NULL)
> return;
> @@ -38,7 +38,7 @@ static void debug_print_executions(struct job_list *list)
>
> }
>
> -static char *dump_file(int dirfd, char *name)
> +static char *dump_file(int dirfd, const char *name)
> {
> int fd = openat(dirfd, name, O_RDONLY);
> ssize_t s;
> @@ -61,7 +61,7 @@ static char *dump_file(int dirfd, char *name)
> return buf;
> }
>
> -static void job_list_filter_test(char *name, char *filterarg1, char *filterarg2,
> +static void job_list_filter_test(const char *name, const char *filterarg1, const char *filterarg2,
> size_t expected_normal, size_t expected_multiple)
> {
> int multiple;
> @@ -73,18 +73,18 @@ static void job_list_filter_test(char *name, char *filterarg1, char *filterarg2,
> for (multiple = 0; multiple < 2; multiple++) {
> igt_subtest_f("job-list-filters-%s-%s", name, multiple ? "multiple" : "normal") {
> struct job_list list;
> - char *argv[] = { "runner",
> - /* Ugly but does the trick */
> - multiple ? "--multiple-mode" : "--sync",
> - filterarg1, filterarg2,
> - testdatadir,
> - "path-to-results",
> + const char *argv[] = { "runner",
> + /* Ugly but does the trick */
> + multiple ? "--multiple-mode" : "--sync",
> + filterarg1, filterarg2,
> + testdatadir,
> + "path-to-results",
> };
> bool success = false;
> size_t size;
>
> init_job_list(&list);
> - igt_assert(parse_options(ARRAY_SIZE(argv), argv, &settings));
> + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, &settings));
Please include explanation, In the commit message, why you are making
`char *argv[]` const and then you still resort to (char**) cast here.
With that,
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
for the whole series.
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-11-05 11:35 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-29 14:30 [igt-dev] [PATCH i-g-t 1/4] runner: Fix declaration of timeofday_double Petri Latvala
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 2/4] runner: const-correct the unit tests Petri Latvala
2018-11-05 11:35 ` Arkadiusz Hiler
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 3/4] assembler: Compare correct things Petri Latvala
2018-10-29 14:30 ` [igt-dev] [PATCH i-g-t 4/4] meson: Enable more warning flags Petri Latvala
2018-10-30 1:59 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] runner: Fix declaration of timeofday_double Patchwork
2018-10-30 9:14 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.