#!/usr/bin/env bash # Simple Unix and IP internal socket tests # See also test_nacm_credentials.sh for more advanced credential tests # Magic line must be first in script (see README.md) s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi # Raw unit tester of backend unix socket : ${clixon_util_socket:=clixon_util_socket} # # client <---> backend # ^ is unix, ipv4, ipv6 socket APPNAME=example cfg=$dir/conf.xml fyang=$dir/socket.yang # Set socket family and start backend and run a single cli command to # check socket works # 1: UNIX|IPv4|IPv6 # 2: unix file or ipv4 address or ipv6 address # 3: session-id testrun(){ family=$1 sock=$2 id=$3 cat < $cfg $cfg *:* /usr/local/share/clixon clixon-example $family 4535 $sock /usr/local/lib/$APPNAME/clispec /usr/local/lib/$APPNAME/cli $APPNAME /usr/local/var/$APPNAME/$APPNAME.pidfile /usr/local/var/$APPNAME init false EOF new "test params: -f $cfg" if [ $BE -ne 0 ]; then new "kill old backend" sudo clixon_backend -zf $cfg if [ $? -ne 0 ]; then err fi new "start backend -s init -f $cfg" start_backend -s init -f $cfg new "wait backend" wait_backend fi new "$clixon_cli -1f $cfg show version" expectfn "$clixon_cli -1f $cfg show version" 0 "$version." new "hello session-id 2" expecteof "$clixon_util_socket -a $family -s $sock -D $DBG" 0 "" "3" new "hello session-id 2" expecteof "$clixon_util_socket -a $family -s $sock -D $DBG" 0 "" "4" if [ $BE -ne 0 ]; then new "Kill backend" # Check if premature kill pid=$(pgrep -u root -f clixon_backend) if [ -z "$pid" ]; then err "backend already dead" fi # kill backend stop_backend -f $cfg fi } new "Unix socket" testrun UNIX $dir/sock new "IPv4 socket" testrun IPv4 127.0.0.1 #new "IPv6 socket" NYI #testrun IPv6 ::1 7878 rm -rf $dir # unset conditional parameters unset clixon_util_socket