diff --git a/assignments/1-marketplace/skel/check.sh b/assignments/1-marketplace/skel/check.sh new file mode 100755 index 0000000000000000000000000000000000000000..33bdcb7aea2ccb8a6ea0e748933e3bd7283e073f --- /dev/null +++ b/assignments/1-marketplace/skel/check.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +TIMEOUT_VAL=360 +PYTHON_CMD=python3 +SRC=tema + +timeout $TIMEOUT_VAL ./run_tests.sh &> result + +if [ ! $? -eq 0 ] +then + echo "TIMEOUT. Tests exceeded maximum allowed time of $TIMEOUT_VAL" >> result +fi + +echo -e "\nRun pylint\n" >> result +${PYTHON_CMD} -m pylint --rcfile=./pylintrc ${SRC}/*.py &>> result + +awk -f parse.awk result + +echo -e "\nDetailed report\n" +cat result diff --git a/assignments/1-marketplace/skel/parse.awk b/assignments/1-marketplace/skel/parse.awk new file mode 100644 index 0000000000000000000000000000000000000000..8a6c2ee741483cb9b74119f30537027ae7f5fffc --- /dev/null +++ b/assignments/1-marketplace/skel/parse.awk @@ -0,0 +1,3 @@ +/Test [1-9]0*/ {printf "%s %d:\t%d\n", $1, $2, ($3 == "PASSED") ? 100 : 0 } +/TIMEOUT/ +/Your code has been rated at/ diff --git a/assignments/1-marketplace/skel/run_tests.sh b/assignments/1-marketplace/skel/run_tests.sh index e48a71e251117afa800a8bdf511633ce29b52992..84866ed1b7feebff9a563989858a623ae7a0c2c4 100755 --- a/assignments/1-marketplace/skel/run_tests.sh +++ b/assignments/1-marketplace/skel/run_tests.sh @@ -5,26 +5,35 @@ TESTS=tests OUT=out PYTHON_CMD=python3 +for i in {1..8} +do + TIMEOUT_VALS[$i]=30 +done +for i in {9..10} +do + TIMEOUT_VALS[$i]=60 +done + # Cleanup the previous run's temporary files rm -f ${TESTS}/*.out.sorted # Run tests -for i in {1..9} +for i in {1..10} do - rm -f "${TESTS}/0$i".out - echo "Starting test $i" - ${PYTHON_CMD} test.py "${TESTS}/0$i.in" > "${TESTS}/0$i.out" - echo "Finished test $i" - ${PYTHON_CMD} check_test.py $i "${TESTS}/0$i.out" "${TESTS}/0$i.ref.out" -done + prefix=$(printf "%02d" $i) + rm -f "${TESTS}/$prefix".out + echo "Starting test $i" -rm -f "${TESTS}/10".out -echo "Starting test 10" + timeout ${TIMEOUT_VALS[i]} ${PYTHON_CMD} test.py "${TESTS}/$prefix.in" > "${TESTS}/$prefix.out" + if [ ! $? -eq 0 ] + then + echo "TIMEOUT. Test $i exceeded maximum allowed time of ${TIMEOUT_VALS[i]}" + fi -${PYTHON_CMD} test.py "${TESTS}/10.in" > "${TESTS}/10.out" -echo "Finished test 10" -${PYTHON_CMD} check_test.py 10 "${TESTS}/10.out" "${TESTS}/10.ref.out" + echo "Finished test $i" + ${PYTHON_CMD} check_test.py $i "${TESTS}/$prefix.out" "${TESTS}/$prefix.ref.out" +done # Pylint checks - the pylintrc file being in the same directory # Uncoment the following line to check your implementation's code style :) -# ${PYTHON_CMD} -m pylint ${SRC}/*.py \ No newline at end of file +# ${PYTHON_CMD} -m pylint ${SRC}/*.py diff --git a/assignments/1-marketplace/skel/test.py b/assignments/1-marketplace/skel/test.py index e875caef063cd45c6db7874b1f1c37696e4dd466..857b691e66c7d20ca51e1a678aa394c3270d51af 100644 --- a/assignments/1-marketplace/skel/test.py +++ b/assignments/1-marketplace/skel/test.py @@ -3,7 +3,7 @@ This module runs the homework's solution on a given testfile Computer Systems Architecture Course Assignment 1 -March 2021 +March 2020 """ import sys