From e711f77e2f95226013b1553e713f2ba820da94e5 Mon Sep 17 00:00:00 2001 From: an7s <an7s@git.zephyr-software.com> Date: Tue, 18 Oct 2011 20:46:12 +0000 Subject: [PATCH] Added exit code status check Former-commit-id: 41a9f99dd0317533728377482340149546c3a30a --- tools/manual_test_import.sh | 25 +++++++++++++++++++++++-- tools/run_one_test.sh | 14 ++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/tools/manual_test_import.sh b/tools/manual_test_import.sh index b5cc2a11b..292f2b63e 100755 --- a/tools/manual_test_import.sh +++ b/tools/manual_test_import.sh @@ -18,6 +18,7 @@ INFILES="" OUTFILES="" TEST_NAME="" +EXIT_CODE="" while [ $# -gt 0 ] do case "$1" in @@ -26,6 +27,7 @@ do "--infile") INFILES="$2 $INFILES"; shift;; "--outfile") OUTFILES="$2 $OUTFILES"; shift;; "--name") TEST_NAME=$2; shift;; + "--exitcode") EXIT_CODE=$2; shift;; *) break;; esac shift @@ -36,6 +38,7 @@ TEST_TIMEOUT=30 echo "TEST_NAME = $TEST_NAME" echo "INFILES = $INFILES" echo "OUTFILES = $OUTFILES" +echo "EXIT_CODE = $EXIT_CODE" echo "PROG = $PROG" echo "CMD = $CMD" @@ -62,17 +65,23 @@ fi TEST_SPEC_DIR=${TEST_DIR}/spec SPEC_INPUT_DIR=$TEST_SPEC_DIR/input SPEC_OUTPUT_DIR=$TEST_SPEC_DIR/output +SPEC_EXIT_CODE_DIR=$TEST_SPEC_DIR/exitcode +EXIT_CODE_FILE=$SPEC_EXIT_CODE_DIR/exitcode.txt + TEST_ORIG_COVERAGE=$TEST_SPEC_DIR/coverage TEST_ORIG_CMD_SCRIPT=$TEST_SPEC_DIR/generate_cover_orig_cmd.sh - TEST_DIR_XFORMED=$TEST_DIR/transformed TEST_XFORMED_CMD_SCRIPT=$TEST_DIR_XFORMED/test_new_cmd.sh TEST_XFORMED_OUTPUT_DIR=$TEST_DIR_XFORMED/output +TEST_XFORMED_EXIT_CODE_DIR=$TEST_DIR_XFORMED/exitcode +TEST_XFORMED_EXIT_CODE_FILE=$TEST_XFORMED_EXIT_CODE_DIR/exitcode.txt +mkdir -p $TEST_ORIG_COVERAGE mkdir -p $SPEC_INPUT_DIR mkdir -p $SPEC_OUTPUT_DIR +mkdir -p $SPEC_EXIT_CODE_DIR mkdir -p $TEST_XFORMED_OUTPUT_DIR -mkdir -p $TEST_ORIG_COVERAGE +mkdir -p $TEST_XFORMED_EXIT_CODE_DIR # copy input files for i in $INFILES @@ -86,6 +95,10 @@ do cp $i $SPEC_OUTPUT_DIR done +if [ ! -z $EXIT_CODE ]; then + echo $EXIT_CODE > $EXIT_CODE_FILE +fi + #--------------------------------------- # Original cmd/program #--------------------------------------- @@ -139,6 +152,9 @@ do echo " rm $TEST_XFORMED_OUTPUT_DIR/$i 2>/dev/null" >> $TEST_XFORMED_CMD_SCRIPT done +# cleanup any old exit status code +echo " rm $TEST_XFORMED_EXIT_CODE_FILE 2>/dev/null" >> $TEST_XFORMED_CMD_SCRIPT + # stage in input (if any) for i in $INFILES do @@ -150,6 +166,11 @@ done echo "STRATA_SPRI_FILE=\$1 timeout $TEST_TIMEOUT $CMD" >> $TEST_XFORMED_CMD_SCRIPT echo "status=\$?" >> $TEST_XFORMED_CMD_SCRIPT echo "echo \$status" >> $TEST_XFORMED_CMD_SCRIPT + +if [ ! -z $EXIT_CODE ]; then + echo "echo \$status > $TEST_XFORMED_EXIT_CODE_FILE" >> $TEST_XFORMED_CMD_SCRIPT +fi + echo "if [ \$status -eq 139 ]; then" >> $TEST_XFORMED_CMD_SCRIPT echo " exit \$status" >> $TEST_XFORMED_CMD_SCRIPT echo "fi" >> $TEST_XFORMED_CMD_SCRIPT diff --git a/tools/run_one_test.sh b/tools/run_one_test.sh index bf53a3e10..48f5b9c2c 100755 --- a/tools/run_one_test.sh +++ b/tools/run_one_test.sh @@ -15,6 +15,9 @@ BSPRI=$2 SPEC_DIR=$TEST_DIR/spec XFORMED_DIR=$TEST_DIR/transformed +ORIG_EXIT_CODE_FILE=$SPEC_DIR/exitcode/exitcode.txt +XFORMED_EXIT_CODE_FILE=$XFORMED_DIR/exitcode/exitcode.txt + echo "running test $TEST_DIR from $XFORMED_DIR using bspri file: $BSPRI" cd $XFORMED_DIR ./test_new_cmd.sh $BSPRI @@ -26,6 +29,15 @@ else echo "test command status code: $status" fi +# compare exit codes when exit code file is found +if [ -f $ORIG_EXIT_CODE_FILE ]; then + diff $ORIG_EXIT_CODE_FILE $XFORMED_EXIT_CODE_FILE + if [ ! $? -eq 0 ]; then + echo "test $TEST_DIR: exit codes do not match" + exit 1 + fi +fi + cd output # make sure we have same number of files in the output directory @@ -37,6 +49,7 @@ if [ "$num_files_orig" != "$num_files_xformed" ]; then exit 1 fi +# compare outputs for i in `ls` do diff $i $SPEC_DIR/output/$i @@ -51,5 +64,6 @@ do fi done + echo "Test $1 passed" exit 0 -- GitLab