]> git.tue.mpg.de Git - paraslash.git/commitdiff
Add test to check whether empty mood arguments are rejected.
authorAndre Noll <maan@tuebingen.mpg.de>
Sat, 12 Mar 2022 03:29:03 +0000 (04:29 +0100)
committerAndre Noll <maan@tuebingen.mpg.de>
Wed, 18 May 2022 20:42:28 +0000 (22:42 +0200)
To make sure a recent bug won't be re-introduced. The test succeeds
but fails with commit

2c2d3a6ec34d983cb698b245facb8d6240aec1b3

reverted.

We have to add at least one mood to trigger the bug. Since addmood is
a stdin command we must redirect stdin for the para_client command. It
does not hurt to do this for all commands, not just the new one.

t/t0004-server.sh

index 03957464e17e2a50596149e59627cd7584424fe9..9e681107646e85e0fdcc3e12ec1ed13694376628 100755 (executable)
@@ -24,7 +24,8 @@ get_audio_file_paths ogg
 declare -a oggs=($result)
 declare -a oggs_base=(${oggs[@]##*/})
 
-declare -a commands=() cmdline=() required_objects=() good=() bad=()
+declare -a commands=() cmdline=() required_objects=() good=() bad=() \
+       expect_failure=()
 i=0
 commands[$i]="help"
 cmdline[$i]="help -l"
@@ -72,6 +73,15 @@ required_objects[$i]='ogg_afh'
 cmdline[$i]="ls -l=v ${oggs[@]}"
 good[$i]='^attributes_txt: 33'
 
+let i++
+commands[$i]='addmood'
+cmdline[$i]="addmood test-mood"
+
+let i++
+commands[$i]='empty-mood-parameter'
+cmdline[$i]="select m/"
+expect_failure[$i]='true'
+
 let i++
 commands[$i]="term"
 cmdline[$i]="term"
@@ -137,14 +147,19 @@ for ((i=0; i < ${#commands[@]}; i++)); do
                        continue
                fi
        fi
-       test_expect_success "$command" "
+       if [[ -n "${expect_failure[$i]}" ]]; then
+               f=test_expect_failure
+       else
+               f=test_expect_success
+       fi
+       $f "$command" "
        $PARA_CLIENT \
                --loglevel $loglevel \
                --server-port $port \
                --key-file $privkey \
                --config-file /dev/null \
                -- \
-               ${cmdline[$i]} > $command.out &&
+               ${cmdline[$i]} > $command.out < /dev/null &&
                { [[ -z \"${good[$i]}\" ]] || grep \"${good[$i]}\"; } < $command.out &&
                { [[ -z \"${bad[$i]}\" ]]  || ! grep \"${bad[$i]}\"; } < $command.out
        "