Skip to content
Snippets Groups Projects
Commit e711f77e authored by an7s's avatar an7s
Browse files

Added exit code status check

Former-commit-id: 41a9f99dd0317533728377482340149546c3a30a
parent 97092a5c
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment