This repository has been archived on 2024-08-13. You can view files and clone it, but cannot push or open issues or pull requests.
bunc/test/test-ansi.sh
ayakael fca165b274
* Changed name for _log function to _msg, added bail() function.
* Created _ansi function library to set terminal properties like
  cursor position and text color.
* Created _if function library, a set of simple if statements.
  Added _if_array_contains, _if_is_integer, _if_is defined,
  if_has_value
2018-01-06 20:30:09 -09:00

109 lines
3 KiB
Bash

#!/bin/bash
clean() {
exit
}
source ../lib/msg.sh
source ../lib/ansi.sh
source ../lib/if.sh
# Possible input arrays
# All commands
cmdArray=(lt dn up rt mc sc rc cl cs fg bf bg rs)
# No argument commands
cmdopt_noargArray=(sc rc cl cs rs)
# One argument commands
cmdopt_intArray=(lt dn up rtc)
# Coord only array
cmdopt_coordArray=(mc)
# Color only commands
cmdopt_colorArray=(fg bf bg)
# All colors
coloptArray=(blk red grn yel blu mag cyn gry)
_test_cmd_to_ansi() {
_msg EXEC "Testing _cmd_to_ansi function"
cmdArray=(lt dn up rt mc sc rc cl cs fg bf bg rs)
resultArray=(A B C D H s u K 2J m m m m)
for no in {0..12}; do
if ! [ "$(_cmd_to_ansi ${cmdArray[${no}]} ${cmdArray[@]})" == "${resultArray[${no}]}" ]; then
_cmd_to_ansi ${cmdArray[${no}]} ${cmdArray[@]} > ${STDERR}
_msg FAIL
fi
done
_msg OK
}
_test_color_to_ansi() {
_msg EXEC "Testing _color_to_ansi function"
cmdArray=(blk red grn yel blu mag cyn gry)
resultArray=(30 31 32 33 34 35 36 37)
for no in {0..7}; do
if ! [ "$(_color_to_ansi ${cmdArray[${no}]} ${cmdArray[@]})" == "${resultArray[${no}]}" ]; then
_color_to_ansi ${cmdArray[${no}]} ${cmdArray[@]} > ${STDERR}
_msg FAIL
fi
done
_msg OK
}
_test_arg_to_ansi() {
_msg EXEC "Testing _arg_to_ansi"
cmdArray=(fg bf bg up mc rs)
argArray=(red red red 2 '4:2' ' ')
coloptArray=(blk red grn yel blu mag cyn gry)
resultArray=(31 '1;31' 41 2 '4:2' '0')
for no in {0..5}; do
if ! [ "$(_arg_to_ansi ${cmdArray[${no}]} ${argArray[${no}]} ${coloptArray[@]})" == "${resultArray[${no}]}" ]; then
_arg_to_ansi ${cmdArray[${no}]} ${argArray[${no}]} ${coloptArray[@]} > ${STDERR}
_msg FAIL
fi
done
_msg OK
}
_test_ansi_color() {
cmdArray=(fg bf bg)
coloptArray=(blk red grn yel blu mag cyn gry)
resultArray=('\033[30m' '\033[31m' '\033[32m' '\033[1;33m' '\033[1;34m' '\033[1;35m')
for cmd in ${cmdArray[@]}; do
for col in ${coloptArray[@]}; do
echo "Testing _color $(_ansi ${cmd} ${col})${cmd} ${col}"
done
done
}
_msg ECHO "Begin ansi.sh test"
_test_cmd_to_ansi
_test_color_to_ansi
_test_arg_to_ansi
_test_ansi_color
#_msg ECHO "Testing relative cursor commands"
#_msg INDENT +1
#for cmd in lt dn up rt; do
# _msg ECHO "Testing ${cmd}"
# _msg EXEC "Testing sanity check for ${CMD} set at 0 units"
# if $(_ansi ${cmd} 0 >${STDERR} 2>&1); then
# _msg OK
# else
# _msg FAIL
# fi
# _msg EXEC "Testing sanity check for ${CMD} set at no args"
# if ! $(_ansi ${cmd} >${STDERR} 2>&1) ;then
# _msg OK
# else
# _msg FAIL
# fi
#
# _msg EXEC "Testing cursor change for ${CMD} set at 5 units"
# _ansi ${cmd} 5
#done
#for cmd in fg bfg bg; do
# for col in blk red grn yel blu mag cyn gry; do
# echo "Testing _color $(_ansi ${cmd} ${col})${cmd} ${col}$(_ansi rs)"
# done
#done
_msg ECHO "End color.sh test"