diff options
author | don bright <hugh.m.bright@gmail.com> | 2013-02-02 23:44:25 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2013-02-02 23:44:25 (GMT) |
commit | 1a545b75f6bd05a0eca42e1f797aa4853aca88d6 (patch) | |
tree | 40e76f10e64cfddf64123b677e5d15152e09bdb9 /tests/virtualfb.sh | |
parent | eb30d42b5dd3ed5bb37336ed46a59eabaca81e06 (diff) |
workaround cmake 2.8.10 not allowing CTEST_CUSTOM_POST_TEST arguments
Diffstat (limited to 'tests/virtualfb.sh')
-rwxr-xr-x | tests/virtualfb.sh | 70 |
1 files changed, 54 insertions, 16 deletions
diff --git a/tests/virtualfb.sh b/tests/virtualfb.sh index 3c0cf0e..e0d8320 100755 --- a/tests/virtualfb.sh +++ b/tests/virtualfb.sh @@ -1,22 +1,60 @@ #!/bin/sh -if [ "`command -v Xvfb`" ]; then - VFB_BINARY=Xvfb -fi +# Toggle the Virtual Framebuffer +# If started, stop. If stopped, start. -if [ "`command -v Xvnc`" ]; then - VFB_BINARY=Xvnc -fi +start() +{ + if [ "`command -v Xvfb`" ]; then + VFB_BINARY=Xvfb + fi + + if [ "`command -v Xvnc`" ]; then + VFB_BINARY=Xvnc + fi + + if [ ! $VFB_BINARY ]; then + echo "$0 Failed, cannot find Xvfb or Xvnc" + exit 1 + fi + + VFB_DISPLAY=`echo | awk 'BEGIN{srand();} {printf ":%.0f", rand()*1000+100};'` + $VFB_BINARY $VFB_DISPLAY -screen 0 800x600x24 &> ./virtualfb.log & + VFB_PID=$! + + echo $VFB_DISPLAY > ./virtualfb.DISPLAY + echo $VFB_PID > ./virtualfb.PID + + echo "Started virtual fb, PID=$VFB_PID , DISPLAY=$VFB_DISPLAY" + sleep 1 +} + +stop() +{ + VFB_PID=`cat ./virtualfb.PID` + VFB_DISPLAY=`cat ./virtualfb.DISPLAY` + + echo "Stopping virtual fb, PID=$VFB_PID, DISPLAY=$VFB_DISPLAY" + kill $VFB_PID + LOCKFILE=`echo "/tmp/.X"$VFB_DISPLAY"-lock"` + if [ -e $LOCKFILE ]; then + rm $LOCKFILE + fi + rm ./virtualfb.PID + rm ./virtualfb.DISPLAY +} + +isrunning() +{ + isrunning_result= + if [ -e ./virtualfb.PID ]; then isrunning_result=1 ; fi + if [ -e ./virtualfb.DISPLAY ]; then isrunning_result=1 ; fi +} -if [ ! $VFB_BINARY ]; then - echo "$0 Failed, cannot find Xvfb or Xvnc" - exit 1 +isrunning +if [ $isrunning_result ]; then + stop +else + start fi -DISPLAY=:98 -$VFB_BINARY $DISPLAY -screen 0 800x600x24 &> virtualfblog & -echo PID=$! " " -echo DISPLAY=$DISPLAY -# trap "kill -KILL $xpid ||:" EXIT -export DISPLAY -sleep 3 |