#!/bin/sh # # Validate transformed program # # $1 stratafied binary to validate # $2 binary SPRI file # $3 directory of inputs # $4 directory of baseline outputs # # echo "==========================================" echo "Running program validator" echo "==========================================" STRATAFIED_BINARY=$1 # stratafied binary BSPRI_FILE=$2 # binary spri file INPUT_DIR=$3 # directory with inputs OUTPUT_DIR=$4 # directory of baseline output for i in `ls $INPUT_DIR/input*.json` do input=`basename $i .json` echo "Validating on input $input" STRATA_SPRI_FILE=$BSPRI_FILE $GRACE_HOME/concolic/bin/replayer --symbols=a.sym --stdout=stdout.$input.$fn --stderr=stderr.$input.$fn --engine=sdt $STRATAFIED_BINARY $i # check against stdout if [ ! -z replay.baseline/stdout.$input ]; then diff stdout.$input.$fn replay.baseline/stdout.$input if [ ! $? -eq 0 ]; then echo "ERROR -- output divergence (stdin) detected on input: $i" exit 1 fi rm stdout.$input.$fn 2>/dev/null rm stderr.$input.$fn 2>/dev/null fi # check against sterr if [ ! -z replay.baseline/stderr.$input ]; then diff stderr.$input.$fn replay.baseline/stderr.$input if [ ! $? -eq 0 ]; then echo "ERROR -- output divergence (stderr) detected on input: $i" exit 1 fi rm stdout.$input.$fn 2>/dev/null rm stderr.$input.$fn 2>/dev/null fi done