| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #! /bin/bash
- # ecs60 Program 2
- # This script compares the example output with the output from your program.
- # It does not grade your programs.
- echo "Running your programs (buildheap.sh) on examples.."
- echo "Building test environment.."
- chmod u+x *.sh
- rm -rf testerDirectory
- mkdir -p testerDirectory
- mkdir -p testerDirectory/diff
- cd testerDirectory
- cp ../* . &> /dev/null
- rm *.json -f
- echo "..."
- cp ~rsgysel/60-Program2-Examples/* . &> /dev/null
- echo "...."
- numExamples=100
- totalTestsPassed=0
- # buildheap
- testsPassed=0;
- numExamples=0
- program=buildheap
- echo "Checking ./buildheap.sh"
- echo ${program} > Results.txt
- for file in *.json; do
- numExamples=$((numExamples + 1))
- testFile=$(basename ${file} .json)
- ./buildheap.sh ${testFile}.json > ${testFile}studentheapoutput.json
- if [ -s ${testFile}studentheapoutput.json ]; then
- diff -w ${testFile}studentheapoutput.json ${testFile}.buildheapoutput > ./diff/${testFile}Diff.txt
- diffFile=./diff/${testFile}Diff.txt
- if [ ! -s $diffFile ]; then
- if [ -f $diffFile ]; then
- echo ${testFile}studentheapoutput.json: Pass >> Results.txt
- testsPassed=$((testsPassed+1))
- else
- echo $diffFile not found!
- fi
- else
- echo ${testFile}studentheapoutput.json: Fail. See $diffFile >> Results.txt
- fi
- else
- echo ${testFile}.json: Fail, no output from your program >> Results.txt
- fi
- done
- echo ./buildheap.sh ${testsPassed} tests passed of ${numExamples} total tests
- echo
- echo >> Results.txt
- totalTestsPassed=$(($totalTestsPassed + $testsPassed))
- # Cleanup
- echo Cleaning up...
- cp Results.txt ../
- cp -r diff ../
- cd ..
- rm -rf testerDirectory
- echo "Testing finished, you passed $totalTestsPassed out of $numExamples total tests. See Results.txt for details. Be sure to include your compile.sh in your submission, which was not tested by this script."
|