diff --git a/tests/performance/jqspeed.sh b/tests/performance/jqspeed.sh index 9840c2d..30b68b8 100755 --- a/tests/performance/jqspeed.sh +++ b/tests/performance/jqspeed.sh @@ -2,19 +2,30 @@ export LC_ALL=C -stress_jq() { - `which time` -p -f '%e\n' bash -c 'for i in `seq 1 1000` ; do echo '"'"'{"foo":"bar"}'"'"' | jq '"'"'has("bar")'"'"' > /dev/null ; done' 2>&1 | cut -d. -f1 +measure_env_speed () { + `which time` -p -f '%e\n' bash -c 'for a in `seq 1 1000`; do (for b in `seq 500`; do echo $b; done) | pigz > /dev/null; done' 2>&1 +} + +stress_jq() { + `which time` -p -f '%e\n' bash -c 'for i in `seq 1 1000` ; do echo '"'"'{"foo":"bar"}'"'"' | jq '"'"'has("bar")'"'"' > /dev/null ; done' 2>&1 } -FAIL=0 -TIME=`stress_jq` echo -n "Test jqspeed ... " -if [ $TIME -gt 8 ] ; then +SPEED=`measure_env_speed` +TIMEOUT=`echo 3.0 '*' $SPEED | bc` +TIME=`stress_jq` +FAIL=`echo $TIME '>' $TIMEOUT | bc` + +if [ "$FAIL" = "1" ] ; then echo "failed" - FAIL=1 else echo "ok" fi -echo "Runtime: ${TIME}s " + +echo "Speed: ${SPEED}s" +echo "Runtime: ${TIME}s" +echo "Timeout: ${TIMEOUT}s" + exit $FAIL + diff --git a/tests/performance/main.fmf b/tests/performance/main.fmf index b1a8e27..bbc5023 100644 --- a/tests/performance/main.fmf +++ b/tests/performance/main.fmf @@ -3,4 +3,6 @@ require: - jq - which - time + - pigz + - bc test: ./jqspeed.sh diff --git a/tests/tests.yml b/tests/tests.yml index f2f5ccc..1e88054 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -15,6 +15,8 @@ - jq-devel - valgrind - rubygem-rake + - pigz + - bc tests: - upstream: dir: upstream