Loading exercise-2-tests.sh 0 → 100755 +71 −0 Original line number Diff line number Diff line #!/bin/bash set -euo pipefail # Uncomment the line below to enable debugging #set -x error_handler() { line="*** TESTS HAVE FAILED ***" echo -e "\e[01;31m$line\e[0m" 1>&2 } trap error_handler ERR # === Exercise 1 Tests === # Task 1 - Test 1 # should print 'The number is odd.' for input 1 if echo "1" | ./task-1.sh | grep -v 'odd'; then echo "Task 1 - Test 1: Failed" echo "Expected: 'The number is odd.'" echo "Got: $(echo "1" | ./task-1.sh)" exit 1 else echo "Task 1 - Test 1: Passed" fi # Task 1 - Test 2 # should print 'The number is even.' for input 4 if echo "4" | ./task-1.sh | grep -v 'even'; then echo "Task 1 - Test 1: Failed" echo "Expected: 'The number is even.'" echo "Got: $(echo "4" | ./task-1.sh)" exit 1 else echo "Task 1 - Test 2: Passed" fi # Task 1 - Test 3 # should print 'The number is odd.' for input 7 if echo "7" | ./task-1.sh | grep -v 'odd'; then echo "Task 1 - Test 1: Failed" echo "Expected: 'The number is odd.'" echo "Got: $(echo "7" | ./task-1.sh)" exit 1 else echo "Task 1 - Test 3: Passed" fi # Task 2 - Test 1 # should print the number of files in /etc if [ "$(./task-2.sh)" -ne "$(ls -1q /etc/ | wc -l)" ]; then echo "Task 2 - Test 1: Failed" echo "Expected: $(ls -1q /etc/ | wc -l)" echo "Got: $(./task-2.sh)" exit 1 else echo "Task 2 - Test 1: Passed" fi # Task 3 - Test 1 # should print the number of files starting with 'k' if [ "$(./task-3.sh)" -ne "$(find . -name "k*" | wc -l)" ]; then echo "Task 3 - Test 1: Failed" echo "Expected: $(find . -name "k*" | wc -l)" echo "Got: $(./task-3.sh)" exit 1 else echo "Task 3 - Test 1: Passed" fi echo "All tests passed!" exit 0 No newline at end of file Loading
exercise-2-tests.sh 0 → 100755 +71 −0 Original line number Diff line number Diff line #!/bin/bash set -euo pipefail # Uncomment the line below to enable debugging #set -x error_handler() { line="*** TESTS HAVE FAILED ***" echo -e "\e[01;31m$line\e[0m" 1>&2 } trap error_handler ERR # === Exercise 1 Tests === # Task 1 - Test 1 # should print 'The number is odd.' for input 1 if echo "1" | ./task-1.sh | grep -v 'odd'; then echo "Task 1 - Test 1: Failed" echo "Expected: 'The number is odd.'" echo "Got: $(echo "1" | ./task-1.sh)" exit 1 else echo "Task 1 - Test 1: Passed" fi # Task 1 - Test 2 # should print 'The number is even.' for input 4 if echo "4" | ./task-1.sh | grep -v 'even'; then echo "Task 1 - Test 1: Failed" echo "Expected: 'The number is even.'" echo "Got: $(echo "4" | ./task-1.sh)" exit 1 else echo "Task 1 - Test 2: Passed" fi # Task 1 - Test 3 # should print 'The number is odd.' for input 7 if echo "7" | ./task-1.sh | grep -v 'odd'; then echo "Task 1 - Test 1: Failed" echo "Expected: 'The number is odd.'" echo "Got: $(echo "7" | ./task-1.sh)" exit 1 else echo "Task 1 - Test 3: Passed" fi # Task 2 - Test 1 # should print the number of files in /etc if [ "$(./task-2.sh)" -ne "$(ls -1q /etc/ | wc -l)" ]; then echo "Task 2 - Test 1: Failed" echo "Expected: $(ls -1q /etc/ | wc -l)" echo "Got: $(./task-2.sh)" exit 1 else echo "Task 2 - Test 1: Passed" fi # Task 3 - Test 1 # should print the number of files starting with 'k' if [ "$(./task-3.sh)" -ne "$(find . -name "k*" | wc -l)" ]; then echo "Task 3 - Test 1: Failed" echo "Expected: $(find . -name "k*" | wc -l)" echo "Got: $(./task-3.sh)" exit 1 else echo "Task 3 - Test 1: Passed" fi echo "All tests passed!" exit 0 No newline at end of file