mem fixes, evolved openconfig interfaces test

This commit is contained in:
Olof hagsand 2021-04-15 10:12:35 +02:00
parent 1cd0eab7ff
commit bba23be444
3 changed files with 12 additions and 14 deletions

View file

@ -236,7 +236,7 @@ buf_write(char *buf,
ssize_t totlen = 0; ssize_t totlen = 0;
int er; int er;
clicon_debug(1, "%s %lu", __FUNCTION__, buflen); clicon_debug(1, "%s", __FUNCTION__);
while (totlen < buflen){ while (totlen < buflen){
if (ssl){ if (ssl){
if ((len = SSL_write(ssl, buf+totlen, buflen-totlen)) <= 0){ if ((len = SSL_write(ssl, buf+totlen, buflen-totlen)) <= 0){

View file

@ -1,13 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Parse "all" openconfig yangs from https://github.com/openconfig/public # Run a system around openconfig interface, ie: openconfig-if-ethernet
# Notes:
# Notes:
# - A simple smoketest (CLI check) is made, essentially YANG parsing.
# - A full system is worked on
# - Env-var OPENCONFIG should point to checkout place. (define it in site.sh for example)
# - Env variable YANGMODELS should point to checkout place. (define it in site.sh for example)
# - Some DIFFs are necessary in yangmodels
# release/models/wifi/openconfig-ap-interfaces.yang
# Magic line must be first in script (see README.md) # Magic line must be first in script (see README.md)
s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi
@ -93,8 +85,8 @@ module clixon-example{
import ietf-interfaces { import ietf-interfaces {
prefix ietf-if; prefix ietf-if;
} }
import openconfig-interfaces { import openconfig-if-ethernet {
prefix oc-if; prefix oc-eth;
} }
identity eth { /* Need to create an interface-type identity for leafrefs */ identity eth { /* Need to create an interface-type identity for leafrefs */
base ietf-if:interface-type; base ietf-if:interface-type;
@ -144,7 +136,13 @@ new "$clixon_cli -D $DBG -1f $cfg -y $f show version"
expectpart "$($clixon_cli -D $DBG -1f $cfg show version)" 0 "${CLIXON_VERSION}" expectpart "$($clixon_cli -D $DBG -1f $cfg show version)" 0 "${CLIXON_VERSION}"
new "$clixon_netconf -qf $cfg" new "$clixon_netconf -qf $cfg"
expecteof "$clixon_netconf -qf $cfg" 0 "$DEFAULTHELLO<rpc $DEFAULTNS><get-config><source><candidate/></source></get-config></rpc>]]>]]>" "^<rpc-reply $DEFAULTNS><data><interfaces xmlns=\"http://openconfig.net/yang/interfaces\"><interface><name>e</name><config><name>e</name><type>ex:eth</type><loopback-mode>false</loopback-mode><enabled>true</enabled></config><hold-time><config><up>0</up><down>0</down></config></hold-time></interface></interfaces></data></rpc-reply>]]>]]>" expecteof "$clixon_netconf -qf $cfg" 0 "$DEFAULTHELLO<rpc $DEFAULTNS><get-config><source><candidate/></source></get-config></rpc>]]>]]>" "^<rpc-reply $DEFAULTNS><data><interfaces xmlns=\"http://openconfig.net/yang/interfaces\"><interface><name>e</name><config><name>e</name><type>ex:eth</type><loopback-mode>false</loopback-mode><enabled>true</enabled></config><hold-time><config><up>0</up><down>0</down></config></hold-time><oc-eth:ethernet xmlns:oc-eth=\"http://openconfig.net/yang/interfaces/ethernet\"><oc-eth:config><oc-eth:auto-negotiate>true</oc-eth:auto-negotiate><oc-eth:enable-flow-control>false</oc-eth:enable-flow-control></oc-eth:config></oc-eth:ethernet></interface></interfaces></data></rpc-reply>]]>]]>"
new "cli show configuration"
expectpart "$($clixon_cli -1 -f $cfg show conf xml)" 0 "^<interfaces xmlns=\"http://openconfig.net/yang/interfaces\">" "<oc-eth:ethernet xmlns:oc-eth=\"http://openconfig.net/yang/interfaces/ethernet\">"
new "cli set interfaces interface <tab> complete: e"
expectpart "$(echo "set interfaces interface " | $clixon_cli -f $cfg)" 0 "interface e"
if [ $BE -ne 0 ]; then if [ $BE -ne 0 ]; then
new "Kill backend" new "Kill backend"

View file

@ -169,7 +169,7 @@ function testrun()
# Negative test GET datastore # Negative test GET datastore
if [ $proto = http ]; then # see (2) https to http port in restconf_main_openssl.c if [ $proto = http ]; then # see (2) https to http port in restconf_main_openssl.c
new "Wrong proto=https on http port, expect err 35 wrong version number" new "Wrong proto=https on http port, expect err 35 wrong version number"
expectpart "$(curl $CURLOPTS -X GET https://$addr:80/.well-known/host-meta 2>&1)" 35 "wrong version number" expectpart "$(curl $CURLOPTS -X GET https://$addr:80/.well-known/host-meta 2>&1)" 35 #"wrong version number" # dependent on curl version
else # see (1) http to https port in restconf_main_openssl.c else # see (1) http to https port in restconf_main_openssl.c
new "Wrong proto=http on https port, expect bad request" new "Wrong proto=http on https port, expect bad request"
expectpart "$(curl $CURLOPTS -X GET http://$addr:443/.well-known/host-meta)" 0 "HTTP/1.1 400 Bad Request" expectpart "$(curl $CURLOPTS -X GET http://$addr:443/.well-known/host-meta)" 0 "HTTP/1.1 400 Bad Request"