#!/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 # # 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: sock port (if ipv4 or ipv6) testrun(){ family=$1 sock=$2 port=$3 cat < $cfg $cfg *:* /usr/local/share/clixon clixon-example $family $port $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 fi new "$clixon_cli -1f $cfg show version" expectfn "$clixon_cli -1f $cfg show version" 0 "$version." 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 0 new "IPv4 socket" testrun IPv4 127.0.0.1 7878 #new "IPv6 socket" NYI #testrun IPv6 ::1 7878 rm -rf $dir