stream debugging
This commit is contained in:
parent
e0e2e355d7
commit
911e6e6ed3
7 changed files with 83 additions and 32 deletions
|
|
@ -13,11 +13,12 @@
|
|||
# - stream retention time
|
||||
# - native vs nchan implementation
|
||||
# Focussing on 1-3
|
||||
# 2a) start sub 8s - see 2 notifications
|
||||
# 2b) start sub 8s - stoptime after 5s - see 1 notifications
|
||||
# 2c) start sub 8s - replay from start -8s - see 4 notifications
|
||||
# 2d) start sub 8s - replay from start -8s to stop +4s - see 3 notifications
|
||||
# 2e) start sub 8s - replay from -90s w retention 60s - see 10 notifications
|
||||
# 2a) start sub 8s - expect 2 notifications
|
||||
# 2b) start sub 8s - stoptime after 5s - expect 1 notifications
|
||||
# 2c) start sub 8s - replay from start -8s - expect 4 notifications
|
||||
# 2d) start sub 8s - replay from start -8s to stop +4s - expect 3 notifications
|
||||
# 2e) start sub 8s - replay from -90s w retention 60s - expect 10 notifications
|
||||
# Note the sleeps are mainly for valgrind usage
|
||||
|
||||
APPNAME=example
|
||||
UTIL=../util/clixon_util_stream
|
||||
|
|
@ -127,7 +128,7 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '<rpc><get><filter type="xpath"
|
|||
#
|
||||
# 1.2 Netconf stream subscription
|
||||
new "netconf EXAMPLE subscription"
|
||||
expectwait "$clixon_netconf -qf $cfg -y $fyang" '<rpc><create-subscription><stream>EXAMPLE</stream></create-subscription></rpc>]]>]]>' '^<rpc-reply><ok/></rpc-reply>]]>]]><notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"><eventTime>20' 5
|
||||
expectwait "$clixon_netconf -qf $cfg -y $fyang" '<rpc><create-subscription><stream>EXAMPLE</stream></create-subscription></rpc>]]>]]>' '^<rpc-reply><ok/></rpc-reply>]]>]]><notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"><eventTime>20' 10
|
||||
|
||||
new "netconf subscription with empty startTime"
|
||||
expectwait "$clixon_netconf -qf $cfg -y $fyang" '<rpc><create-subscription><stream>EXAMPLE</stream><startTime/></create-subscription></rpc>]]>]]>' '^<rpc-reply><ok/></rpc-reply>]]>]]><notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"><eventTime>20' 5
|
||||
|
|
@ -148,7 +149,7 @@ expectwait "$clixon_netconf -qf $cfg -y $fyang" '<rpc><create-subscription><stre
|
|||
#NOW=$(date +"%Y-%m-%dT%H:%M:%S")
|
||||
#sleep 10
|
||||
#expectwait "$clixon_netconf -qf $cfg -y $fyang" "<rpc><create-subscription><stream>EXAMPLE</stream><startTime>$NOW</startTime></create-subscription></rpc>]]>]]>" '^<rpc-reply><ok/></rpc-reply>]]>]]><notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"><eventTime>20' 10
|
||||
|
||||
sleep 2
|
||||
#
|
||||
# 2. Restconf RFC8040 stream testing
|
||||
new "2. Restconf RFC8040 stream testing"
|
||||
|
|
@ -156,16 +157,19 @@ new "2. Restconf RFC8040 stream testing"
|
|||
new "restconf event stream discovery RFC8040 Sec 6.2"
|
||||
expectfn "curl -s -X GET http://localhost/restconf/data/ietf-restconf-monitoring:restconf-state/streams" 0 '{"streams": {"stream": \[{"name": "EXAMPLE","description": "Example event stream","replay-support": true,"access": \[{"encoding": "xml","location": "https://localhost/streams/EXAMPLE"}\]}\]}'
|
||||
|
||||
sleep 2
|
||||
new "restconf subscribe RFC8040 Sec 6.3, get location"
|
||||
expectfn "curl -s -X GET http://localhost/restconf/data/ietf-restconf-monitoring:restconf-state/streams/stream=EXAMPLE/access=xml/location" 0 '{"location": "https://localhost/streams/EXAMPLE"}'
|
||||
|
||||
sleep 2
|
||||
# Restconf stream subscription RFC8040 Sec 6.3
|
||||
# Start Subscription w error
|
||||
new "restconf monitor event nonexist stream"
|
||||
expectwait 'curl -s -X GET -H "Accept: text/event-stream" -H "Cache-Control: no-cache" -H "Connection: keep-alive" http://localhost/streams/NOTEXIST' 0 '<errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"><error><error-tag>invalid-value</error-tag><error-type>application</error-type><error-severity>error</error-severity><error-message>No such stream</error-message></error></errors>' 2
|
||||
|
||||
# 2a) start subscription 8s - see 1-2 notifications
|
||||
new "2a) start subscriptions 8s - see 2 notifications"
|
||||
|
||||
# 2a) start subscription 8s - expect 1-2 notifications
|
||||
new "2a) start subscriptions 8s - expect 1-2 notifications"
|
||||
ret=$($UTIL -u http://localhost/streams/EXAMPLE -t 8)
|
||||
expect="data: <notification xmlns=\"urn:ietf:params:xml:ns:netconf:notification:1.0\"><eventTime>${DATE}T[0-9:.]*</eventTime><event><event-class>fault</event-class><reportingEntity><card>Ethernet0</card></reportingEntity><severity>major</severity></event>"
|
||||
|
||||
|
|
@ -174,13 +178,13 @@ if [ -z "$match" ]; then
|
|||
err "$expect" "$ret"
|
||||
fi
|
||||
nr=$(echo "$ret" | grep -c "data:")
|
||||
if [ $nr != 1 -a $nr != 2 ]; then
|
||||
if [ $nr -lt 1 -o $nr -gt 2 ]; then
|
||||
err 2 "$nr"
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
# 2b) start subscription 8s - stoptime after 5s - see 1-2 notifications
|
||||
new "2b) start subscriptions 8s - stoptime after 5s - see 1 notifications"
|
||||
# 2b) start subscription 8s - stoptime after 5s - expect 1-2 notifications
|
||||
new "2b) start subscriptions 8s - stoptime after 5s - expect 1-2 notifications"
|
||||
ret=$($UTIL -u http://localhost/streams/EXAMPLE -t 8 -e +10)
|
||||
expect="data: <notification xmlns=\"urn:ietf:params:xml:ns:netconf:notification:1.0\"><eventTime>${DATE}T[0-9:.]*</eventTime><event><event-class>fault</event-class><reportingEntity><card>Ethernet0</card></reportingEntity><severity>major</severity></event>"
|
||||
match=$(echo "$ret" | grep -Eo "$expect")
|
||||
|
|
@ -188,13 +192,12 @@ if [ -z "$match" ]; then
|
|||
err "$expect" "$ret"
|
||||
fi
|
||||
nr=$(echo "$ret" | grep -c "data:")
|
||||
if [ $nr != 1 -a $nr != 2 ]; then
|
||||
if [ $nr -lt 1 -o $nr -gt 2 ]; then
|
||||
err 1 "$nr"
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
# 2c
|
||||
new "2c) start sub 8s - replay from start -8s - see 3-4 notifications"
|
||||
new "2c) start sub 8s - replay from start -8s - expect 3-4 notifications"
|
||||
ret=$($UTIL -u http://localhost/streams/EXAMPLE -t 10 -s -8)
|
||||
expect="data: <notification xmlns=\"urn:ietf:params:xml:ns:netconf:notification:1.0\"><eventTime>${DATE}T[0-9:.]*</eventTime><event><event-class>fault</event-class><reportingEntity><card>Ethernet0</card></reportingEntity><severity>major</severity></event>"
|
||||
match=$(echo "$ret" | grep -Eo "$expect")
|
||||
|
|
@ -202,10 +205,37 @@ if [ -z "$match" ]; then
|
|||
err "$expect" "$ret"
|
||||
fi
|
||||
nr=$(echo "$ret" | grep -c "data:")
|
||||
if [ $nr != 3 -a $nr != 4 ]; then
|
||||
if [ $nr -lt 3 -o $nr -gt 4 ]; then
|
||||
err 4 "$nr"
|
||||
fi
|
||||
exit
|
||||
|
||||
# 2d) start sub 8s - replay from start -8s to stop +4s - expect 3 notifications
|
||||
new "2d) start sub 8s - replay from start -8s to stop +4s - expect 3 notifications"
|
||||
ret=$($UTIL -u http://localhost/streams/EXAMPLE -t 10 -s -30 -e +4)
|
||||
expect="data: <notification xmlns=\"urn:ietf:params:xml:ns:netconf:notification:1.0\"><eventTime>${DATE}T[0-9:.]*</eventTime><event><event-class>fault</event-class><reportingEntity><card>Ethernet0</card></reportingEntity><severity>major</severity></event>"
|
||||
match=$(echo "$ret" | grep -Eo "$expect")
|
||||
if [ -z "$match" ]; then
|
||||
err "$expect" "$ret"
|
||||
fi
|
||||
nr=$(echo "$ret" | grep -c "data:")
|
||||
if [ $nr -lt 4 -o $nr -gt 10 ]; then
|
||||
err 6 "$nr"
|
||||
fi
|
||||
|
||||
# 2e) start sub 8s - replay from -90s w retention 60s - expect 10 notifications
|
||||
new "2e) start sub 8s - replay from -90s w retention 60s - expect 10 notifications"
|
||||
ret=$($UTIL -u http://localhost/streams/EXAMPLE -t 10 -s -90 -e +0)
|
||||
expect="data: <notification xmlns=\"urn:ietf:params:xml:ns:netconf:notification:1.0\"><eventTime>${DATE}T[0-9:.]*</eventTime><event><event-class>fault</event-class><reportingEntity><card>Ethernet0</card></reportingEntity><severity>major</severity></event>"
|
||||
match=$(echo "$ret" | grep -Eo "$expect")
|
||||
if [ -z "$match" ]; then
|
||||
err "$expect" "$ret"
|
||||
fi
|
||||
nr=$(echo "$ret" | grep -c "data:")
|
||||
|
||||
if [ $nr -lt 10 -o $nr -gt 14 ]; then
|
||||
err 10 "$nr"
|
||||
fi
|
||||
|
||||
#-----------------
|
||||
|
||||
sudo pkill -u www-data clixon_restconf
|
||||
|
|
@ -224,7 +254,9 @@ if [ -n "$pid" ]; then
|
|||
fi
|
||||
|
||||
rm -rf $dir
|
||||
exit
|
||||
|
||||
exit # DONT REMOVE MANUAL TESTING
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Need manual testing
|
||||
new "restconf monitor streams native NEEDS manual testing"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue