aboutsummaryrefslogtreecommitdiff
path: root/test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test.sh')
-rwxr-xr-xtest.sh82
1 files changed, 44 insertions, 38 deletions
diff --git a/test.sh b/test.sh
index ed16596..53cb6ff 100755
--- a/test.sh
+++ b/test.sh
@@ -18,12 +18,12 @@ MIN_LONG1=-9223372036854775809
test_status=0
red() {
- echo -n "\033[31m$1\033[0m "
+ echo "$(tput setaf 1)$1$(tput sgr 0)\c"
test_status=1
}
green() {
- echo -n "\033[32m$1\033[0m "
+ echo "$(tput setaf 2)$1$(tput sgr 0)\c"
}
assert() {
@@ -31,7 +31,11 @@ assert() {
red "[KO] "
return 0
fi
- if [ -z $1 -o -z $2 ]; then
+ if [ -z $1 ]; then
+ red "[KO] "
+ return 0
+ fi
+ if [ -z $2 ]; then
red "[KO] "
return 0
fi
@@ -51,27 +55,25 @@ assert_error() {
}
if [ $1 = "--error" ]; then
- echo -n "No arguments: "
- if [ -z `./checker` ]; then
- green "[OK] "
- else
- red "[KO] "
+ echo "No arguments: \c"
+ if [ -z `./checker` ]
+ then green "[OK] "
+ else red "[KO] "
fi
- if [ -z `./push_swap` ]; then
- green "[OK] "
- else
- red "[KO] "
+ if [ -z `./push_swap` ]
+ then green "[OK] "
+ else red "[KO] "
fi
- echo -n "\nNot digit character "
- assert_error `checker 1 2 3 four 2>&1`
+ echo "\nNot digit character \c"
+ assert_error `./checker 1 2 3 four 2>&1`
assert_error `./checker -1 2 3-3 2>&1`
assert_error `./checker 1_000 23 0 -1 2>&1`
assert_error `./push_swap 1 2 3 four 2>&1`
assert_error `./push_swap -1 2 3-3 2>&1`
assert_error `./push_swap 1_000 23 0 -1 2>&1`
- echo -n "\nDuplicates "
+ echo "\nDuplicates \c"
assert_error `./checker 1 1 2 3 2>&1`
assert_error `./checker 1 2 3 3 2>&1`
assert_error `./checker -1 0 2 0 2>&1`
@@ -83,26 +85,30 @@ if [ $1 = "--error" ]; then
assert_error `./push_swap -100 2 -100 2>&1`
assert_error `./push_swap 1 1 2>&1`
- echo -n "\nMax/min int "
- assert_ok `echo -n "" | ./checker $MIN_INT 2>&1`
- assert_ok `echo -n "" | ./checker $MAX_INT 2>&1`
- assert_error `echo -n "" | ./checker $MIN_INT1 2>&1`
- assert_error `echo -n "" | ./checker $MAX_INT1 2>&1`
- assert `push_swap $MIN_INT 2>&1` ""
- assert `push_swap $MAX_INT 2>&1` ""
- assert_error `push_swap $MIN_INT1 2>&1`
- assert_error `push_swap $MAX_INT1 2>&1`
-
-
- echo
- red "Undefined behavior with > MAX_INT values, strtol not working properly"
- echo -n "\nMax/min long "
- assert_ok `echo -n "" | ./checker $MIN_LONG 2>&1`
- assert_ok `echo -n "" | ./checker $MAX_LONG 2>&1`
- assert_error `echo -n "" | ./checker $MIN_LONG1 2>&1`
- assert_error `echo -n "" | ./checker $MAX_LONG1 2>&1`
- assert `./push_swap $MIN_LONG 2>&1` ""
- assert `./push_swap $MAX_LONG 2>&1` ""
+ echo "\nMax/min int \c"
+ assert_ok `echo "\c" | ./checker $MIN_INT 2>&1`
+ assert_ok `echo "\c" | ./checker $MAX_INT 2>&1`
+ assert_error `echo "\c" | ./checker $MIN_INT1 2>&1`
+ assert_error `echo "\c" | ./checker $MAX_INT1 2>&1`
+ if [ -z `./push_swap $MIN_INT 2>&1` ]
+ then green "[OK] "
+ else red "[KO] "
+ fi
+ if [ -z `./push_swap $MAX_INT 2>&1` ]
+ then green "[OK] "
+ else red "[KO] "
+ fi
+ assert_error `./push_swap $MIN_INT1 2>&1`
+ assert_error `./push_swap $MAX_INT1 2>&1`
+
+
+ echo "\nMax/min long \c"
+ assert_error `echo "\c" | ./checker $MIN_LONG 2>&1`
+ assert_error `echo "\c" | ./checker $MAX_LONG 2>&1`
+ assert_error `echo "\c" | ./checker $MIN_LONG1 2>&1`
+ assert_error `echo "\c" | ./checker $MAX_LONG1 2>&1`
+ assert_error `./push_swap $MIN_LONG 2>&1`
+ assert_error `./push_swap $MAX_LONG 2>&1`
assert_error `./push_swap $MIN_LONG1 2>&1`
assert_error `./push_swap $MAX_LONG1 2>&1`
@@ -129,14 +135,14 @@ for i in `seq 1 $test_nb`; do
case $result in
"OK")
- green "\033[32m.\033[0m"
+ green "."
;;
"KO")
- red "\033[31m!\033[0m"
+ red "!"
echo "Test $i failed with: $arg" >> result.log
;;
"Error")
- red "\033[31m!\033[0m"
+ red "!"
echo "Test $i failed due to parsing error with: $arg" >> result.log
;;
*)