Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t v2] lib/tests/igt_segfault.c Add unit test to test segfault handling
@ 2015-05-27  9:34 Derek Morton
  2015-05-27 12:19 ` Daniel Vetter
  0 siblings, 1 reply; 3+ messages in thread
From: Derek Morton @ 2015-05-27  9:34 UTC (permalink / raw)
  To: intel-gfx; +Cc: thomas.wood

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 5384 bytes --]

Unit test to check a segfaulting subtest is handled correctly.

v2: Added script to check subtest results

Signed-off-by: Derek Morton <derek.j.morton@intel.com>
---
 lib/tests/Makefile.sources      |  3 ++
 lib/tests/igt_segfault.c        | 57 ++++++++++++++++++++++++++++++++++++++
 lib/tests/igt_segfault_check.sh | 61 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 121 insertions(+)
 create mode 100644 lib/tests/igt_segfault.c
 create mode 100755 lib/tests/igt_segfault_check.sh

diff --git a/lib/tests/Makefile.sources b/lib/tests/Makefile.sources
index 10e0617..5e601fe 100644
--- a/lib/tests/Makefile.sources
+++ b/lib/tests/Makefile.sources
@@ -8,10 +8,12 @@ check_PROGRAMS = \
 	igt_simple_test_subtests \
 	igt_timeout \
 	igt_invalid_subtest_name \
+	igt_segfault \
 	$(NULL)
 
 check_SCRIPTS = \
 	igt_command_line.sh \
+	igt_segfault_check.sh \
 	$(NULL)
 
 TESTS = \
@@ -29,4 +31,5 @@ XFAIL_TESTS = \
 	igt_simple_test_subtests \
 	igt_timeout \
 	igt_invalid_subtest_name \
+	igt_segfault \
 	$(NULL)
diff --git a/lib/tests/igt_segfault.c b/lib/tests/igt_segfault.c
new file mode 100644
index 0000000..19bb3c2
--- /dev/null
+++ b/lib/tests/igt_segfault.c
@@ -0,0 +1,57 @@
+/*
+ * Copyright © 2015 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Derek Morton <derek.j.morton@intel.com>
+ *
+ */
+
+/*
+ *
+ * Testcase: Test the framework catches a segfault and returns an error.
+ *
+ * The test consists of three subtests. The first and third should pass
+ * while the second should cause a segfault.
+ * The overall result should be a failure with two subtests passing.
+ *
+ */
+
+#include "drmtest.h"
+
+igt_main
+{
+	void (*crashme)(void) = NULL;
+
+	igt_subtest("A") {
+		igt_info("Simple passing subtest.\n");
+	}
+
+	igt_subtest("B") {
+		igt_info("Cause a segfault.\n");
+		crashme();
+	}
+
+	igt_subtest("C") {
+		igt_info("2nd Simple passing subtest.\n");
+	}
+}
+
diff --git a/lib/tests/igt_segfault_check.sh b/lib/tests/igt_segfault_check.sh
new file mode 100755
index 0000000..89d0c94
--- /dev/null
+++ b/lib/tests/igt_segfault_check.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+#
+# Copyright © 2015 Intel Corporation
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+# Authors:
+#    Derek Morton <derek.j.morton@intel.com>
+#
+
+#
+# Testcase: Test the subtest results of igt_segfault.
+#
+
+if [ -x "$top_builddir/tests/igt_segfault" ]; then
+	OP=$($top_builddir/tests/igt_segfault)
+	A_MATCH='Subtest A: SUCCESS'
+	B_MATCH='Subtest B: CRASH'
+	C_MATCH='Subtest C: SUCCESS'
+	RESULT='Failed : 1'
+
+	if [[ $OP == *"$A_MATCH"* ]]; then
+		if [[ $OP == *"$B_MATCH"* ]]; then
+			if [[ $OP == *"$C_MATCH"* ]]; then
+				if [[ $OP == *"$RESULT"* ]]; then
+					echo "igt_segfault_check Passed"
+					exit 0
+				else
+					echo "Overall result not Failed"
+				fi
+			else
+				echo "Subtest C not SUCCESS"
+			fi
+		else
+			echo "Subtest B not CRASH"
+		fi
+	else
+		echo "Subtest A not SUCCESS"
+	fi
+else
+	echo "$top_builddir/tests/igt_segfault is not executable"
+fi
+
+exit 99
-- 
1.9.1


[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH i-g-t v2] lib/tests/igt_segfault.c Add unit test to test segfault handling
  2015-05-27  9:34 [PATCH i-g-t v2] lib/tests/igt_segfault.c Add unit test to test segfault handling Derek Morton
@ 2015-05-27 12:19 ` Daniel Vetter
  2015-05-27 13:14   ` Morton, Derek J
  0 siblings, 1 reply; 3+ messages in thread
From: Daniel Vetter @ 2015-05-27 12:19 UTC (permalink / raw)
  To: Derek Morton; +Cc: intel-gfx, thomas.wood

On Wed, May 27, 2015 at 10:34:26AM +0100, Derek Morton wrote:
> Unit test to check a segfaulting subtest is handled correctly.
> 
> v2: Added script to check subtest results
> 
> Signed-off-by: Derek Morton <derek.j.morton@intel.com>
> ---
>  lib/tests/Makefile.sources      |  3 ++
>  lib/tests/igt_segfault.c        | 57 ++++++++++++++++++++++++++++++++++++++
>  lib/tests/igt_segfault_check.sh | 61 +++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 121 insertions(+)
>  create mode 100644 lib/tests/igt_segfault.c
>  create mode 100755 lib/tests/igt_segfault_check.sh
> 
> diff --git a/lib/tests/Makefile.sources b/lib/tests/Makefile.sources
> index 10e0617..5e601fe 100644
> --- a/lib/tests/Makefile.sources
> +++ b/lib/tests/Makefile.sources
> @@ -8,10 +8,12 @@ check_PROGRAMS = \
>  	igt_simple_test_subtests \
>  	igt_timeout \
>  	igt_invalid_subtest_name \
> +	igt_segfault \
>  	$(NULL)
>  
>  check_SCRIPTS = \
>  	igt_command_line.sh \
> +	igt_segfault_check.sh \
>  	$(NULL)
>  
>  TESTS = \
> @@ -29,4 +31,5 @@ XFAIL_TESTS = \
>  	igt_simple_test_subtests \
>  	igt_timeout \
>  	igt_invalid_subtest_name \
> +	igt_segfault \
>  	$(NULL)
> diff --git a/lib/tests/igt_segfault.c b/lib/tests/igt_segfault.c
> new file mode 100644
> index 0000000..19bb3c2
> --- /dev/null
> +++ b/lib/tests/igt_segfault.c
> @@ -0,0 +1,57 @@
> +/*
> + * Copyright © 2015 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> + * IN THE SOFTWARE.
> + *
> + * Authors:
> + *    Derek Morton <derek.j.morton@intel.com>
> + *
> + */
> +
> +/*
> + *
> + * Testcase: Test the framework catches a segfault and returns an error.
> + *
> + * The test consists of three subtests. The first and third should pass
> + * while the second should cause a segfault.
> + * The overall result should be a failure with two subtests passing.
> + *
> + */
> +
> +#include "drmtest.h"
> +
> +igt_main
> +{
> +	void (*crashme)(void) = NULL;
> +
> +	igt_subtest("A") {
> +		igt_info("Simple passing subtest.\n");
> +	}
> +
> +	igt_subtest("B") {
> +		igt_info("Cause a segfault.\n");
> +		crashme();
> +	}
> +
> +	igt_subtest("C") {
> +		igt_info("2nd Simple passing subtest.\n");
> +	}
> +}
> +
> diff --git a/lib/tests/igt_segfault_check.sh b/lib/tests/igt_segfault_check.sh
> new file mode 100755
> index 0000000..89d0c94
> --- /dev/null
> +++ b/lib/tests/igt_segfault_check.sh
> @@ -0,0 +1,61 @@
> +#!/bin/bash
> +#
> +# Copyright © 2015 Intel Corporation
> +#
> +# Permission is hereby granted, free of charge, to any person obtaining a
> +# copy of this software and associated documentation files (the "Software"),
> +# to deal in the Software without restriction, including without limitation
> +# the rights to use, copy, modify, merge, publish, distribute, sublicense,
> +# and/or sell copies of the Software, and to permit persons to whom the
> +# Software is furnished to do so, subject to the following conditions:
> +#
> +# The above copyright notice and this permission notice (including the next
> +# paragraph) shall be included in all copies or substantial portions of the
> +# Software.
> +#
> +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> +# IN THE SOFTWARE.
> +#
> +# Authors:
> +#    Derek Morton <derek.j.morton@intel.com>
> +#
> +
> +#
> +# Testcase: Test the subtest results of igt_segfault.
> +#
> +
> +if [ -x "$top_builddir/tests/igt_segfault" ]; then
> +	OP=$($top_builddir/tests/igt_segfault)
> +	A_MATCH='Subtest A: SUCCESS'
> +	B_MATCH='Subtest B: CRASH'
> +	C_MATCH='Subtest C: SUCCESS'
> +	RESULT='Failed : 1'
> +
> +	if [[ $OP == *"$A_MATCH"* ]]; then
> +		if [[ $OP == *"$B_MATCH"* ]]; then
> +			if [[ $OP == *"$C_MATCH"* ]]; then
> +				if [[ $OP == *"$RESULT"* ]]; then
> +					echo "igt_segfault_check Passed"
> +					exit 0
> +				else
> +					echo "Overall result not Failed"
> +				fi
> +			else
> +				echo "Subtest C not SUCCESS"
> +			fi
> +		else
> +			echo "Subtest B not CRASH"
> +		fi
> +	else
> +		echo "Subtest A not SUCCESS"

See my other mail, imo that's too fragile: The precise lines we print to
stdout aren't part of the testrunner spec, they're only meant for humans.
Can't we fake the coverage you want with something like this:

testcase 1:
- fork a new process, make the subtest in there crash, check that the exit
  code matches with the crash we expected. _exit(0) if that works out
  (which bypasses all the library cleanup code and sanity checks)

testcase 2:
- make one subtest crash, follow up by another subtest
  which calls just calls _exit(0).

Or have I lost track of what we want to test here already?
-Daniel

> +	fi
> +else
> +	echo "$top_builddir/tests/igt_segfault is not executable"
> +fi
> +
> +exit 99
> -- 
> 1.9.1
> 

> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx


-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH i-g-t v2] lib/tests/igt_segfault.c Add unit test to test segfault handling
  2015-05-27 12:19 ` Daniel Vetter
