> On Jul 17, 2015, at 9:33 AM, Ben Pfaff <b...@nicira.com> wrote:
> 
> On Thu, Jul 16, 2015 at 05:22:25PM -0700, Jarno Rajahalme wrote:
>> 
>>> On Jul 16, 2015, at 4:33 PM, Ben Pfaff <b...@nicira.com> 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 <jrajaha...@nicira.com>
>>> 
>>> 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
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to