From 4ffa37c11bf86fe429edfde166a991275639fd39 Mon Sep 17 00:00:00 2001 From: Charles Date: Tue, 21 Jan 2020 23:22:46 +0100 Subject: Testing max values --- test.sh | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 92 insertions(+), 25 deletions(-) (limited to 'test.sh') diff --git a/test.sh b/test.sh index 1c7fa9b..6222850 100755 --- a/test.sh +++ b/test.sh @@ -5,36 +5,104 @@ if [ $# -lt 1 ]; then 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 " +MAX_INT=2147483647 +MIN_INT=-2147483648 +MAX_INT1=2147483648 +MIN_INT1=-2147483649 + +MAX_LONG=9223372036854775807 +MIN_LONG=-9223372036854775808 +MAX_LONG1=9223372036854775808 +MIN_LONG1=-9223372036854775809 + +red() { + echo -n "\033[31m$1\033[0m " +} + +green() { + echo -n "\033[32m$1\033[0m " +} + +assert() { + if [ $# -ne 2 ]; then + red "[KO] " + return 0 fi - if [ $(./push_swap)="" ]; then - echo "\033[32m[OK]\033[0m" - else - echo "\033[32m[KO]\033[0m" + if [ -z $1 -o -z $2 ]; then + red "[KO] " + return 0 fi - - echo -n "Not digit character " - if [ ! $(./checker 1 2 3 four)="Error\n" ]; then - echo -n "\033[32m[OK]\033[0m " + if [ $1 = $2 ]; then + green "[OK] " else - echo -n "\033[32m[KO]\033[0m " + red "[KO] " fi - if [ ! $(./checker -1 2 3-3)="Error\n" ]; then - echo -n "\033[32m[OK]\033[0m " +} + +assert_ok() { + assert $1 "OK" +} + +assert_error() { + assert $1 "Error" +} + +if [ $1 = "--error" ]; then + echo -n "No arguments: " + if [ -z `./checker` ]; then + green "[OK] " else - echo -n "\033[32m[KO]\033[0m " + red "[KO] " fi - if [ ! $(./checker 1_000 23 0 -1)="Error\n" ]; then - echo -n "\033[32m[OK]\033[0m " + if [ -z `./push_swap` ]; then + green "[OK] " else - echo -n "\033[32m[KO]\033[0m " + red "[KO] " fi + echo -n "\nNot digit character " + 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 " + 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` + assert_error `./checker -100 2 -100 2>&1` + assert_error `./checker 1 1 2>&1` + assert_error `./push_swap 1 1 2 3 2>&1` + assert_error `./push_swap 1 2 3 3 2>&1` + assert_error `./push_swap -1 0 2 0 2>&1` + 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` "" + assert_error `./push_swap $MIN_LONG1 2>&1` + assert_error `./push_swap $MAX_LONG1 2>&1` + exit fi @@ -52,10 +120,9 @@ 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) +for i in `seq 1 $test_nb`; do + arg=`random_stack.rb $start $end` + result=`push_swap $arg | ./checker $arg` case $result in OK) -- cgit