aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2021-03-05 15:45:47 +0100
committerCharles Cabergs <me@cacharle.xyz>2021-03-05 15:45:47 +0100
commit13c100a7dcae66f78339019dd272af8b177e79ba (patch)
tree6d1a97181ae76350bcefe9395b8640e21d06ce4c
parent7513e3aa5266733470cf5033a771909b92978c78 (diff)
downloadpush_swap-13c100a7dcae66f78339019dd272af8b177e79ba.tar.gz
push_swap-13c100a7dcae66f78339019dd272af8b177e79ba.tar.bz2
push_swap-13c100a7dcae66f78339019dd272af8b177e79ba.zip
Updated test.sh to be complient to shellcheck
-rw-r--r--.gitignore13
-rwxr-xr-xrandom_stack.rb8
-rwxr-xr-xtest.sh150
3 files changed, 89 insertions, 82 deletions
diff --git a/.gitignore b/.gitignore
index b855eaf..708a2d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,13 @@
-a.out
-checker
-push_swap
-!src/checker
-!src/push_swap
*.o
*.ghc
*.dSYM
+
+a.out
+tags
benchmark.json
result.log
+
+checker
+push_swap
+!src/checker
+!src/push_swap
diff --git a/random_stack.rb b/random_stack.rb
deleted file mode 100755
index ab6ad35..0000000
--- a/random_stack.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/ruby
-
-if ARGV.length != 2
- puts "Usage: #{$PROGRAM_NAME} start end"
- exit
-end
-
-puts (ARGV[0]..ARGV[1]).to_a.shuffle.join(" ")
diff --git a/test.sh b/test.sh
index 53cb6ff..2f39818 100755
--- a/test.sh
+++ b/test.sh
@@ -18,12 +18,12 @@ MIN_LONG1=-9223372036854775809
test_status=0
red() {
- echo "$(tput setaf 1)$1$(tput sgr 0)\c"
+ printf "%s%s%s" "$(tput setaf 1)" "$1" "$(tput sgr 0)"
test_status=1
}
green() {
- echo "$(tput setaf 2)$1$(tput sgr 0)\c"
+ printf "%s%s%s" "$(tput setaf 2)" "$1" "$(tput sgr 0)"
}
assert() {
@@ -31,15 +31,15 @@ assert() {
red "[KO] "
return 0
fi
- if [ -z $1 ]; then
+ if [ -z "$1" ]; then
red "[KO] "
return 0
fi
- if [ -z $2 ]; then
+ if [ -z "$2" ]; then
red "[KO] "
return 0
fi
- if [ $1 = $2 ]; then
+ if [ "$1" = "$2" ]; then
green "[OK] "
else
red "[KO] "
@@ -47,93 +47,105 @@ assert() {
}
assert_ok() {
- assert $1 "OK"
+ assert "$1" "OK"
}
assert_error() {
- assert $1 "Error"
+ assert "$1" "Error"
}
-if [ $1 = "--error" ]; then
- echo "No arguments: \c"
- if [ -z `./checker` ]
- then green "[OK] "
- else red "[KO] "
+if [ "$1" = "--error" ]; then
+ printf "No arguments:\n"
+ 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 "\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 "\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`
- 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 "\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] "
+ printf "\nNot digit character\n"
+ 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)"
+
+ printf "\nDuplicates\n"
+ 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)"
+
+ printf "\nMax/min int\n"
+ assert_ok "$(printf "" | ./checker $MIN_INT 2>&1)"
+ assert_ok "$(printf "" | ./checker $MAX_INT 2>&1)"
+ assert_error "$(printf "" | ./checker $MIN_INT1 2>&1)"
+ assert_error "$(printf "" | ./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] "
+ 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`
+ 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`
+ printf "\nMax/min long\n"
+ assert_error "$(printf "" | ./checker $MIN_LONG 2>&1)"
+ assert_error "$(printf "" | ./checker $MAX_LONG 2>&1)"
+ assert_error "$(printf "" | ./checker $MIN_LONG1 2>&1)"
+ assert_error "$(printf "" | ./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)"
- exit $test_status
+ exit "$test_status"
fi
-test_nb=$1
+test_nb="$1"
-if [ -z $2 ]; then
+if [ -z "$2" ]
+then
start=1
else
- start=$2
+ start="$2"
fi
-if [ -z $3 ]; then
- end=100
+if [ -z "$3" ]
+then
+ end=100
else
- end=$3
+ end="$3"
fi
-for i in `seq 1 $test_nb`; do
- arg=`./random_stack.rb $start $end`
- result=`./push_swap $arg | ./checker $arg`
+for i in $(seq 1 "$test_nb")
+do
+ arg="$(seq "$start" "$end" | shuf | xargs)"
+ # shellcheck disable=SC2086
+ result="$(./push_swap $arg | ./checker $arg 2>&1)"
- case $result in
+ case "$result" in
"OK")
green "."
;;
@@ -152,4 +164,4 @@ for i in `seq 1 $test_nb`; do
esac
done
-exit $test_status
+exit "$test_status"