tvbrowser: add simple test
This test starts tvbrowser with an Xvfb X server and verifies that all expected windows are created.
This commit is contained in:
parent
b2fdba820a
commit
2d8e156a59
2 changed files with 43 additions and 0 deletions
|
@ -6,6 +6,7 @@
|
|||
, ant
|
||||
, jdk
|
||||
, makeWrapper
|
||||
, callPackage
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -72,6 +73,8 @@ stdenv.mkDerivation rec {
|
|||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.tests.startwindow = callPackage ./test.nix {};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Electronic TV Program Guide";
|
||||
homepage = "https://www.tvbrowser.org/";
|
||||
|
|
40
pkgs/applications/misc/tvbrowser/test.nix
Normal file
40
pkgs/applications/misc/tvbrowser/test.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ lib
|
||||
, xvfb-run
|
||||
, tvbrowser
|
||||
, runCommand
|
||||
, writeShellApplication
|
||||
, xorg
|
||||
}:
|
||||
|
||||
let
|
||||
testScript = writeShellApplication {
|
||||
name = "tvbrowser-test-script";
|
||||
runtimeInputs = [ xorg.xwininfo tvbrowser ];
|
||||
text = ''
|
||||
function find_tvbrowser_windows {
|
||||
for window_name in java tvbrowser-TVBrowser 'Setup assistant' ; do
|
||||
grep -q "$window_name" "$1" || return 1
|
||||
done
|
||||
}
|
||||
tvbrowser &
|
||||
for _ in {0..900} ; do
|
||||
xwininfo -root -tree \
|
||||
| sed 's/.*0x[0-9a-f]* \"\([^\"]*\)\".*/\1/; t; d' \
|
||||
| tee window-names
|
||||
echo
|
||||
if find_tvbrowser_windows window-names ; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
find_tvbrowser_windows window-names
|
||||
'';
|
||||
};
|
||||
in
|
||||
runCommand
|
||||
"tvbrowser-test"
|
||||
{ buildInputs = [ xvfb-run ]; }
|
||||
''
|
||||
HOME=$PWD xvfb-run ${lib.getExe testScript}
|
||||
touch ${placeholder "out"}
|
||||
''
|
Loading…
Reference in a new issue