aboutsummaryrefslogtreecommitdiff
path: root/test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test.sh')
-rwxr-xr-xtest.sh77
1 files changed, 77 insertions, 0 deletions
diff --git a/test.sh b/test.sh
new file mode 100755
index 0000000..1c7fa9b
--- /dev/null
+++ b/test.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+if [ $# -lt 1 ]; then
+ echo "Usage $0 test_number [start] [end]"
+ exit
+fi
+
+if [ $1 = "--error" ]; then
+ echo -n "No arguments: "
+ if [ $(./checker)="" ]; then
+ echo -n "\033[32m[OK]\033[0m "
+ else
+ echo -n "\033[32m[KO]\033[0m "
+ fi
+ if [ $(./push_swap)="" ]; then
+ echo "\033[32m[OK]\033[0m"
+ else
+ echo "\033[32m[KO]\033[0m"
+ fi
+
+ echo -n "Not digit character "
+ if [ ! $(./checker 1 2 3 four)="Error\n" ]; then
+ echo -n "\033[32m[OK]\033[0m "
+ else
+ echo -n "\033[32m[KO]\033[0m "
+ fi
+ if [ ! $(./checker -1 2 3-3)="Error\n" ]; then
+ echo -n "\033[32m[OK]\033[0m "
+ else
+ echo -n "\033[32m[KO]\033[0m "
+ fi
+ if [ ! $(./checker 1_000 23 0 -1)="Error\n" ]; then
+ echo -n "\033[32m[OK]\033[0m "
+ else
+ echo -n "\033[32m[KO]\033[0m "
+ fi
+
+ exit
+fi
+
+test_nb=$1
+
+if [ -z $2 ]; then
+ start=1
+else
+ start=$2
+fi
+
+if [ -z $3 ]; then
+ end=100
+else
+ end=$3
+fi
+
+for i in $(seq 1 $test_nb); do
+ arg=$(./random_stack.rb $start $end)
+ echo $arg
+ result=$(./push_swap $arg | ./checker $arg)
+
+ case $result in
+ OK)
+ echo -n "\033[32m.\033[0m"
+ ;;
+ KO)
+ echo -n "\033[31m!\033[0m"
+ echo "Test $i failed with: $arg" >> result.log
+ ;;
+ Error)
+ echo -n "\033[31m!\033[0m"
+ echo "Test $i failed due to parsing error with: $arg" >> result.log
+ ;;
+ *)
+ echo "Unexpected output"
+ exit
+ ;;
+ esac
+done