@ 2015-05-27 13:14   ` Morton, Derek J
  0 siblings, 0 replies; 3+ messages in thread
From: Morton, Derek J @ 2015-05-27 13:14 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx@lists.freedesktop.org, Wood, Thomas


>-----Original Message-----
>From: Daniel Vetter [mailto:daniel.vetter@ffwll.ch] On Behalf Of Daniel Vetter
>Sent: Wednesday, May 27, 2015 1:20 PM
>To: Morton, Derek J
>Cc: intel-gfx@lists.freedesktop.org; Wood, Thomas
>Subject: Re: [Intel-gfx] [PATCH i-g-t v2] lib/tests/igt_segfault.c Add unit test to test segfault handling
>
>On Wed, May 27, 2015 at 10:34:26AM +0100, Derek Morton wrote:
>> Unit test to check a segfaulting subtest is handled correctly.
>> 
>> v2: Added script to check subtest results
>> 
>> Signed-off-by: Derek Morton <derek.j.morton@intel.com>
>> ---
>>  lib/tests/Makefile.sources      |  3 ++
>>  lib/tests/igt_segfault.c        | 57 ++++++++++++++++++++++++++++++++++++++
>>  lib/tests/igt_segfault_check.sh | 61 
>> +++++++++++++++++++++++++++++++++++++++++
>>  3 files changed, 121 insertions(+)
>>  create mode 100644 lib/tests/igt_segfault.c  create mode 100755 
>> lib/tests/igt_segfault_check.sh
>> 
>> diff --git a/lib/tests/Makefile.sources b/lib/tests/Makefile.sources 
>> index 10e0617..5e601fe 100644
>> --- a/lib/tests/Makefile.sources
>> +++ b/lib/tests/Makefile.sources
>> @@ -8,10 +8,12 @@ check_PROGRAMS = \
>>  	igt_simple_test_subtests \
>>  	igt_timeout \
>>  	igt_invalid_subtest_name \
>> +	igt_segfault \
>>  	$(NULL)
>>  
>>  check_SCRIPTS = \
>>  	igt_command_line.sh \
>> +	igt_segfault_check.sh \
>>  	$(NULL)
>>  
>>  TESTS = \
>> @@ -29,4 +31,5 @@ XFAIL_TESTS = \
>>  	igt_simple_test_subtests \
>>  	igt_timeout \
>>  	igt_invalid_subtest_name \
>> +	igt_segfault \
>>  	$(NULL)
>> diff --git a/lib/tests/igt_segfault.c b/lib/tests/igt_segfault.c new 
>> file mode 100644 index 0000000..19bb3c2
>> --- /dev/null
>> +++ b/lib/tests/igt_segfault.c
>> @@ -0,0 +1,57 @@
>> +/*
>> + * Copyright (c) 2015 Intel Corporation
>> + *
>> + * Permission is hereby granted, free of charge, to any person 
>> +obtaining a
>> + * copy of this software and associated documentation files (the 
>> +"Software"),
>> + * to deal in the Software without restriction, including without 
>> +limitation
>> + * the rights to use, copy, modify, merge, publish, distribute, 
>> +sublicense,
>> + * and/or sell copies of the Software, and to permit persons to whom 
>> +the
>> + * Software is furnished to do so, subject to the following conditions:
>> + *
>> + * The above copyright notice and this permission notice (including 
>> +the next
>> + * paragraph) shall be included in all copies or substantial portions 
>> +of the
>> + * Software.
>> + *
>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
>> +EXPRESS OR
>> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
>> +MERCHANTABILITY,
>> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT 
>> +SHALL
>> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
>> +OR OTHER
>> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
>> +ARISING
>> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
>> +OTHER DEALINGS
>> + * IN THE SOFTWARE.
>> + *
>> + * Authors:
>> + *    Derek Morton <derek.j.morton@intel.com>
>> + *
>> + */
>> +
>> +/*
>> + *
>> + * Testcase: Test the framework catches a segfault and returns an error.
>> + *
>> + * The test consists of three subtests. The first and third should 
>> +pass
>> + * while the second should cause a segfault.
>> + * The overall result should be a failure with two subtests passing.
>> + *
>> + */
>> +
>> +#include "drmtest.h"
>> +
>> +igt_main
>> +{
>> +	void (*crashme)(void) = NULL;
>> +
>> +	igt_subtest("A") {
>> +		igt_info("Simple passing subtest.\n");
>> +	}
>> +
>> +	igt_subtest("B") {
>> +		igt_info("Cause a segfault.\n");
>> +		crashme();
>> +	}
>> +
>> +	igt_subtest("C") {
>> +		igt_info("2nd Simple passing subtest.\n");
>> +	}
>> +}
>> +
>> diff --git a/lib/tests/igt_segfault_check.sh 
>> b/lib/tests/igt_segfault_check.sh new file mode 100755 index 
>> 0000000..89d0c94
>> --- /dev/null
>> +++ b/lib/tests/igt_segfault_check.sh
>> @@ -0,0 +1,61 @@
>> +#!/bin/bash
>> +#
>> +# Copyright (c) 2015 Intel Corporation
>> +#
>> +# Permission is hereby granted, free of charge, to any person 
>> +obtaining a # copy of this software and associated documentation 
>> +files (the "Software"), # to deal in the Software without 
>> +restriction, including without limitation # the rights to use, copy, 
>> +modify, merge, publish, distribute, sublicense, # and/or sell copies 
>> +of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions:
>> +#
>> +# The above copyright notice and this permission notice (including 
>> +the next # paragraph) shall be included in all copies or substantial 
>> +portions of the # Software.
>> +#
>> +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
>> +EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
>> +MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND 
>> +NONINFRINGEMENT.  IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT 
>> +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, 
>> +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, 
>> +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE.
>> +#
>> +# Authors:
>> +#    Derek Morton <derek.j.morton@intel.com>
>> +#
>> +
>> +#
>> +# Testcase: Test the subtest results of igt_segfault.
>> +#
>> +
>> +if [ -x "$top_builddir/tests/igt_segfault" ]; then
>> +	OP=$($top_builddir/tests/igt_segfault)
>> +	A_MATCH='Subtest A: SUCCESS'
>> +	B_MATCH='Subtest B: CRASH'
>> +	C_MATCH='Subtest C: SUCCESS'
>> +	RESULT='Failed : 1'
>> +
>> +	if [[ $OP == *"$A_MATCH"* ]]; then
>> +		if [[ $OP == *"$B_MATCH"* ]]; then
>> +			if [[ $OP == *"$C_MATCH"* ]]; then
>> +				if [[ $OP == *"$RESULT"* ]]; then
>> +					echo "igt_segfault_check Passed"
>> +					exit 0
>> +				else
>> +					echo "Overall result not Failed"
>> +				fi
>> +			else
>> +				echo "Subtest C not SUCCESS"
>> +			fi
>> +		else
>> +			echo "Subtest B not CRASH"
>> +		fi
>> +	else
>> +		echo "Subtest A not SUCCESS"
>
>See my other mail, imo that's too fragile: The precise lines we print to stdout aren't part of the testrunner spec, they're only meant for humans.
>Can't we fake the coverage you want with something like this:
>
>testcase 1:
>- fork a new process, make the subtest in there crash, check that the exit
>  code matches with the crash we expected. _exit(0) if that works out
>  (which bypasses all the library cleanup code and sanity checks)
>
>testcase 2:
>- make one subtest crash, follow up by another subtest
>  which calls just calls _exit(0).
>
>Or have I lost track of what we want to test here already?
>-Daniel

I see igt_simulation uses fork to run several testcases. I will use that as a base.

//Derek

>
>> +	fi
>> +else
>> +	echo "$top_builddir/tests/igt_segfault is not executable"
>> +fi
>> +
>> +exit 99
>> --
>> 1.9.1
>> 
>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>
>-- 
>Daniel Vetter
>Software Engineer, Intel Corporation
>http://blog.ffwll.ch
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-05-27 13:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-27  9:34 [PATCH i-g-t v2] lib/tests/igt_segfault.c Add unit test to test segfault handling Derek Morton
2015-05-27 12:19 ` Daniel Vetter
2015-05-27 13:14   ` Morton, Derek J

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox