Commit 10843a91 authored by Giannis Kepas's avatar Giannis Kepas
Browse files

initial exercise 2 tests

parent 8b9d8ca5
Loading
Loading
Loading
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