summaryrefslogtreecommitdiff
path: root/tests
blob: 690da7a5bfb539dd8ed14875fc2bee067208752c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh
# Test suite for mp.
# Usage: [FAILFAST=1] tests [pattern]
# Example:  tests "obj*"

run() {
	[ "$filter" ] && case $1 in ($filter) ;; (*) return; esac
	out=$(./mp -v str=1 "$2" 2>&1)
	[ "$out" = "$3" ] && pass=$((pass + 1)) && return
	printf "%s FAIL\nWant: '%s'\n Got: '%s'\n" "$1" "$3" "$out"
	fail=$((fail + 1))
	return 1
}

[ "$FAILFAST" ] && set -e
pass=0 fail=0 filter="$1"
trap 'echo "$pass passed, $fail failed"; exit $((fail != 0))' EXIT

run basic_1 '' ''
run basic_2 'null' 'null'
run basic_3 'true' 'true'
run basic_4 'false' 'false'
run number_1 '12' '12'
run string_1 '"hello"' '"hello"'
run string_2 '"hello \"world\""' '"hello \"world\""'
run string_3 '""' '""'
run array_1 '[]' '[]'
run array_2 '[null]' '[null]'
run array_3 '[true,false]' '[true,false]'
run object_1 '{}' '{}'
run object_2 '{"":false}' '{"":false}'
run object_3 '{"":false,"1": true}' '{"":false,"1":true}'
run object_4 '{ }' '{}'
run object_5 '{
}' '{}'
run object_6 '{"id":
1}' '{"id":1}'