parent
f88240ac2e
commit
508bf43fa0
@ -0,0 +1,117 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Test script is organized like this:
|
||||
# o two variables (PASSED and FAILED) hold the total
|
||||
# number of passed/faled tests
|
||||
# o expect() function performs a single test. First
|
||||
# argument of the function is the variable name and
|
||||
# the second is an expected value. PASSED/FAILED
|
||||
# values are updated automatically
|
||||
#
|
||||
# Most tests look like:
|
||||
# |
|
||||
# | expect "varName" "expectedValue" << JSON_END
|
||||
# | ..json data here...
|
||||
# | JSON_END
|
||||
# |
|
||||
#
|
||||
|
||||
PASSED=0
|
||||
FAILED=0
|
||||
|
||||
function expect() {
|
||||
ret=$(./jsmn_demo -t 10 -b 256 - | grep -A 1 $1 | tail -n 1 | cut -c 15-)
|
||||
if [ "x$ret" = "x$2" ]; then
|
||||
PASSED=$(($PASSED+1))
|
||||
else
|
||||
echo "Failed: $1 != $2"
|
||||
FAILED=$(($FAILED+1))
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# TEST SET: Basic types (simple values)
|
||||
#
|
||||
expect 'boolVar' 'true' << JSON_END
|
||||
"boolVal" : true
|
||||
JSON_END
|
||||
|
||||
expect 'boolVar' 'false'<< JSON_END
|
||||
"boolVar" : false
|
||||
JSON_END
|
||||
|
||||
expect 'intVar' '12345' << JSON_END
|
||||
"intVar" : 12345
|
||||
JSON_END
|
||||
|
||||
expect 'floatVar' '12.345' << JSON_END
|
||||
"floatVar" : 12.345
|
||||
JSON_END
|
||||
|
||||
expect 'nullVar' 'null' << JSON_END
|
||||
"nullVar" : null
|
||||
JSON_END
|
||||
|
||||
expect 'strVar' 'hello' << JSON_END
|
||||
"strVar" : "hello"
|
||||
JSON_END
|
||||
|
||||
#
|
||||
# TEST SET: Simple types (boundary values)
|
||||
#
|
||||
|
||||
expect 'intVar' '0' << JSON_END
|
||||
"intVar" : 0
|
||||
JSON_END
|
||||
|
||||
expect 'intVar' '-0' << JSON_END
|
||||
"intVar" : -0
|
||||
JSON_END
|
||||
|
||||
expect 'floarVar' '-0.0' << JSON_END
|
||||
"floarVar" : -0.0
|
||||
JSON_END
|
||||
|
||||
expect 'strVar' '\n\r\b\t \u1234' << JSON_END
|
||||
"strVar" : "\n\r\b\t \u1234"
|
||||
JSON_END
|
||||
|
||||
expect 'strVar' '' << JSON_END
|
||||
"strVar" : ""
|
||||
JSON_END
|
||||
|
||||
#
|
||||
# TEST SET: Array types
|
||||
#
|
||||
expect 'arr' '[1,2,3,4,5]' << JSON_END
|
||||
"arr" : [1,2,3,4,5]
|
||||
JSON_END
|
||||
|
||||
expect 'arr' '[1, 2.3, "4", null, true]' << JSON_END
|
||||
"arr" : [1, 2.3, "4", null, true]
|
||||
JSON_END
|
||||
|
||||
expect 'arr' '[]' << JSON_END
|
||||
"arr" : []
|
||||
JSON_END
|
||||
|
||||
#
|
||||
# TEST SET: Object types
|
||||
#
|
||||
expect 'obj' '{"a":"b"}' << JSON_END
|
||||
"obj":{"a":"b"}
|
||||
JSON_END
|
||||
|
||||
expect 'objField' 'value' << JSON_END
|
||||
{
|
||||
"foo" : "bar",
|
||||
"objField" : "value"
|
||||
}
|
||||
JSON_END
|
||||
|
||||
echo
|
||||
echo "Passed: $PASSED"
|
||||
echo "Failed: $FAILED"
|
||||
echo
|
||||
|
Loading…
Reference in new issue