# echo its $DESKTOP_STARTUP_ID. We (blockingly) read the variable into
# $startup_id in the testcase.
my $tmp = tmpnam();
-mkfifo($tmp, 0600) or BAIL_OUT "Could not create FIFO in $tmp";
+mkfifo($tmp, 0600) or BAIL_OUT "Could not create FIFO in $tmp: $!";
cmd qq|exec echo \$DESKTOP_STARTUP_ID >$tmp|;
complete_startup();
sync_with_i3;
+# even when renaming the workspace, windows should end up on the correct one
+cmd "rename workspace $first_ws to temp";
+
# Startup has completed but the 30-second deletion time hasn't elapsed,
# so this window should still go on the leader's initial workspace.
$win = open_window({ dont_map => 1, client_leader => $leader });
$win->map;
sync_with_i3;
+cmd "rename workspace temp to $first_ws";
+
is_num_children($first_ws, 3, 'three containers on the first workspace');
+# empty 'from' workspaces should not crash the renaming of startup sequences
+cmd "workspace $first_ws";
+cmd "rename workspace to temp";
+cmd "rename workspace to $first_ws";
+
# Switch to the first workspace and move the focused window to the
# second workspace.
cmd "workspace $first_ws";
# environment variable.
######################################################################
-mkfifo($tmp, 0600) or BAIL_OUT "Could not create FIFO in $tmp";
+mkfifo($tmp, 0600) or BAIL_OUT "Could not create FIFO in $tmp: $!";
cmd qq|exec --no-startup-id echo \$DESKTOP_STARTUP_ID >$tmp|;
# 4) same thing, but with double quotes in exec
######################################################################
-mkfifo($tmp, 0600) or BAIL_OUT "Could not create FIFO in $tmp";
+mkfifo($tmp, 0600) or BAIL_OUT "Could not create FIFO in $tmp: $!";
cmd qq|exec --no-startup-id "echo \$DESKTOP_STARTUP_ID >$tmp"|;