#!/usr/bin/env bash # Magic line must be first in script (see README.md) s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi # datastore tests. # Just run a binary direct to datastore. No clixon. fyang=$dir/ietf-ip.yang : ${clixon_util_datastore:=clixon_util_datastore} cat < $fyang module ietf-ip{ yang-version 1.1; namespace "urn:example:clixon"; prefix ip; container x { list y { key "a b"; leaf a { type string; } leaf b { type string; } leaf c { type string; } } leaf d { type empty; } container f { leaf-list e { type string; } } leaf g { type string; } container h { leaf j { type string; } } } } EOF xml="12first-entry13second-entry23third-entryabcastring" xml2="<${DATASTORE_TOP}>12first-entry13second-entry23third-entryabcastring" name=text mydir=$dir/$name if [ ! -d $mydir ]; then mkdir $mydir fi rm -rf $mydir/* conf="-d candidate -b $mydir -y $dir/ietf-ip.yang" new "datastore init" expectpart "$($clixon_util_datastore $conf init)" 0 "" new "datastore put all replace" ret=$($clixon_util_datastore $conf put replace "$xml") expectmatch "$ret" $? "0" "" new "datastore get" expectpart "$($clixon_util_datastore $conf get /)" 0 "^$xml2$" new "datastore put all remove" expectpart "$($clixon_util_datastore $conf put remove "")" 0 "" new "datastore get" expectpart "$($clixon_util_datastore $conf get /)" 0 "^<${DATASTORE_TOP}/>$" new "datastore put all merge" ret=$($clixon_util_datastore $conf put merge "$xml") expectmatch "$ret" $? "0" "" # expectpart "$($clixon_util_datastore $conf put merge $xml)" 0 "" new "datastore get" expectpart "$($clixon_util_datastore $conf get /)" 0 "^$xml2$" new "datastore put all delete" expectpart "$($clixon_util_datastore $conf put remove "")" 0 "" new "datastore get" expectpart "$($clixon_util_datastore $conf get /)" 0 "^<${DATASTORE_TOP}/>$" new "datastore put all create" ret=$($clixon_util_datastore $conf put create "$xml") expectmatch "$ret" $? "0" "" new "datastore get" expectpart "$($clixon_util_datastore $conf get /)" 0 "^$xml2$" new "datastore put top create" expectpart "$($clixon_util_datastore $conf put create '')" 0 "" # error # Single key operations # leaf new "datastore put all delete" expectpart "$($clixon_util_datastore $conf delete)" 0 "" new "datastore init" expectpart "$($clixon_util_datastore $conf init)" 0 "" new "datastore create leaf" expectpart "$($clixon_util_datastore $conf put create '13newentry')" 0 "" new "datastore create leaf" expectpart "$($clixon_util_datastore $conf put create '13newentry')" 0 "" new "datastore delete leaf" expectpart "$($clixon_util_datastore $conf put delete '13')" 0 "" new "datastore replace leaf" expectpart "$($clixon_util_datastore $conf put create '13newentry')" 0 "" new "datastore remove leaf" expectpart "$($clixon_util_datastore $conf put remove '')" 0 "" new "datastore remove leaf" expectpart "$($clixon_util_datastore $conf put remove '13')" 0 "" new "datastore delete leaf" expectpart "$($clixon_util_datastore $conf put delete '')" 0 "" new "datastore merge leaf" expectpart "$($clixon_util_datastore $conf put merge 'nalle')" 0 "" new "datastore replace leaf" expectpart "$($clixon_util_datastore $conf put replace 'nalle')" 0 "" new "datastore merge leaf" expectpart "$($clixon_util_datastore $conf put merge '13newentry')" 0 "" new "datastore replace leaf" expectpart "$($clixon_util_datastore $conf put replace '13newentry')" 0 "" new "datastore create leaf" expectpart "$($clixon_util_datastore $conf put create 'aaa')" 0 "" new "datastore create leaf" expectpart "$($clixon_util_datastore $conf put create '13newentry')" 0 "" new "datastore other db init" expectpart "$($clixon_util_datastore -d kalle -b $mydir -y $dir/ietf-ip.yang init)" 0 "" new "datastore other db copy" expectpart "$($clixon_util_datastore $conf copy kalle)" 0 "" diff $mydir/kalle_db $mydir/candidate_db new "datastore lock" expectpart "$($clixon_util_datastore $conf lock 756)" 0 "" # unset conditional parameters unset clixon_util_datastore rm -rf $mydir rm -rf $dir new "endtest" endtest