aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile3
-rwxr-xr-xruntests51
2 files changed, 54 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index e4e3e8d..07a5f84 100644
--- a/Makefile
+++ b/Makefile
@@ -7,5 +7,8 @@ install: pulsemix
mkdir -p $(DESTDIR)/usr/bin
install -m755 pulsemix $(DESTDIR)/usr/bin/pulsemix
+check: pulsemix
+ ./runtests ./pulsemix
+
clean:
$(RM) pulsemix pulsemix.o
diff --git a/runtests b/runtests
new file mode 100755
index 0000000..7225d07
--- /dev/null
+++ b/runtests
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+pulsemix=$1
+
+if [[ -z $pulsemix ]]; then
+ printf 'usage: %s path-to-pulsemix\n' "${0##*/}"
+ exit 1
+fi
+
+if [[ ! -x $pulsemix ]]; then
+ printf '==> ERROR: pulsemix binary not found at %s\n' "$pulsemix"
+ exit 1
+fi
+
+testno=0 fail=0 pass=0
+
+do_test() {
+ local expected=$1 verb=$2 arg=$3 result=
+
+ (( ++testno ))
+
+ result=$("$pulsemix" "$verb" ${arg+"$arg"} 2>/dev/null)
+ if [[ $result != $expected ]]; then
+ printf '==> test %d FAIL: expected %s, got %s\n' "$testno" "$expected" "$result"
+ (( ++fail ))
+ else
+ (( ++pass ))
+ fi
+}
+
+# volume
+do_test 50 'set-volume' 50
+do_test 10 'decrease' 40
+do_test 0 'decrease' 9001
+do_test 0 'get-volume'
+do_test 50 'increase' 50
+do_test '' 'set-volume'
+do_test '' 'increase' foo
+do_test '' 'decrease' bar
+
+# balance
+do_test 30 'set-balance' 30
+do_test 100 'set-balance' 9001
+do_test 0 'set-balance' 0
+
+if (( ! fail )); then
+ printf '==> All %d tests successful\n' "$testno"
+else
+ printf '==> %d/%d tests failed\n' "$fail" "$testno"
+ exit 1
+fi