> On Jul 17, 2015, at 9:33 AM, Ben Pfaff <[email protected]> wrote:
>
> On Thu, Jul 16, 2015 at 05:22:25PM -0700, Jarno Rajahalme wrote:
>>
>>> On Jul 16, 2015, at 4:33 PM, Ben Pfaff <[email protected]> wrote:
>>>
>>> On Thu, Jul 16, 2015 at 03:15:52PM -0700, Jarno Rajahalme wrote:
>>>> I've seen core files appear and then be automatically removed as the
>>>> test case was successful. Such success is highly doubtful, so fail
>>>> the test cases if any core files exist at the end of the test.
>>>>
>>>> Signed-off-by: Jarno Rajahalme <[email protected]>
>>>
>>> I proposed a similar patch in May 2014:
>>> http://openvswitch.org/pipermail/dev/2014-May/040497.html
>>> but you didn't like it:
>>> http://openvswitch.org/pipermail/dev/2014-May/040857.html
>>
>> My comment at the time was that I did not see the result of the line
>>
>> echo "$core: core dumped during test"
>> anywhere, but now I see that this is simply due to the fact that the test
>> case failed on an earlier AT_CHECK and never got to checking the cores.
>
> I made the same argument before too:
> http://openvswitch.org/pipermail/dev/2014-June/041301.html
> <http://openvswitch.org/pipermail/dev/2014-June/041301.html>
> ;-)
>
>> So I see that this patch has the same limitation. Do you have any idea
>> how to check and report for core files regardless of the success or
>> failure of the test case? I think this would be important as I’ve seen
>> cores in both cases. In success case we currently lose the fact that
>> there even was a core dump, and this likely happens also in the
>> failure case if we blindly run a —recheck and by chance succeed that
>> time.
>>
>> Right now I habitually run “find . -name core -print” from a shell
>> after each “make check” that has any failures before a —recheck. I’d
>> like to automate this somehow! And this doesn’t even catch the cores
>> of successful test cases. The only reason I know they exist was due to
>> running the find command multiple times while “make check” was
>> running, and I saw some core files that had disappeared in later find
>> runs.
>
> Well, something like this would do it:
>
> diff --git a/tests/atlocal.in b/tests/atlocal.in
> index 5946a3c..5baa9ec 100644
> --- a/tests/atlocal.in
> +++ b/tests/atlocal.in
> @@ -110,3 +110,11 @@ fi
> if test "$IS_WIN32" = "yes"; then
> HAVE_PYTHON="no"
> fi
> +
> +trap '
> + if find "$at_suite_dir" -name core\* -print | grep .; then
> + echo
> + echo "WARNING: See above for list of core dumps produced by tests."
> + echo
> + fi
> +’ 0
I tested this by adding the new lines to atlocal.in, and making miniflow tests
artificially “core”:
diff --git a/tests/classifier.at b/tests/classifier.at
index 3520acd..68156ad 100644
--- a/tests/classifier.at
+++ b/tests/classifier.at
@@ -25,6 +25,7 @@ m4_foreach(
[minimask_combine]],
[AT_SETUP([miniflow - m4_bpatsubst(testname, [-], [ ])])
AT_CHECK([ovstest test-classifier testname], [0], [], [])
+ touch core.foo.bar
AT_CLEANUP])])
AT_BANNER([flow classifier lookup segmentation])
After this “make -k -j6 "TESTSUITEFLAGS=-k miniflow" check” still succeeds:
miniflow unit tests
90: miniflow - miniflow ok
91: miniflow - minimask_has_extra ok
92: miniflow - minimask_combine ok
I don’t know how the trap is supposed to work, so maybe I am missing something?
Jarno
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev