tests: implement --xtrace in complete-run.pl

This commit is contained in:
Michael Stapelberg 2012-08-04 00:51:41 +02:00
parent 1b3435807a
commit 077e021e26
4 changed files with 18 additions and 1 deletions

View File

@ -46,6 +46,7 @@ my @displays = ();
my %options = ( my %options = (
valgrind => 0, valgrind => 0,
strace => 0, strace => 0,
xtrace => 0,
coverage => 0, coverage => 0,
restart => 0, restart => 0,
); );
@ -54,6 +55,7 @@ my $result = GetOptions(
"coverage-testing" => \$options{coverage}, "coverage-testing" => \$options{coverage},
"valgrind" => \$options{valgrind}, "valgrind" => \$options{valgrind},
"strace" => \$options{strace}, "strace" => \$options{strace},
"xtrace" => \$options{xtrace},
"display=s" => \@displays, "display=s" => \@displays,
"parallel=i" => \$parallel, "parallel=i" => \$parallel,
"help|?" => \$help, "help|?" => \$help,
@ -342,6 +344,11 @@ C<latest/valgrind-for-$test.log>.
Runs i3 under strace to trace system calls. The output will be available in Runs i3 under strace to trace system calls. The output will be available in
C<latest/strace-for-$test.log>. C<latest/strace-for-$test.log>.
=item B<--xtrace>
Runs i3 under xtrace to trace X11 requests/replies. The output will be
available in C<latest/xtrace-for-$test.log>.
=item B<--coverage-testing> =item B<--coverage-testing>
Exits i3 cleanly (instead of kill -9) to make coverage testing work properly. Exits i3 cleanly (instead of kill -9) to make coverage testing work properly.

View File

@ -124,6 +124,14 @@ sub activate_i3 {
'sh -c "export LISTEN_PID=\$\$; ' . $cmd . '"'; 'sh -c "export LISTEN_PID=\$\$; ' . $cmd . '"';
} }
if ($args{xtrace}) {
my $out = "$outdir/xtrace-for-$test.log";
# See comment in $args{strace} branch.
$cmd = qq|xtrace -n -o "$out" -- | .
'sh -c "export LISTEN_PID=\$\$; ' . $cmd . '"';
}
# We need to use the shell due to using output redirections. # We need to use the shell due to using output redirections.
exec '/bin/sh', '-c', $cmd; exec '/bin/sh', '-c', $cmd;

View File

@ -105,12 +105,13 @@ sub worker_wait {
$test->failure_output(\*STDERR); $test->failure_output(\*STDERR);
$test->todo_output(\*STDOUT); $test->todo_output(\*STDOUT);
@ENV{qw(DISPLAY TESTNAME OUTDIR VALGRIND STRACE COVERAGE RESTART)} @ENV{qw(DISPLAY TESTNAME OUTDIR VALGRIND STRACE XTRACE COVERAGE RESTART)}
= ($self->{display}, = ($self->{display},
basename($file), basename($file),
$outdir, $outdir,
$options->{valgrind}, $options->{valgrind},
$options->{strace}, $options->{strace},
$options->{xtrace},
$options->{coverage}, $options->{coverage},
$options->{restart}); $options->{restart});

View File

@ -547,6 +547,7 @@ sub launch_with_config {
testname => $ENV{TESTNAME}, testname => $ENV{TESTNAME},
valgrind => $ENV{VALGRIND}, valgrind => $ENV{VALGRIND},
strace => $ENV{STRACE}, strace => $ENV{STRACE},
xtrace => $ENV{XTRACE},
restart => $ENV{RESTART}, restart => $ENV{RESTART},
cv => $cv, cv => $cv,
dont_create_temp_dir => $args{dont_create_temp_dir}, dont_create_temp_dir => $args{dont_create_temp_dir},