summaryrefslogtreecommitdiff
path: root/tests
blob: a13cfdb9c4ed6009d9164385a45194b671ed0482 (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
#!/bin/sh
# Test suite for mp.

run() {
	[ "$filter" ] && case $1 in ($filter) ;; (*) return; esac
	out=$(echo "$2" | ./mp 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))' EXIT

run basic1 "parse\nformat" ''
run basic2 'parse null\nformat' 'null'
run basic3 'parse true\nformat' 'true'
run basic4 'parse false\nformat' 'false'
run num1 'parse 12\nformat' '12'
run str1 'parse "hello"\nformat' '"hello"'
run arr1 'parse []\nformat' '[]'
run arr2 'parse [null]\nformat' '[null]'
run arr3 'parse [true,false]\nformat' '[true,false]'
run obj1 'parse {}\nformat' '{}'