diff --git a/Makefile b/Makefile index fb610447632186fc37edda0a706fe253991fb9c9..9dfeea4f374080afee66193352c02060215917ef 100644 --- a/Makefile +++ b/Makefile @@ -63,7 +63,7 @@ generate_json_report: clean: for dir in $(EXERCISES); do \ - $(MAKE) -C $$dir clean; \ + $(MAKE) -C $(SRC_DIR)/$$dir clean; \ done rm -rf $(BUILD_DIR) $(RESULT_DIR) diff --git a/test/exercise-30/test.sh b/test/exercise-30/test.sh index 7d7931a6b75d195c19dc2d15da1523d2cfed7fc4..db2397ab77f26018d61c7540b85456f61d6954a8 100755 --- a/test/exercise-30/test.sh +++ b/test/exercise-30/test.sh @@ -2,11 +2,13 @@ EXECUTABLE=$1 +KO=$(readelf -s ${EXECUTABLE} | grep FILE | sed '1d' | awk '{print $8}') + insmod $EXECUTABLE MODULE_MESSAGE=$(dmesg | grep "hello world!") -rmmod $EXECUTABLE || true # 卸载模块有概率会失败,不过我们只需要运行一次。由于 EXECUTABLE 脱离了产物构造路径造成。 +rmmod ${KO%.c} if [ ! -z "$MODULE_MESSAGE" ]; then echo "Test passed." diff --git a/test/exercise-31/test.sh b/test/exercise-31/test.sh index c6341a8914b536fca223cd458708ca6fa645a271..5b5ab255166eb62b2c5696baae7116259e71389e 100755 --- a/test/exercise-31/test.sh +++ b/test/exercise-31/test.sh @@ -2,11 +2,13 @@ EXECUTABLE=$1 +KO=$(readelf -s ${EXECUTABLE} | grep FILE | sed '1d' | awk '{print $8}') + insmod $EXECUTABLE factorial_input=5 MODULE_MESSAGE=$(dmesg | grep "Factorial of 5 is 120") -rmmod $EXECUTABLE || true # 卸载模块有概率会失败,不过我们只需要运行一次。由于 EXECUTABLE 脱离了产物构造路径造成。 +rmmod ${KO%.c} if [ ! -z "$MODULE_MESSAGE" ]; then echo "Test passed." diff --git a/test/exercise-32/test.sh b/test/exercise-32/test.sh index 109879c3b6432e895b06d782aee4cceef9dd84e4..2ba48d46e5e484d71c6d75f5bab0689cb66d51e1 100755 --- a/test/exercise-32/test.sh +++ b/test/exercise-32/test.sh @@ -2,11 +2,13 @@ EXECUTABLE=$1 +KO=$(readelf -s ${EXECUTABLE} | grep FILE | sed '1d' | awk '{print $8}') + insmod $EXECUTABLE reverse_string_input="hello,world" MODULE_MESSAGE=$(dmesg | grep "Reversed string: dlrow,olleh") -rmmod $EXECUTABLE || true # 卸载模块有概率会失败,不过我们只需要运行一次。由于 EXECUTABLE 脱离了产物构造路径造成。 +rmmod ${KO%.c} if [ ! -z "$MODULE_MESSAGE" ]; then echo "Test passed." diff --git a/test/exercise-33/test.sh b/test/exercise-33/test.sh index 2f291fe51875971ee619c4886ff1801f1f5f604f..6fbd257873ccfd4d0d83e50ca24190a38e711d8b 100755 --- a/test/exercise-33/test.sh +++ b/test/exercise-33/test.sh @@ -2,11 +2,13 @@ EXECUTABLE=$1 +KO=$(readelf -s ${EXECUTABLE} | grep FILE | sed '1d' | awk '{print $8}') + insmod $EXECUTABLE average_input=5,10,15,20,25 MODULE_MESSAGE=$(dmesg | grep "Average of the array: 15") -rmmod $EXECUTABLE || true # 卸载模块有概率会失败,不过我们只需要运行一次。由于 EXECUTABLE 脱离了产物构造路径造成。 +rmmod ${KO%.c} if [ ! -z "$MODULE_MESSAGE" ]; then echo "Test passed." diff --git a/test/exercise-34/test.sh b/test/exercise-34/test.sh index 7d05e586e2c9b18ba6fd1a6979f58e0e8834c18a..009e876d9489977fc6ae8482cddba85e1445b63e 100755 --- a/test/exercise-34/test.sh +++ b/test/exercise-34/test.sh @@ -2,11 +2,13 @@ EXECUTABLE=$1 +KO=$(readelf -s ${EXECUTABLE} | grep FILE | sed '1d' | awk '{print $8}') + insmod $EXECUTABLE ls_array_input=3,6,9,12,15 ls_target=12 MODULE_MESSAGE=$(dmesg | grep "Index of 12 in the array: 3") -rmmod $EXECUTABLE || true # 卸载模块有概率会失败,不过我们只需要运行一次。由于 EXECUTABLE 脱离了产物构造路径造成。 +rmmod ${KO%.c} if [ ! -z "$MODULE_MESSAGE" ]; then echo "Test passed." diff --git a/test/exercise-35/test.sh b/test/exercise-35/test.sh index e3d715da74358b2c69ef6c361b698cf84573e355..c9f23f3eb81f1f2eb91fcf9935bf0051afcfbcfc 100755 --- a/test/exercise-35/test.sh +++ b/test/exercise-35/test.sh @@ -2,6 +2,8 @@ EXECUTABLE=$1 +KO=$(readelf -s ${EXECUTABLE} | grep FILE | sed '1d' | awk '{print $8}') + MODULE_MESSAGE_1=$(dmesg | grep "Delay 2s!") insmod $EXECUTABLE @@ -10,7 +12,7 @@ sleep 3 MODULE_MESSAGE_2=$(dmesg | grep "Delay 2s!") -rmmod $EXECUTABLE || true # 卸载模块有概率会失败,不过我们只需要运行一次。由于 EXECUTABLE 脱离了产物构造路径造成。 +rmmod ${KO%.c} if [ -n "$MODULE_MESSAGE_2" ] && [ -z "$MODULE_MESSAGE_1" ]; then echo "Test passed."