#!/usr/bin/env bash # Test config file and extra config dir. # Use clixon_cli and assume clixon_backend/restconf/netconf behaves the same # Start without configdir as baseline # Start with wrong configdir # Start with empty configfile # Start with 1 extra configfile # Start with 2 extra configfiles # Start with 2 extra configfiles + command-line # Two options are used for testing: # CLICON_MODULE_SET_ID is a single var (replaced) # CLICON_FEATURE is a list var (append) # Check subconfigs, ie /restconf/server-cert-path used since it does not have default # # Magic line must be first in script (see README.md) s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi APPNAME=example cfg=$dir/conf_yang.xml cdir=$dir/conf.d cfile1=$cdir/01a.xml cfile2=$cdir/02a.xml cfile3=$cdir/03a.xml cfile4=$cdir/04a.xxxml rm -rf $cdir mkdir $cdir cat < $cfg /usr/local/var/run/$APPNAME.sock /usr/local/var/run/$APPNAME.pidfile /usr/local/var/$APPNAME ${YANG_INSTALLDIR} $dir 1 test1 EOF # dummy touch $dir/spec.cli new "test params: -f $cfg" new "Start without configdir as baseline" cat < $cfile1 2 test2 EOF expectpart "$($clixon_cli -1 -f $cfg -C xml)" 0 "1" "test1" --not-- "test2" new "Start with wrong configdir" cat < $cfg $dir/dontexist /usr/local/var/run/$APPNAME.sock /usr/local/var/run/$APPNAME.pidfile /usr/local/var/$APPNAME ${YANG_INSTALLDIR} /usr/local/lib/$APPNAME/clispec /usr/local/lib/$APPNAME/cli $APPNAME 1 test1 EOF expectpart "$($clixon_cli -1 -f $cfg -l o -C xml)" 255 "UNIX error: CLICON_CONFIGDIR:" "opendir: No such file or directory" new "Start with wrong configdir -E override" rm -f $cfile1 cat < $cfg $dir/notexist /usr/local/var/run/$APPNAME.sock /usr/local/var/run/$APPNAME.pidfile /usr/local/var/$APPNAME ${YANG_INSTALLDIR} /usr/local/lib/$APPNAME/clispec /usr/local/lib/$APPNAME/cli $APPNAME 1 test1 EOF expectpart "$($clixon_cli -1 -f $cfg -E $cdir -C xml)" 0 "1" "test1" --not-- "test2" new "Start with empty configdir" cat < $cfg $cdir /usr/local/var/run/$APPNAME.sock /usr/local/var/run/$APPNAME.pidfile /usr/local/var/$APPNAME ${YANG_INSTALLDIR} /usr/local/lib/$APPNAME/clispec /usr/local/lib/$APPNAME/cli $APPNAME 1 test1 foo EOF expectpart "$($clixon_cli -1 -f $cfg -C xml)" 0 "1" "test1" --not-- "test2" new "Check subconfig" expectpart "$($clixon_cli -1 -f $cfg -C xml)" 0 "" "foo" new "Start with 1 extra configfile" cat < $cfile1 2 test2 bar EOF expectpart "$($clixon_cli -1 -f $cfg -C xml)" 0 "2" "test1" "test2" new "Check subconfig override" expectpart "$($clixon_cli -1 -f $cfg -C xml)" 0 "" "bar" new "Start with 2 extra configfiles" cat < $cfile2 3 test3 EOF expectpart "$($clixon_cli -1 -f $cfg -C xml)" 0 "3" "test1" "test2" "test3" new "Start with 2 extra configfiles + command-line -C xml" expectpart "$($clixon_cli -1 -f $cfg -o CLICON_MODULE_SET_ID=4 -o CLICON_FEATURE=test4 -C xml)" 0 "4" "test1" "test2" "test3" "test4" # Ensure two sub-dirs (eg ) only last is present cat < $cfile3 nisse EOF new "Last replaces first" expectpart "$($clixon_cli -1 -f $cfg -C xml)" 0 "" "nisse" --not-- "bar" # Ensure file without .xml suffix is not read cat < $cfile4 laban EOF new "File without .xml is not read" expectpart "$($clixon_cli -1 -f $cfg -C xml)" 0 "" "nisse" --not-- "laban" rm -rf $dir new "endtest" endtest