diff --git a/testcases/complete-run.pl.in b/testcases/complete-run.pl.in index ba192469..ddd6ccad 100755 --- a/testcases/complete-run.pl.in +++ b/testcases/complete-run.pl.in @@ -177,11 +177,18 @@ my $timingsjson = slurp('.last_run_timings.json') if -e '.last_run_timings.json' map { [$_, $timings{$_} // 999] } @testfiles; # Run 000-load-deps.t first to bail out early when dependencies are missing. -my $loadtest = "t/000-load-deps.t"; -if ((scalar grep { $_ eq $loadtest } @testfiles) > 0) { +my ($loadtest) = grep { $_ =~ m,t/000-load-deps.t$, } @testfiles; +if (defined($loadtest)) { @testfiles = ($loadtest, grep { $_ ne $loadtest } @testfiles); } +# Run 533-randr15.t last because it destructively modifies the RandR +# configuration of the X session, interfering with any test started afterwards. +my ($randrtest) = grep { $_ =~ m,t/533-randr15.t$, } @testfiles; +if (defined($randrtest)) { + @testfiles = ((grep { $_ ne $randrtest } @testfiles), $randrtest); +} + printf("\nRough time estimate for this run: %.2f seconds\n\n", $timings{GLOBAL}) if exists($timings{GLOBAL}); diff --git a/testcases/lib/TestWorker.pm b/testcases/lib/TestWorker.pm index aee994f7..c56767c4 100644 --- a/testcases/lib/TestWorker.pm +++ b/testcases/lib/TestWorker.pm @@ -99,6 +99,11 @@ sub worker_wait { $0 = $file; + # Re-seed rand() so that File::Temp’s tempnam produces different + # results, making a TOCTOU between e.g. t/175-startup-notification.t + # and t/180-fd-leaks.t less likely. + srand(time ^ $$); + POSIX::dup2($ipc_fd, 0); POSIX::dup2($ipc_fd, 1); POSIX::dup2(1, 2); diff --git a/testcases/t/263-edge-borders.t b/testcases/t/263-edge-borders.t index 0d14c65c..6da1dacd 100644 --- a/testcases/t/263-edge-borders.t +++ b/testcases/t/263-edge-borders.t @@ -147,6 +147,10 @@ ok(@{get_ws_content($tmp)} == 2, 'after split & new window, two containers'); $wscontent = get_ws($tmp); +# Ensure i3’s X11 requests are processed before our inquiry via +# $tilewindow->rect: +sync_with_i3; + @tiled = @{$wscontent->{nodes}}; ok(@tiled == 2, 'two tiled container opened in another container'); is($tiled[0]->{current_border_width}, -1, 'first tiled current border width set to -1');