From ca685e9ea3cbe331520906bf21cc4f49e41c1d82 Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Wed, 26 Jan 2022 17:24:58 +0000 Subject: [PATCH] Tests: added support for proper negative test262 tests. --- test/options | 5 +++++ test/prepare | 3 +++ test/test262 | 21 +++++++++++++-------- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/test/options b/test/options index 023fde0a..a7b6bd3e 100644 --- a/test/options +++ b/test/options @@ -59,3 +59,8 @@ do done NJS_TEST_PATHS=${@:-test} + +NJS_TEST_EXIT_CODE=1 +if echo $NJS_TEST_BINARY | grep -q njs; then + NJS_TEST_EXIT_CODE=23 +fi diff --git a/test/prepare b/test/prepare index 45adcfbd..6791738a 100644 --- a/test/prepare +++ b/test/prepare @@ -7,6 +7,9 @@ njs_includes=`grep 'includes: \[[^]]*]' $njs_test \ | sed -e 's/includes: \[//' | sed -e 's/,/ /g' | sed -e 's/\]//'` njs_includes="assert.js sta.js $njs_includes" +njs_paths=`grep 'paths: \[[^]]*]' $njs_test \ + | sed -e 's/paths: \[//' | sed -e 's/ *, */:/g' | sed -e 's/\]//'` + njs_flags=`grep 'flags: \[[^]]*]' $njs_test \ | sed -e 's/flags: \[//' | sed -e 's/,/ /g' | sed -e 's/\]//'` diff --git a/test/test262 b/test/test262 index ae4ce6e7..86892e3b 100755 --- a/test/test262 +++ b/test/test262 @@ -19,18 +19,18 @@ for njs_test in $NJS_TESTS; do running $njs_test $njs_log END - if /bin/sh -c "(NJS_TEST_DIR=$NJS_TEST_DIR $NJS_TEST_BINARY $NJS_TEST_DIR/$njs_test)" > $njs_log 2>&1; then - njs_success=yes - else - njs_success=no - fi + status=0 + + NJS_PATH=$njs_paths \ + NJS_EXIT_CODE=$NJS_TEST_EXIT_CODE \ + $NJS_TEST_BINARY $NJS_TEST_DIR/$njs_test > $njs_log 2>&1 || status=$? cat $njs_log >> $NJS_TEST_LOG njs_out=`cat $njs_log` - if [ $njs_success = yes ]; then + if [ "$status" -eq 0 ]; then if [ -n "$njs_negative" ]; then - failed $njs_test + failed $njs_test $njs_log elif [ $njs_async = yes ]; then if [ "$njs_out" != 'Test262:AsyncTestComplete' ]; then @@ -51,7 +51,12 @@ END else if [ -n "$njs_negative" ]; then - passed $njs_test + if [ "$status" = "$NJS_TEST_EXIT_CODE" ]; then + passed $njs_test + else + echo "negative test exited with unexpected exit code:$status" + failed $njs_test $njs_log + fi else failed $njs_test $njs_log -- 2.47.3