Merge remote-tracking branch 'origin/jack_property_test' into develop
This commit is contained in:
commit
2bcacf66b4
|
@ -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
|
Loading…
Reference in New Issue