Test: Added detail env var to sum.sh, Changed make test to include detailed test

This commit is contained in:
Olof hagsand 2022-07-21 08:26:49 +02:00
parent 42efb59a75
commit e724dd7f40
5 changed files with 34 additions and 7 deletions

View file

@ -83,7 +83,7 @@ snmp_common_handler(netsnmp_mib_handler *handler,
{ {
int retval = -1; int retval = -1;
netsnmp_variable_list *requestvb; /* sub of request */ netsnmp_variable_list *requestvb; /* sub of request */
cbuf *cb; cbuf *cb = NULL;
if (request == NULL || shp == NULL){ if (request == NULL || shp == NULL){
clicon_err(OE_XML, EINVAL, "request or shp is null"); clicon_err(OE_XML, EINVAL, "request or shp is null");
@ -832,7 +832,7 @@ snmp_table_get(clicon_handle h,
yang_stmt *yk; yang_stmt *yk;
char *xpath = NULL; char *xpath = NULL;
cvec *cvk_orig; cvec *cvk_orig;
cvec *cvk_val; cvec *cvk_val = NULL;
int i; int i;
cg_var *cv; cg_var *cv;
char *defaultval = NULL; char *defaultval = NULL;
@ -951,7 +951,7 @@ snmp_table_set(clicon_handle h,
yang_stmt *yrestype = NULL; yang_stmt *yrestype = NULL;
char *xpath = NULL; char *xpath = NULL;
cvec *cvk_orig; cvec *cvk_orig;
cvec *cvk_val; cvec *cvk_val = NULL;
int i; int i;
cg_var *cv; cg_var *cv;
int ret; int ret;

View file

@ -83,7 +83,7 @@ push:
# therefore the sleep 1 before tests start # therefore the sleep 1 before tests start
test: docker test: docker
./cleanup.sh ; ./start.sh # kill (ignore error) and the start it ./cleanup.sh ; ./start.sh # kill (ignore error) and the start it
sudo docker exec -t clixon-system bash -c 'sleep 2 && cd /usr/local/bin/test && ./sum.sh' sudo docker exec -t clixon-system bash -c 'sleep 2 && cd /usr/local/bin/test && detail=true ./sum.sh'
depend: depend:

View file

@ -75,7 +75,7 @@ static int _transaction_log = 0;
*/ */
static char *_validate_fail_xpath = NULL; static char *_validate_fail_xpath = NULL;
/*! Sub state variable to fail on validate/commit, /*! Sub state variable to fail on validate/commit (not configured)
* Obscure, but a way to first trigger a validation error, next time to trigger a commit error * Obscure, but a way to first trigger a validation error, next time to trigger a commit error
*/ */
static int _validate_fail_toggle = 0; /* fail at validate and commit */ static int _validate_fail_toggle = 0; /* fail at validate and commit */

View file

@ -312,6 +312,7 @@ if $NGINXCHECK; then
fi # systemctl fi # systemctl
fi fi
# Temp directory where all tests write their data to
dir=/var/tmp/$0 dir=/var/tmp/$0
if [ ! -d $dir ]; then if [ ! -d $dir ]; then
mkdir $dir mkdir $dir

View file

@ -8,6 +8,17 @@
: ${pattern:=test_*.sh} : ${pattern:=test_*.sh}
# If set, show details of (first) failing test after all tests completed
: ${detail:=false}
# temp directory, now used only by detail
dir=/var/tmp/$0
if $detail; then
if [ ! -d $dir ]; then
mkdir $dir
fi
fi
# You can specify tests files to exclude using the 'SKIPLIST' variable in a # You can specify tests files to exclude using the 'SKIPLIST' variable in a
# site.sh file. See example in README.md. Files excluded by the 'SKIPLIST' # site.sh file. See example in README.md. Files excluded by the 'SKIPLIST'
# variable have precedence over files included by the 'pattern' variable. # variable have precedence over files included by the 'pattern' variable.
@ -28,20 +39,35 @@ fi
let sumerr=0 # error counter let sumerr=0 # error counter
for testfile in $pattern; do # For lib.sh the variable must be called testfile for testfile in $pattern; do # For lib.sh the variable must be called testfile
echo "Running $testfile" echo "Running $testfile"
./$testfile > /dev/null 2>&1 if $detail; then
./$testfile > $dir/err.log 2>&1
else
./$testfile > /dev/null 2>&1
fi
errcode=$? errcode=$?
if [ $errcode -ne 0 ]; then if [ $errcode -ne 0 ]; then
let sumerr++ let sumerr++
echo -e "\e[31mError in $testfile errcode=$errcode" echo -e "\e[31mError in $testfile errcode=$errcode"
echo -ne "\e[0m" echo -ne "\e[0m"
if $detail; then
detail=false; # Just once for now, print at end
fi
fi fi
done done
if [ $sumerr -eq 0 ]; then if [ $sumerr -eq 0 ]; then
echo "OK" echo "OK"
else else
echo -e "\e[31m"
if [ -f $dir/err.log ]; then
echo "Detailed output of first error:"
echo -ne "\e[0m"
cat $dir/err.log
echo
fi
echo -e "\e[31m${sumerr} Errors" echo -e "\e[31m${sumerr} Errors"
echo -ne "\e[0m" echo -ne "\e[0m"
rm -rf $dir
exit -1 exit -1
fi fi
rm -rf $dir