From 8a7a8442c172bf419853b3d40e245fbc9bf69759 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Wed, 20 Jan 2021 16:42:40 +0100 Subject: [PATCH] nixos/tests/chromium: Fix a race condition Only execute Ctrl+w to close the currently active window if the new/secondary window (title: "New Tab") could be selected. This fixes a test failure since the update to Chromium M88 (cc PR #110010). Without this additional check the main window (title: "startup done") could still be selected (and thus will be closed) and the script would close both windows (i.e. terminate Chromium completely). --- nixos/tests/chromium.nix | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/nixos/tests/chromium.nix b/nixos/tests/chromium.nix index 795b93f6f54..d4085bebac0 100644 --- a/nixos/tests/chromium.nix +++ b/nixos/tests/chromium.nix @@ -80,7 +80,7 @@ mapAttrs (channel: chromiumPkg: makeTest rec { def close_win(): def try_close(_): - machine.execute( + status, _ = machine.execute( ru( "${xdo "close-window" '' search --onlyvisible --name "new tab" @@ -89,13 +89,14 @@ mapAttrs (channel: chromiumPkg: makeTest rec { ''}" ) ) - machine.execute( - ru( - "${xdo "close-window" '' - key Ctrl+w - ''}" + if status == 0: + machine.execute( + ru( + "${xdo "close-window" '' + key Ctrl+w + ''}" + ) ) - ) for _ in range(1, 20): status, out = machine.execute( ru(