* A function to wait until a window exists.
svn path=/nixos/trunk/; revision=19246
This commit is contained in:
parent
0f5b178fcf
commit
5cc99487cb
@ -287,4 +287,24 @@ sub screenshot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub getWindowNames {
|
||||||
|
my ($self) = @_;
|
||||||
|
my $res = $self->mustSucceed(
|
||||||
|
q{DISPLAY=:0.0 xwininfo -root -tree | sed 's/.*0x[0-9a-f]* \"\([^\"]*\)\".*/\1/; t; d'});
|
||||||
|
return split /\n/, $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub waitForWindow {
|
||||||
|
my ($self, $regexp) = @_;
|
||||||
|
while (1) {
|
||||||
|
my @names = $self->getWindowNames;
|
||||||
|
foreach my $n (@names) {
|
||||||
|
return if $n =~ /$regexp/;
|
||||||
|
}
|
||||||
|
sleep 2;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
@ -49,6 +49,9 @@ with pkgs.lib;
|
|||||||
# user intervention).
|
# user intervention).
|
||||||
boot.kernelParams = [ "stage1panic" ];
|
boot.kernelParams = [ "stage1panic" ];
|
||||||
|
|
||||||
|
# `xwininfo' is used by the test driver to query open windows.
|
||||||
|
environment.systemPackages = [ pkgs.xorg.xwininfo ];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -36,17 +36,15 @@
|
|||||||
|
|
||||||
testScript =
|
testScript =
|
||||||
''
|
''
|
||||||
$machine->waitForFile("/tmp/.X11-unix/X0");
|
$machine->waitForWindow(qr/plasma-desktop/);
|
||||||
|
|
||||||
sleep 70;
|
|
||||||
|
|
||||||
$machine->execute("su - alice -c 'DISPLAY=:0.0 kwrite /var/log/messages &'");
|
$machine->execute("su - alice -c 'DISPLAY=:0.0 kwrite /var/log/messages &'");
|
||||||
|
|
||||||
sleep 10;
|
|
||||||
|
|
||||||
$machine->execute("su - alice -c 'DISPLAY=:0.0 konqueror http://localhost/ &'");
|
$machine->execute("su - alice -c 'DISPLAY=:0.0 konqueror http://localhost/ &'");
|
||||||
|
|
||||||
sleep 10;
|
$machine->waitForWindow(qr/messages.*KWrite/);
|
||||||
|
$machine->waitForWindow(qr/Valgrind.*Konqueror/);
|
||||||
|
|
||||||
|
sleep 5;
|
||||||
|
|
||||||
$machine->screenshot("screen");
|
$machine->screenshot("screen");
|
||||||
'';
|
'';
|
||||||
|
Loading…
Reference in New Issue
Block a user