diff options
author | falkTX <falktx@falktx.com> | 2019-02-21 12:58:05 +0100 |
---|---|---|
committer | falkTX <falktx@falktx.com> | 2019-02-21 12:58:05 +0100 |
commit | 2bcacf66b4fa0140c16e5ec592e21884f9d4d8a3 (patch) | |
tree | 03eb52645ca2c09c7ad4933beabb3bd58ee47842 | |
parent | 5f2baebd6b9d26d2ec5bdb94957d1e3351b1b7e8 (diff) | |
parent | be77f9e4f84cb4a96481a028896ed7b3078f3001 (diff) | |
download | jack2-2bcacf66b4fa0140c16e5ec592e21884f9d4d8a3.tar.gz |
Merge remote-tracking branch 'origin/jack_property_test' into develop
-rwxr-xr-x | tests/jack_property_test.sh | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/tests/jack_property_test.sh b/tests/jack_property_test.sh new file mode 100755 index 00000000..35d3ebe7 --- /dev/null +++ b/tests/jack_property_test.sh @@ -0,0 +1,224 @@ +#!/bin/bash + +#test jack_property client +#//tb/1902 + +#this test needs: +# -a running jack server +# -client programs +# -jack_property +# -jack_metro +# -jack_lsp + +#uninstall jack, setup jack1, make sure /dev/shm/ is clean, start jackd -ddummy in new terminal, run this script in new terminal +# time ./jack_property_test.sh > /tmp/jack_property_test_jack1_out.txt 2>&1 + +#uninstall jack, setup jack2, make sure /dev/shm/ is clean, start jackd -ddummy in new terminal, run this script in new terminal +# time ./jack_property_test.sh > /tmp/jack_property_test_jack2_out.txt 2>&1 + +#for stress test: while true; do ./jack_property_test.sh; sleep 1; done +#to inspect running script: start with bash -x ./jack_property_test.sh + +set -o pipefail + +#any failed test will set this to 1 (error) +FINAL_RETURN_VALUE=0 + +function expect() +{ + if [ "$1" = "$2" ]; + then + echo " OK: $2" + return 0 + fi + echo "** FAILED: $1" + echo "** EXP EQ: $2" + FINAL_RETURN_VALUE=1 + return 1 +} + +function expect_not() +{ + if [ "$1" != "$2" ]; + then + echo " OK: $2" + return 0 + fi + echo "** FAILED: $1" + echo "** EXP NE: $2" + FINAL_RETURN_VALUE=1 + return 1 +} + +function expect_ok_empty() +{ + expect "$1" 0 + expect "$2" "" +} + +TESTPREFIX="" +function tell() +{ + echo "test ${TESTPREFIX}$1: $2" +} + +#test using -c, --client +function client_test() +{ +client="$1" + +cmd="jack_property -D" +tell c1 "$cmd" +res="`$cmd 2>&1`" + expect $? 0 + expect "$res" "JACK metadata successfully deleted" + +cmd="jack_property -l" +tell c2 "$cmd" +res="`$cmd 2>&1`" + expect_ok_empty $? "$res" + +cmd="jack_property -c -l $client" +tell c3 "$cmd" +res="`$cmd 2>&1`" + expect_ok_empty $? "$res" + +cmd="jack_property -c -s $client client_key client_value" +tell c4 "$cmd" +res="`$cmd 2>&1`" + expect_ok_empty $? "$res" + +cmd="jack_property -c -l $client" +tell c5 "$cmd" +res="`$cmd 2>&1`" + expect $? 0 + expect "$res" "key: client_key value: client_value" + +cmd="jack_property -c -l $client client_key" +tell c6 "$cmd" +res="`$cmd 2>&1`" + expect $? 0 + expect "$res" "client_value" + +cmd="jack_property -l" # |tail -1" +tell c7 "$cmd" +res="`$cmd 2>&1 |tail -1`" + #18446744073709551615 + #key: client_key value: client_value + expect $? 0 + expect "$res" "key: client_key value: client_value" + +cmd="jack_property -p -l ${client}:non" +tell c8 "$cmd" +res="`$cmd 2>&1`" + expect_not $? 0 + expect "$res" "cannot find port name ${client}:non" +} + +#test using -p, --port +function port_test() +{ +port="$1" + +cmd="jack_property -D" +tell p1 "$cmd" +res="`$cmd 2>&1`" + expect $? 0 + expect "$res" "JACK metadata successfully deleted" + +cmd="jack_property -l" +tell p2 "$cmd" +res="`$cmd 2>&1`" + expect_ok_empty $? "$res" + +cmd="jack_property -p -l $port" +tell p3 "$cmd" +res="`$cmd 2>&1`" + expect_ok_empty $? "$res" + +cmd="jack_property -p -s $port port_key port_value" +tell p4 "$cmd" +res="`$cmd 2>&1`" + expect_ok_empty $? "$res" + +cmd="jack_property -p -l $port" +tell p5 "$cmd" +res="`$cmd 2>&1`" + expect $? 0 + expect "$res" "key: port_key value: port_value" + +cmd="jack_property -p -l $port port_key" +tell p6 "$cmd" +res="`$cmd 2>&1`" + expect $? 0 + expect "$res" "port_value" + +cmd="jack_property -p -d $port port_key" +tell p7 "$cmd" +res="`$cmd 2>&1`" + expect_ok_empty $? "$res" + +cmd="jack_property -p -l $port port_key" +tell p8 "$cmd" +res="`$cmd 2>&1`" + expect_not $? 0 + expect "$res" "Value not found for port_key of $port" + +cmd="jack_property -p -d $port port_key" +tell p9 "$cmd" +res="`$cmd 2>&1 |tail -1`" + #Cannot delete key port_key (BDB0073 DB_NOTFOUND: No matching key/data pair found) + #"port_key" property not removed for system:playback_1 + expect_not $? 0 + expect "$res" "\"port_key\" property not removed for $port" + +cmd="jack_property -p -l $port" +tell p10 "$cmd" +res="`$cmd 2>&1`" + expect_ok_empty $? "$res" + +cmd="jack_property -p -l $port non" +tell p11 "$cmd" +res="`$cmd 2>&1`" + expect_not $? 0 + expect "$res" "Value not found for non of $port" + +cmd="jack_property -c -l non" +tell p12 "$cmd" +res="`$cmd 2>&1`" + expect_not $? 0 + expect "$res" "cannot get UUID for client named non" +} + + +TESTPREFIX="system_" +client_test system +port_test system:playback_1 + +#test with any jack client +jack_metro -b120 & +metro_pid=$! + +sleep 0.1 +jack_lsp|grep metro +#metro:120_bpm + +TESTPREFIX="metro_" +client_test metro +port_test metro:120_bpm + +jack_property -D +#JACK metadata successfully deleted +jack_property -l + +kill -HUP $metro_pid +sleep 0.5 +echo "done, exit status is $FINAL_RETURN_VALUE" + +###TO DO: +#test short keys, values +#test long keys, values +#test many + +exit $FINAL_RETURN_VALUE +#EOF |