Skip to contentSkip to conversation

lib/tests: fix tests and test list location

PATCH In review Thomas Wood 2 participants 8 messages Nov 3, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/5 lib/tests: fix tests and test list location

The igt_command_line.sh script was moved by commit 685e577 (Move library selftests to lib/tests), but the location of the tests and the test lists was not updated.

---
 lib/tests/Makefile.am         |  4 ++++
 lib/tests/igt_command_line.sh | 18 ++++++++++++------
 2 files changed, 16 insertions(+), 6 deletions(-)
lib/tests/Makefile.am +4 -0
index 78279fb..bab0fcb 100644
@@ -1,5 +1,9 @@
 include Makefile.sources
 
+AM_TESTS_ENVIRONMENT = \
+	top_builddir=$(top_builddir) \
+	top_srcdir=$(top_srcdir)
+
 EXTRA_DIST = $(check_SCRIPTS)
 
 AM_CFLAGS = $(DRM_CFLAGS) $(CWARNFLAGS) \
lib/tests/igt_command_line.sh +12 -6
index 075f1d5..7e6ca67 100755
@@ -25,17 +25,23 @@
 # Check that command line handling works consistently across all tests
 #
 
-for test in `cat single-tests.txt multi-tests.txt`; do
+TESTLIST=`cat $top_builddir/tests/single-tests.txt $top_builddir/tests/multi-tests.txt`
+if [ $? -ne 0 ]; then
+	echo "Error: Could not read test lists"
+	exit 99
+fi
+
+for test in $TESTLIST; do
 
 	if [ "$test" = "TESTLIST" -o "$test" = "END" ]; then
 		continue
 	fi
 
-	# if the test is a script, it will be in $srcdir
-	if [ ! -x $test ]; then
-		if [ -x $srcdir/$test ]; then
-			test=$srcdir/$test
-		fi
+	if [ -x $top_builddir/tests/$test ]; then
+		test=$top_builddir/tests/$test
+	else
+		# if the test is a script, it will be in $srcdir
+		test=$top_srcdir/tests/$test
 	fi
 
 	echo "$test:"
Signature · 6 lines
2.1.0

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
#1 lore raw

PATCH 2/5 lib/tests: don't use hard error status to indicate test failure

---
 lib/tests/igt_command_line.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
lib/tests/igt_command_line.sh +4 -4
index 7e6ca67..5cf2584 100755
@@ -48,20 +48,20 @@ for test in $TESTLIST; do
 
 	# check invalid option handling
 	echo "  Checking invalid option handling..."
-	./$test --invalid-option 2> /dev/null && exit 99
+	./$test --invalid-option 2> /dev/null && exit 1
 
 	# check valid options succeed
 	echo "  Checking valid option handling..."
-	./$test --help > /dev/null || exit 99
+	./$test --help > /dev/null || exit 1
 
 	# check --list-subtests works correctly
 	echo "  Checking subtest enumeration..."
 	./$test --list-subtests > /dev/null
 	if [ $? -ne 0 -a $? -ne 79 ]; then
-		exit 99
+		exit 1
 	fi
 
 	# check invalid subtest handling
 	echo "  Checking invalid subtest handling..."
-	./$test --run-subtest invalid-subtest > /dev/null 2>&1 && exit 99
+	./$test --run-subtest invalid-subtest > /dev/null 2>&1 && exit 1
 done
Signature · 6 lines
2.1.0

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
#2 lore raw

Re: [PATCH i-g-t 2/5] lib/tests: don't use hard error status to indicate test failure

Quoted 10 lines · Thomas Wood
---
 lib/tests/igt_command_line.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
lib/tests/igt_command_line.sh +0 -0
index 7e6ca67..5cf2584 100755

lib/tests/igt_command_line.sh for test in $TESTLIST; do · line 51

Quoted 5 lines
lib/tests/igt_command_line.sh +1 -1
@@ -48,20 +48,20 @@ for test in $TESTLIST; do
 
 	# check invalid option handling
 	echo "  Checking invalid option handling..."
-	./$test --invalid-option 2> /dev/null && exit 99
+	./$test --invalid-option 2> /dev/null && exit 1

Just a curious question: What's better with hardcoding 1 than hardcoding 99? Otherwise series lgtm.
-Daniel

Signature · 7 lines
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
#3 lore raw

Re: [PATCH i-g-t 2/5] lib/tests: don't use hard error status to indicate test failure

Quoted 12 lines · Daniel Vetter
Quoted 11 lines · Thomas Wood
---
 lib/tests/igt_command_line.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
lib/tests/igt_command_line.sh +0 -0
index 7e6ca67..5cf2584 100755
@@ -48,20 +48,20 @@ for test in $TESTLIST; do
 
Quoted 7 lines

lib/tests/igt_command_line.sh for test in $TESTLIST; do · line 51

Quoted 4 lines
lib/tests/igt_command_line.sh +1 -1
      # check invalid option handling
      echo "  Checking invalid option handling..."
-     ./$test --invalid-option 2> /dev/null && exit 99
+     ./$test --invalid-option 2> /dev/null && exit 1

Just a curious question: What's better with hardcoding 1 than hardcoding 99? Otherwise series lgtm.

From the automake manual:

"When no test protocol is in use, an exit status of 0 from a test script will denote a success, an exit status of 77 a skipped test, an exit status of 99 an hard error, and any other exit status will denote a failure."

So, an exit status of 99 is reported separately in the summary as an error, rather than as a test failure.

Quoted 9 lines

-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

#4 lore raw

