2018-01-11 19:09:00 +00:00
#!/bin/bash
source ../lib/if.sh
source ../lib/ansi.sh
source ../lib/msg.sh
source ../lib/cfg.sh
TMP = /tmp
testcolList = ( COL1 COL2 COL3 COL4 COL5)
# cfg test
bail( ) {
cat ${ TMP } /test.cfg
rm ${ TMP } /test.cfg
exit 1
}
_test_cfg_set_file( ) {
_msg EXEC "Testing _cfg_set_file()"
_cfg_set_file ${ TMP } /test.cfg
[ [ " ${ _CFG_PATH } " != " ${ TMP } /test.cfg " ] ] && { _msg FAIL " _test_cfg_set_file(): \${_CFG_PATH} is ' ${ _CFG_PATH } ' rather than the expected ' ${ TMP } /test.cfg' " ; }
[ [ " ${ _CFG_TMP_PATH } " != " ${ TMP } /.test.cfg " ] ] && { _msg FAIL " _test_cfg_set_file(): \${_CFG_TMP_PATH} is ' ${ _CFG_TMP_PATH } ' rather than the expected ' ${ TMP } /.test.cfg " ; }
_msg OK
}
_test_cfg_create( ) {
_msg EXEC "Testing _cfg_create()"
local CMD = " _cfg_create ${ testcolList [@] } "
eval ${ CMD } >${ STDERR } 2>& 1 || { _msg FAIL "_test_cfg_create(): Error in function execution" ; }
local FC_OUTPUT = " $( cat ${ TMP } /test.cfg) "
local EX_OUTPUT = " $( printf '%s\t' ${ testcolList [@] } ) "
[ [ " ${ FC_OUTPUT } " != " ${ EX_OUTPUT } " ] ] && { _msg FAIL " _test_cfg_create(): Output ' ${ FC_OUTPUT } ' expected to be ' ${ EX_OUTPUT } ' " ; }
_msg OK
}
_test_cfg_column_to_nf( ) {
_msg EXEC "Testing _cfg_column_to_nf()"
local argList = ( all ${ testcolList [@] } )
_cfg_column_to_nf ${ argList [1] } >${ STDERR } 2>& 1 || { _msg FAIL "test_cfg_column_to_nf(): Error in function execution" ; }
for no in { 0..5} ; do
local FC_OUTPUT = " $( _cfg_column_to_nf ${ argList [ ${ no } ] } ) "
local EX_OUTPUT = " ${ no } "
[ [ ${ FC_OUTPUT } -ne ${ EX_OUTPUT } ] ] && { _msg FAIL " _test_cfg_column_to_nf(): Output ' ${ FC_OUTPUT } ' expected to be ' ${ EX_OUTPUT } ' " ; }
done
_msg OK
}
_test_cfg_print( ) {
_msg EXEC "Testing _cfg_print()"
local argList = ( all 1)
local CMD = " _cfg_print ${ argList [@] } "
eval ${ CMD } >${ STDERR } 2>& 1 || { _msg FAIL "_test_cfg_print(): Error in function execution" ; }
local FC_OUTPUT = " $( eval ${ CMD } ) "
local EX_OUTPUT = " $( printf '%s\t' ${ testcolList [@] } ) "
[ [ " ${ FC_OUTPUT } " != " ${ EX_OUTPUT } " ] ] && { _msg FAIL " _test_cfg_print(): Output ' ${ FC_OUTPUT } ' expected to be ' ${ EX_OUTPUT } ' " ; }
_msg OK
}
_test_cfg_insert_row( ) {
_msg EXEC "Testing _cfg_insert_row()"
local argList = ( EL1 EL2 EL3 EL4 EL5)
local CMD = " _cfg_insert_row ${ argList [@] } "
eval ${ CMD } >${ STDERR } 2>& 1 || { _msg FAIL "_test_cfg_insert_row(): Error in function execution" ; }
local FC_OUTPUT = " $( _cfg_print all 2) "
local EX_OUTPUT = " $( printf '%s\t' ${ argList [@] } ) "
[ [ " ${ FC_OUTPUT } " != " ${ EX_OUTPUT } " ] ] && { _msg FAIL " _test_cfg_insert_row(): Output ' ${ FC_OUTPUT } ' expected to be ' ${ EX_OUTPUT } ' " ; }
awk 'BEGIN {OFS="\t"}; {if (NR != 2) {print $0}}' ${ _CFG_PATH } > ${ _CFG_TMP_PATH } && mv ${ _CFG_TMP_PATH } ${ _CFG_PATH }
_msg OK
}
_test_cfg_insert_column( ) {
_msg EXEC "Testing _cfg_insert_column()"
local argList = ( COL6)
local CMD = " _cfg_insert_column ${ argList [@] } "
eval ${ CMD } >${ STDERR } 2>& 1 || { _msg FAIL "_test_cfg_insert_column(): Error in function execution" ; }
local fcoutputList = ( $( _cfg_print all 1) )
local exoutputList = ( ${ testcolList [@] } COL6)
[ [ " ${ fcoutputList [@] } " != " ${ exoutputList [@] } " ] ] && { _msg FAIL " _test_cfg_insert_column(): Output ' ${ fcoutputList [@] } ' expected to be ' ${ exoutputList [@] } ' " ; }
awk 'BEGIN {OFS="\t"}; {$6=""; print $0}' ${ _CFG_PATH } > ${ _CFG_TMP_PATH } && mv ${ _CFG_TMP_PATH } ${ _CFG_PATH }
_msg OK
}
_test_cfg_change( ) {
_msg EXEC "Testing _cfg_change()"
_cfg_insert_row ${ testcolList [@] }
local argList = ( COL1 2 EL1_CH)
local CMD = " _cfg_change ${ argList [@] } "
eval ${ CMD } >${ STDERR } 2>& 1 || { _msg FAIL "_test_cfg_change(): Error in function execution" ; }
local FC_OUTPUT = " $( _cfg_print COL1 2) "
local EX_OUTPUT = "EL1_CH"
[ [ " ${ FC_OUTPUT } " != " ${ EX_OUTPUT } " ] ] && { _msg FAIL " _test_cfg_change(): Output ' ${ FC_OUTPUT } ' expected to be ' ${ EX_OUTPUT } ' " ; }
_cfg_drop_row 2
_msg OK
}
_test_cfg_drop_row( ) {
_msg EXEC "Testing _cfg_drop_row()"
_cfg_insert_row ${ testcolList [@] }
local argList = ( 2)
local CMD = " _cfg_drop_row ${ argList [@] } "
eval ${ CMD } >${ STDERR } 2>& 1 || { _msg FAIL "_test_cfg_drop_row(): Error in function execution" ; }
FC_OUTPUT = " $( awk '{print NR}' ${ TMP } /test.cfg | wc -l) "
EX_OUTPUT = 1
[ [ ${ FC_OUTPUT } != ${ EX_OUTPUT } ] ] && { _msg FAIL " _test_cfg_drop_row(): Output ' ${ FC_OUTPUT } ' expected to be ${ EX_OUTPUT } ' " ; }
_msg OK
}
_test_cfg_drop_column( ) {
_msg EXEC "Testing _cfg_drop_column()"
_cfg_insert_column "COL6"
local argList = "COL6"
local CMD = " _cfg_drop_column ${ argList [@] } "
eval ${ CMD } >${ STDERR } 2>& 1 || { _msg FAIL "_test_cfg_drop_column(): Error in function execution" ; }
FC_OUTPUT = " $( printf '%s ' $( awk 'BEGIN{OFS="\t"}; {if (NR == 1) {print $0}}' ${ _CFG_PATH } ) ) "
EX_OUTPUT = " $( printf '%s ' ${ testcolList [@] } ) "
[ [ " ${ FC_OUTPUT } " != " ${ EX_OUTPUT } " ] ] && { _msg FAIL " _test_cfg_drop_column(): Output ' ${ FC_OUTPUT } ' expected to be ' ${ EX_OUTPUT } ' " ; }
_msg OK
}
_test_cfg_query( ) {
_msg EXEC "Testing _cfg_query"
_cfg_insert_row "EL1 EL2 EL3 EL4 EL5"
_cfg_insert_row "EL6 EL7 EL8 EL9 EL10"
2018-01-11 20:05:36 +00:00
local ARG = '$1=="EL6"'
2018-01-11 19:09:00 +00:00
local CMD = " _cfg_query ' ${ ARG } ' "
eval ${ CMD } >${ STDERR } 2>& 1 || { _msg FAIL "_test_cfg_query(): Error in function execution" ; }
FC_OUTPUT = $( eval ${ CMD } )
EX_OUTPUT = 3
[ [ " ${ FC_OUTPUT } " != " ${ EX_OUTPUT } " ] ] && { _msg FAIL " _test_cfg_query(): Output ' ${ FC_OUTPUT } ' expected to be ' ${ EX_OUTPUT } ' " ; }
awk 'BEGIN {OFS="\t"}; {if (NR == 1) {print $0}}' ${ _CFG_PATH } > ${ _CFG_TMP_PATH } && mv ${ _CFG_TMP_PATH } ${ _CFG_PATH }
_msg OK
}
testList = ( cfg_set_file cfg_create cfg_column_to_nf cfg_print cfg_query cfg_insert_row cfg_insert_column cfg_drop_row cfg_drop_column cfg_change)
_msg ECHO "cfg function test suite started"
for test in ${ testList [@] } ; do
eval _test_${ test }
done
rm ${ TMP } /test.cfg
_msg ECHO "cfg function test suite ended"