On 05/19/2014 07:40 PM, Lukas Slebodnik wrote:
On (19/05/14 18:15), Nikolai Kondrashov wrote:
> Could you perhaps try timing the command running all tests under Valgrind,
> which I mentioned in the previous message, if time allows?
Sure,
//parallel
sh-4.2$ time make -j4 check LOG_COMPILER=libtool 'LOG_FLAGS=--mode=execute valgrind
--trace-children=yes --trace-children-skip=/* --leak-check=full'
make check-recursive
//snip
real 0m47.355s
user 1m46.597s
sys 0m4.711s
//single
sh-4.2$ time make check LOG_COMPILER=libtool 'LOG_FLAGS=--mode=execute valgrind
--trace-children=yes --trace-children-skip=/* --leak-check=full'
real 1m49.825s
user 1m26.396s
sys 0m4.228s
Thank you!
Wow, this runs really fast on your machine.
I'll have to investigate this, after all.
I had to execute tests without valgring argument
"--error-exitcode=99".
With this argument, talloc destructor "mock_server_cleanup" failed.
src/tests/common_dbus.c
mock_server_cleanup
66 /* Wait for the server child, it always returns mock */
67 verify_eq (waitpid(mock->pid, &child_status, 0), mock->pid);
>68 verify_eq (child_status, 0);
69
70 file = strchr(mock->dbus_address, '/');
and verify_eq is macro which use abort.
do { if ((x) != (y)) { fprintf(stderr, "failed: %s == %s\n", #x, #y); abort();
} } while (0)
Yes, I managed not to notice this before, behind other errors, but I get these
too. It seems it is reall a Valgrind issue. I.e. it doesn't seem to make sense
to apply "--error-exitcode" to child processes.
However, it seems that the exit status of the process in question is hardcoded
to zero. So, can we perhaps work this around for now by changing the assertion
to the following?
verify_eq (WIFSIGNALED(child_status), 0);
If yes, I'll submit a patch.
Sincerely,
Nick