Re: [PATCH i-g-t 2/5] lib/tests: don't use hard error status to indicate test failure

Quoted 23 lines · Thomas Wood
Quoted 12 lines · Daniel Vetter
Quoted 11 lines · Thomas Wood
---
 lib/tests/igt_command_line.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
lib/tests/igt_command_line.sh +0 -0
index 7e6ca67..5cf2584 100755
@@ -48,20 +48,20 @@ for test in $TESTLIST; do
 
Quoted 7 lines

lib/tests/igt_command_line.sh for test in $TESTLIST; do · line 51

Quoted 4 lines
lib/tests/igt_command_line.sh +1 -1
      # check invalid option handling
      echo "  Checking invalid option handling..."
-     ./$test --invalid-option 2> /dev/null && exit 99
+     ./$test --invalid-option 2> /dev/null && exit 1

Just a curious question: What's better with hardcoding 1 than hardcoding 99? Otherwise series lgtm.

From the automake manual:

Quoted 7 lines

"When no test protocol is in use, an exit status of 0 from a test script will denote a success, an exit status of 77 a skipped test, an exit status of 99 an hard error, and any other exit status will denote a failure."

So, an exit status of 99 is reported separately in the summary as an error, rather than as a test failure.

Ah, makes sense. Can you please add this bit of important information to the commit message before pushing?

Thanks, Daniel

Signature · 7 lines
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
#5 lore raw

PATCH 3/5 testdisplay: ensure invalid long option exit status is non-zero

In reply to Thomas Wood

The optopt variable is not set if an invalid long option is used, so check the current option character instead.

---
 tests/testdisplay.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
tests/testdisplay.c +5 -5
index 09e07f0..8c6bc62 100644
@@ -545,7 +545,7 @@ int update_display(void)
 
 static char optstr[] = "3hiaf:s:d:p:mrto:j:";
 
-static void __attribute__((noreturn)) usage(char *name)
+static void __attribute__((noreturn)) usage(char *name, char opt)
 {
 	igt_info("usage: %s [-hiasdpmtf]\n", name);
 	igt_info("\t-i\tdump info\n");
@@ -563,7 +563,7 @@ static void __attribute__((noreturn)) usage(char *name)
 	igt_info("\t\t<vdisp>,<vsync-start>,<vsync-end>,<vtotal>\n");
 	igt_info("\t\ttest force mode\n");
 	igt_info("\tDefault is to test all modes.\n");
-	exit((optopt) ? -1 : 0);
+	exit((opt != 'h') ? -1 : 0);
 }
 
 #define dump_resource(res) if (res) dump_##res()
@@ -665,7 +665,7 @@ int main(int argc, char **argv)
 			if(sscanf(optarg,"%f,%hu,%hu,%hu,%hu,%hu,%hu,%hu,%hu",
 				&force_clock,&force_timing.hdisplay, &force_timing.hsync_start,&force_timing.hsync_end,&force_timing.htotal,
 				&force_timing.vdisplay, &force_timing.vsync_start, &force_timing.vsync_end, &force_timing.vtotal)!= 9)
-				usage(argv[0]);
+				usage(argv[0], c);
 			force_timing.clock = force_clock*1000;
 
 			break;
@@ -685,7 +685,7 @@ int main(int argc, char **argv)
 			if (sscanf(optarg, "%d,%d,%d,%d,%d,%d", &plane_width,
 				   &plane_height, &crtc_x, &crtc_y,
 				   &crtc_w, &crtc_h) != 6)
-				usage(argv[0]);
+				usage(argv[0], c);
 			test_plane = 1;
 			break;
 		case 'm':
@@ -707,7 +707,7 @@ int main(int argc, char **argv)
 		default:
 			/* fall through */
 		case 'h':
-			usage(argv[0]);
+			usage(argv[0], c);
 			break;
 		}
 	}
Signature · 6 lines
2.1.0

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
#6 lore raw

PATCH 4/5 testdiplay: add a "--help" option

In reply to Thomas Wood
---
 tests/testdisplay.c | 1 +
 1 file changed, 1 insertion(+)
tests/testdisplay.c +1 -0
index 8c6bc62..b7e1541 100644
@@ -642,6 +642,7 @@ int main(int argc, char **argv)
 	struct option long_opts[] = {
 		{"list-subtests", 0, 0, SUBTEST_OPTS},
 		{"run-subtest", 1, 0, SUBTEST_OPTS},
+		{"help", 0, 0, 'h'},
 		{ 0, 0, 0, 0 }
 	};
 
Signature · 6 lines
2.1.0

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
#7 lore raw

PATCH 5/5 configure: fix issues when running outside the source tree

In reply to Thomas Wood
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
configure.ac +1 -1
index d3faa19..a2569b8 100644
@@ -203,7 +203,7 @@ AC_DEFINE_UNQUOTED(TARGET_CPU_PLATFORM, ["$host_cpu"], [Target platform])
 
 files="broadwell cherryview haswell ivybridge sandybridge valleyview skylake"
 for file in $files; do
-	QUICK_DUMP_EXTRA_DIST="$QUICK_DUMP_EXTRA_DIST $file `tr '\n' ' ' < tools/quick_dump/$file`"
+	QUICK_DUMP_EXTRA_DIST="$QUICK_DUMP_EXTRA_DIST $file `tr '\n' ' ' < $srcdir/tools/quick_dump/$file`"
 done
 AC_SUBST(QUICK_DUMP_EXTRA_DIST)
 
Signature · 6 lines
2.1.0

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx