diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8411e995..c3e66390 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -92,6 +92,7 @@
```
### Minor changes
+* Experimental customized error output strings, see [lib/clixon/clixon_err_string.h]
* Empty leaf values, eg are now checked at validation.
* Empty values were skipped in validation.
* They are now checked and invalid for ints, dec64, etc, but are treated as empty string "" for string types.
diff --git a/lib/clixon/clixon_err_string.h b/lib/clixon/clixon_err_string.h
new file mode 100644
index 00000000..1ab25d80
--- /dev/null
+++ b/lib/clixon/clixon_err_string.h
@@ -0,0 +1,48 @@
+/*
+ *
+ ***** BEGIN LICENSE BLOCK *****
+
+ Copyright (C) 2009-2019 Olof Hagsand and Benny Holmgren
+
+ This file is part of CLIXON.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ Alternatively, the contents of this file may be used under the terms of
+ the GNU General Public License Version 3 or later (the "GPL"),
+ in which case the provisions of the GPL are applicable instead
+ of those above. If you wish to allow use of your version of this file only
+ under the terms of the GPL, and not to allow others to
+ use your version of this file under the terms of Apache License version 2,
+ indicate your decision by deleting the provisions above and replace them with
+ the notice and other provisions required by the GPL. If you do not delete
+ the provisions above, a recipient may use your version of this file under
+ the terms of any one of the Apache License version 2 or the GPL.
+
+ ***** END LICENSE BLOCK *****
+
+ * First effort in customizing error output strings.
+ * Here just very simple constants that can be edited and recompiled by
+ * an integrator.
+ */
+
+#ifndef _CLIXON_ERR_STRING_H_
+#define _CLIXON_ERR_STRING_H_
+
+/* If internal netconf validation operation failed in the backend */
+#define CLIXON_ERRSTR_VALIDATE_FAILED "Validate failed. Edit and try again or discard changes"
+
+/* If internal netconf commit operation failed in the backend */
+#define CLIXON_ERRSTR_COMMIT_FAILED "Commit failed. Edit and try again or discard changes"
+
+#endif /* _CLIXON_ERR_STRING_H_ */
diff --git a/lib/src/clixon_proto_client.c b/lib/src/clixon_proto_client.c
index 1bdcfb3e..9502dd64 100644
--- a/lib/src/clixon_proto_client.c
+++ b/lib/src/clixon_proto_client.c
@@ -70,6 +70,7 @@
#include "clixon_xpath.h"
#include "clixon_proto.h"
#include "clixon_err.h"
+#include "clixon_err_string.h"
#include "clixon_proto_client.h"
/*! Send internal netconf rpc from client to backend
@@ -689,7 +690,7 @@ clicon_rpc_validate(clicon_handle h,
if (clicon_rpc_msg(h, msg, &xret, NULL) < 0)
goto done;
if ((xerr = xpath_first(xret, "//rpc-error")) != NULL){
- clicon_rpc_generate_error("Validate failed. Edit and try again or discard changes", xerr);
+ clicon_rpc_generate_error(CLIXON_ERRSTR_VALIDATE_FAILED, xerr);
goto done;
}
retval = 0;
@@ -721,7 +722,7 @@ clicon_rpc_commit(clicon_handle h)
if (clicon_rpc_msg(h, msg, &xret, NULL) < 0)
goto done;
if ((xerr = xpath_first(xret, "//rpc-error")) != NULL){
- clicon_rpc_generate_error("Commit failed. Edit and try again or discard changes", xerr);
+ clicon_rpc_generate_error(CLIXON_ERRSTR_COMMIT_FAILED, xerr);
goto done;
}
retval = 0;
diff --git a/test/lib.sh b/test/lib.sh
index 32b11f96..38a01380 100755
--- a/test/lib.sh
+++ b/test/lib.sh
@@ -202,52 +202,53 @@ new(){
# - expected stdout outcome,
# - expected2 stdout outcome,
expectfn(){
- cmd=$1
- retval=$2
- expect="$3"
+ cmd=$1
+ retval=$2
+ expect="$3"
- if [ $# = 4 ]; then
- expect2=$4
- else
- expect2=
- fi
- ret=$($cmd)
- r=$?
-# echo "cmd:\"$cmd\""
-# echo "retval:\"$retval\""
-# echo "ret:\"$ret\""
-# echo "r:\"$r\""
- if [ $r != $retval ]; then
- echo -e "\e[31m\nError ($r != $retval) in Test$testnr [$testname]:"
- echo -e "\e[0m:"
- exit -1
+ if [ $# = 4 ]; then
+ expect2=$4
+ else
+ expect2=
fi
- if [ $r != 0 ]; then
- return
+ ret=$($cmd)
+ r=$?
+# echo "cmd:\"$cmd\""
+# echo "retval:\"$retval\""
+# echo "expect:\"$expect\""
+# echo "ret:\"$ret\""
+# echo "r:\"$r\""
+ if [ $r != $retval ]; then
+ echo -e "\e[31m\nError ($r != $retval) in Test$testnr [$testname]:"
+ echo -e "\e[0m:"
+ return
+ fi
+# if [ $r != 0 ]; then
+# return
+# fi
+ # if [ $ret -ne $retval ]; then
+ # echo -e "\e[31m\nError in Test$testnr [$testname]:"
+ # echo -e "\e[0m:"
+ # exit -1
+ # fi
+ # Match if both are empty string
+ if [ -z "$ret" -a -z "$expect" ]; then
+ return
+ fi
+ if [ -z "$ret" -a "$expect" = "^$" ]; then
+ return
+ fi
+ # grep extended grep
+ match=`echo $ret | grep -EZo "$expect"`
+ if [ -z "$match" ]; then
+ err "$expect" "$ret"
+ fi
+ if [ -n "$expect2" ]; then
+ match=`echo "$ret" | grep -EZo "$expect2"`
+ if [ -z "$match" ]; then
+ err $expect "$ret"
+ fi
fi
-# if [ $ret -ne $retval ]; then
-# echo -e "\e[31m\nError in Test$testnr [$testname]:"
-# echo -e "\e[0m:"
-# exit -1
-# fi
- # Match if both are empty string
- if [ -z "$ret" -a -z "$expect" ]; then
- return
- fi
- if [ -z "$ret" -a "$expect" = "^$" ]; then
- return
- fi
- # grep extended grep
- match=`echo $ret | grep -EZo "$expect"`
- if [ -z "$match" ]; then
- err "$expect" "$ret"
- fi
- if [ -n "$expect2" ]; then
- match=`echo "$ret" | grep -EZo "$expect2"`
- if [ -z "$match" ]; then
- err $expect "$ret"
- fi
- fi
}
# Evaluate and return
diff --git a/test/test_cli.sh b/test/test_cli.sh
index 9030e6ed..90ddb28e 100755
--- a/test/test_cli.sh
+++ b/test/test_cli.sh
@@ -74,7 +74,7 @@ new "cli configure using encoded chars name <&"
expectfn "$clixon_cli -1 -f $cfg set interfaces interface fddi&< type ianaift:ethernetCsmacd" 0 ""
new "cli failed validate"
-expectfn "$clixon_cli -1 -f $cfg -l o validate" 255 "Missing mandatory variable"
+expectfn "$clixon_cli -1 -f $cfg -l o validate" 255 "Validate failed. Edit and try again or discard changes: application missing-element Mandatory variable type"
new "cli configure more"
expectfn "$clixon_cli -1 -f $cfg set interfaces interface eth/0/0 ipv4 address 1.2.3.4 prefix-length 24" 0 "^$"
diff --git a/test/test_feature.sh b/test/test_feature.sh
index 5bf5997a..463b0555 100755
--- a/test/test_feature.sh
+++ b/test/test_feature.sh
@@ -98,7 +98,7 @@ new "cli enabled feature in other module"
expectfn "$clixon_cli -1f $cfg -y $fyang set routing router-id 1.2.3.4" 0 ""
new "cli disabled feature in other module"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set routing ribs rib default-rib false" 255 "CLI syntax error: \"set routing ribs rib default-rib\": Unknown command"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set routing ribs rib default-rib false" 255 "CLI syntax error: \"set routing ribs rib default-rib false\": Unknown command"
new "netconf discard-changes"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
diff --git a/test/test_nacm_ext.sh b/test/test_nacm_ext.sh
index 5048a1e3..f873b11d 100755
--- a/test/test_nacm_ext.sh
+++ b/test/test_nacm_ext.sh
@@ -194,16 +194,16 @@ new "cli show conf as limited"
expectfn "$clixon_cli -1 -U wilma -l o -f $cfg show conf" 0 "^x 1;$"
new "cli show conf as guest"
-expectfn "$clixon_cli -1 -U guest -l o -f $cfg show conf" 255 "protocol access-denied"
+expectfn "$clixon_cli -1 -U guest -l o -f $cfg show conf" 255 "application access-denied"
new "cli rpc as admin"
expectfn "$clixon_cli -1 -U andy -l o -f $cfg rpc ipv4" 0 'ipv442'
new "cli rpc as limited"
-expectfn "$clixon_cli -1 -U wilma -l o -f $cfg rpc ipv4" 255 "protocol access-denied default deny"
+expectfn "$clixon_cli -1 -U wilma -l o -f $cfg rpc ipv4" 255 "access-denied default deny"
new "cli rpc as guest"
-expectfn "$clixon_cli -1 -U guest -l o -f $cfg rpc ipv4" 255 "protocol access-denied access denied"
+expectfn "$clixon_cli -1 -U guest -l o -f $cfg rpc ipv4" 255 "access-denied access denied"
new "Kill restconf daemon"
stop_restconf
diff --git a/test/test_type.sh b/test/test_type.sh
index 4a4c9bc3..381bc0a7 100755
--- a/test/test_type.sh
+++ b/test/test_type.sh
@@ -223,10 +223,10 @@ if [ $BE -ne 0 ]; then
fi
new "cli set transitive string. type is alpha followed by number and is defined in three levels of modules"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c talle x99" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c talle x99" 0 '^$'
new "cli set transitive string error. Wrong type"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c talle 9xx" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c talle 9xx" 255 '^CLI syntax error: "set c talle 9xx": Unknown command$'
new "netconf set transitive string error"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '9xx]]>]]>' "^]]>]]>"
@@ -238,22 +238,22 @@ new "netconf discard-changes"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
new "cli set transitive union int (ulle should accept 4.44|bounded|unbounded)"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle 33" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle 33" 0 '^$'
new "cli validate"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 '^$'
new "cli set transitive union string"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle unbounded" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle unbounded" 0 '^$'
new "cli validate"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 '^$'
new "cli set transitive union error. should fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle kalle" 255 ""
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle kalle" 255 '^CLI syntax error: "set c ulle kalle": Unknown command$'
new "cli set transitive union error int"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle 55" 255 ""
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle 55" 255 '^CLI syntax error: "set c ulle 55": Unknown command$'
new "netconf set transitive union error int"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '55]]>]]>' "^]]>]]>"
@@ -267,13 +267,13 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-----------
new "cli set ab"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list a.b.a.b" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list a.b.a.b" 0 '^$'
new "cli set cd"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list c.d.c.d" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list c.d.c.d" 0 '^$'
new "cli set ef"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list e.f.e.f" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list e.f.e.f" 0 '^$'
new "cli set ab fail"
expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list a&b&a&b" 255 "^CLI syntax error"
@@ -282,10 +282,10 @@ new "cli set ad fail"
expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list a.b.c.d" 255 "^CLI syntax error"
new "cli validate"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 '^$'
new "cli commit"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o commit" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o commit" 0 '^$'
new "netconf validate ok"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
@@ -303,20 +303,20 @@ new "netconf commit"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
new "cli enum value"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set status down" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set status down" 0 '^$'
new "cli bits value"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set mbits create" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set mbits create" 0 '^$'
#XXX No, cli cant assign two bit values
#new "cli bits two values"
-#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set mbits \"create read\"" 0 "^$"
+#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set mbits \"create read\"" 0 '^$'
new "netconf bits two values"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 'create read]]>]]>' "^]]>]]>$"
new "cli bits validate"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang validate" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang validate" 0 '^$'
#-------- num0 empty value
@@ -332,13 +332,13 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- num1 single range (1)
new "cli range test num1 1 OK"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 1" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 1" 0 '^$'
#new "cli range test num1 -100 ok" # XXX -/minus cant be given as argv
-#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 \-100" 0 "^$"
+#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 \-100" 0 '^$'
new "cli range test num1 2 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 2" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 2" 255 '^CLI syntax error: "set num1 2": Unknown command$'
new "netconf range set num1 -1"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '-1]]>]]>' "^]]>]]>$"
@@ -352,13 +352,13 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- num2 range and blanks
new "cli range test num2 3 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 3" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 3" 255 '^CLI syntax error: "set num2 3": Number out of range: 3$'
new "cli range test num2 1000 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 1000" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 1000" 0 '^$'
new "cli range test num2 5000 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 5000" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 5000" 255 '^CLI syntax error: "set num2 5000": Unknown command$'
new "netconf range set num2 3 fail"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '3]]>]]>' "^]]>]]>$"
@@ -384,13 +384,13 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- num3 min max range
new "cli range test num3 42 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 42" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 42" 0 '^$'
new "cli range test num3 260 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 260" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 260" 255 '^CLI syntax error: "set num3 260": Unknown command$'
new "cli range test num3 -1 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 -1" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 -1" 255 '^CLI syntax error: "set num3": Incomplete command$'
new "netconf range set num3 260 fail"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '260]]>]]>' "^]]>]]>$"
@@ -404,19 +404,19 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- num4 multiple ranges 1..2 | 42..50
new "cli range test num4 multiple 0 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 0" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 0" 255 '^CLI syntax error: "set num4 0": Number out of range: 0$'
new "cli range test num4 multiple 2 ok"
-expectfn "$clixon_cli -1f $cfg -l e -y $fyang set num4 2" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l e -y $fyang set num4 2" 0 '^$'
new "cli range test num4 multiple 20 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 20" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 20" 255 '^CLI syntax error: "set num4 20": Unknown command$'
new "cli range test num4 multiple 42 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 42" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 42" 0 '^$'
new "cli range test num4 multiple 99 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 99" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 99" 255 '^CLI syntax error: "set num4 99": Unknown command$'
new "netconf range set num4 multiple 2"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '42]]>]]>' "^]]>]]>$"
@@ -442,16 +442,16 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- dec64 multiple ranges -3.5..-2.5 | 0.0 | 10.0..20.0
# XXX how to enter negative numbers in bash string and cli -1?
new "cli range dec64 multiple 0 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 0" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 0" 0 '^$'
new "cli range dec64 multiple 0.1 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 0.1" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 0.1" 255 '^CLI syntax error: "set num4 0.1": '"'"'0.1'"'"' is not a number$'
new "cli range dec64 multiple 15.0 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 15.0" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 15.0" 0 '^$'
new "cli range dec64 multiple 30.0 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 30.0" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 30.0" 255 '^CLI syntax error: "set dec 30.0": Unknown command$'
new "dec64 discard-changes"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
@@ -496,13 +496,13 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
@@ -516,10 +516,10 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
@@ -527,36 +527,36 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- len3 min max range
new "cli range ptest len3 42 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len3 hsakjdhkjsahdkjsahdksahdksajdhsakjhd" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len3 hsakjdhkjsahdkjsahdksahdksajdhsakjhd" 0 '^$'
#-------- len4 multiple ranges 2..3 | 20-29
new "cli length test len4 1 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 a" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 a" 255 '^CLI syntax error: "set len4 a": String length not within limits: 1$'
new "cli length test len4 2 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 ab" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 ab" 0 '^$'
new "cli length test len4 10 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghij" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghij" 255 '^CLI syntax error: "set len4 abcdefghij": Unknown command$'
new "cli length test len4 20 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghijabcdefghija" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghijabcdefghija" 0 '^$'
new "cli length test len4 30 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghijabcdefghijabcdefghij" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghijabcdefghijabcdefghij" 255 '^CLI syntax error: "set len4 abcdefghijabcdefghijabcdefghij": Unknown command$'
# XSD schema -> POSIX ECE translation
new "cli yang pattern \d ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set digit4 0123" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set digit4 0123" 0 '^$'
new "cli yang pattern \d error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set digit4 01b2" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set digit4 01b2" 255 '^CLI syntax error: "set digit4 01b2": Unknown command$'
new "cli yang pattern \w ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set word4 abc9" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set word4 abc9" 0 '^$'
new "cli yang pattern \w error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set word4 ab%3" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set word4 ab%3" 255 '^CLI syntax error: "set word4 ab%3": Unknown command$'
new "netconf pattern \w"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 'aXG9]]>]]>' "^]]>]]>$"
@@ -583,7 +583,7 @@ new "validate minus"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
#new "cli type with minus"
-#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set name my-name" 0 "^$"
+#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set name my-name" 0 '^$'
if [ $BE -eq 0 ]; then
exit # BE
diff --git a/test/test_type_nocache.sh b/test/test_type_nocache.sh
index 95a0e9af..bedff56d 100755
--- a/test/test_type_nocache.sh
+++ b/test/test_type_nocache.sh
@@ -124,6 +124,9 @@ module example{
enum down;
}
}
+ leaf num0 {
+ type int32;
+ }
leaf num1 {
type int32 {
range "1";
@@ -221,10 +224,10 @@ if [ $BE -ne 0 ]; then
fi
new "cli set transitive string. type is alpha followed by number and is defined in three levels of modules"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c talle x99" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c talle x99" 0 '^$'
new "cli set transitive string error. Wrong type"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c talle 9xx" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c talle 9xx" 255 '^CLI syntax error: "set c talle 9xx": Unknown command$'
new "netconf set transitive string error"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '9xx]]>]]>' "^]]>]]>"
@@ -236,22 +239,22 @@ new "netconf discard-changes"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
new "cli set transitive union int (ulle should accept 4.44|bounded|unbounded)"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle 33" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle 33" 0 '^$'
new "cli validate"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 '^$'
new "cli set transitive union string"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle unbounded" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle unbounded" 0 '^$'
new "cli validate"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 '^$'
new "cli set transitive union error. should fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle kalle" 255 ""
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle kalle" 255 '^CLI syntax error: "set c ulle kalle": Unknown command$'
new "cli set transitive union error int"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle 55" 255 ""
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle 55" 255 '^CLI syntax error: "set c ulle 55": Unknown command$'
new "netconf set transitive union error int"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '55]]>]]>' "^]]>]]>"
@@ -265,13 +268,13 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-----------
new "cli set ab"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list a.b.a.b" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list a.b.a.b" 0 '^$'
new "cli set cd"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list c.d.c.d" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list c.d.c.d" 0 '^$'
new "cli set ef"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list e.f.e.f" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list e.f.e.f" 0 '^$'
new "cli set ab fail"
expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list a&b&a&b" 255 "^CLI syntax error"
@@ -280,10 +283,10 @@ new "cli set ad fail"
expectfn "$clixon_cli -1f $cfg -l o -y $fyang set list a.b.c.d" 255 "^CLI syntax error"
new "cli validate"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o validate" 0 '^$'
new "cli commit"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o commit" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang -l o commit" 0 '^$'
new "netconf validate ok"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
@@ -301,31 +304,42 @@ new "netconf commit"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
new "cli enum value"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set status down" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set status down" 0 '^$'
new "cli bits value"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set mbits create" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set mbits create" 0 '^$'
#XXX No, cli cant assign two bit values
#new "cli bits two values"
-#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set mbits \"create read\"" 0 "^$"
+#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set mbits \"create read\"" 0 '^$'
new "netconf bits two values"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 'create read]]>]]>' "^]]>]]>$"
new "cli bits validate"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang validate" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang validate" 0 '^$'
+
+#-------- num0 empty value
+
+new "netconf num0 no value"
+expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 ']]>]]>' "^]]>]]>$"
+
+new "netconf validate no value wrong"
+expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" 'applicationbad-elementnum0errorInvalid NULL value]]>]]>'
+
+new "netconf discard-changes"
+expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
#-------- num1 single range (1)
new "cli range test num1 1 OK"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 1" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 1" 0 '^$'
#new "cli range test num1 -100 ok" # XXX -/minus cant be given as argv
-#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 \-100" 0 "^$"
+#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 \-100" 0 '^$'
new "cli range test num1 2 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 2" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num1 2" 255 '^CLI syntax error: "set num1 2": Unknown command$'
new "netconf range set num1 -1"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '-1]]>]]>' "^]]>]]>$"
@@ -339,13 +353,13 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- num2 range and blanks
new "cli range test num2 3 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 3" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 3" 255 '^CLI syntax error: "set num2 3": Number out of range: 3$'
new "cli range test num2 1000 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 1000" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 1000" 0 '^$'
new "cli range test num2 5000 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 5000" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num2 5000" 255 '^CLI syntax error: "set num2 5000": Unknown command$'
new "netconf range set num2 3 fail"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '3]]>]]>' "^]]>]]>$"
@@ -371,13 +385,13 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- num3 min max range
new "cli range test num3 42 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 42" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 42" 0 '^$'
new "cli range test num3 260 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 260" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 260" 255 '^CLI syntax error: "set num3 260": Unknown command$'
new "cli range test num3 -1 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 -1" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num3 -1" 255 '^CLI syntax error: "set num3": Incomplete command$'
new "netconf range set num3 260 fail"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '260]]>]]>' "^]]>]]>$"
@@ -391,19 +405,19 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- num4 multiple ranges 1..2 | 42..50
new "cli range test num4 multiple 0 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 0" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 0" 255 '^CLI syntax error: "set num4 0": Number out of range: 0$'
new "cli range test num4 multiple 2 ok"
-expectfn "$clixon_cli -1f $cfg -l e -y $fyang set num4 2" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l e -y $fyang set num4 2" 0 '^$'
new "cli range test num4 multiple 20 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 20" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 20" 255 '^CLI syntax error: "set num4 20": Unknown command$'
new "cli range test num4 multiple 42 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 42" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 42" 0 '^$'
new "cli range test num4 multiple 99 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 99" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 99" 255 '^CLI syntax error: "set num4 99": Unknown command$'
new "netconf range set num4 multiple 2"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 '42]]>]]>' "^]]>]]>$"
@@ -429,16 +443,16 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- dec64 multiple ranges -3.5..-2.5 | 0.0 | 10.0..20.0
# XXX how to enter negative numbers in bash string and cli -1?
new "cli range dec64 multiple 0 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 0" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 0" 0 '^$'
new "cli range dec64 multiple 0.1 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 0.1" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set num4 0.1" 255 '^CLI syntax error: "set num4 0.1": '"'"'0.1'"'"' is not a number$'
new "cli range dec64 multiple 15.0 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 15.0" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 15.0" 0 '^$'
new "cli range dec64 multiple 30.0 fail"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 30.0" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set dec 30.0" 255 '^CLI syntax error: "set dec 30.0": Unknown command$'
new "dec64 discard-changes"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
@@ -483,13 +497,13 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
@@ -503,10 +517,10 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
@@ -514,36 +528,36 @@ expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]
#-------- len3 min max range
new "cli range ptest len3 42 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len3 hsakjdhkjsahdkjsahdksahdksajdhsakjhd" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len3 hsakjdhkjsahdkjsahdksahdksajdhsakjhd" 0 '^$'
#-------- len4 multiple ranges 2..3 | 20-29
new "cli length test len4 1 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 a" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 a" 255 '^CLI syntax error: "set len4 a": String length not within limits: 1$'
new "cli length test len4 2 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 ab" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 ab" 0 '^$'
new "cli length test len4 10 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghij" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghij" 255 '^CLI syntax error: "set len4 abcdefghij": Unknown command$'
new "cli length test len4 20 ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghijabcdefghija" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghijabcdefghija" 0 '^$'
new "cli length test len4 30 error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghijabcdefghijabcdefghij" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set len4 abcdefghijabcdefghijabcdefghij" 255 '^CLI syntax error: "set len4 abcdefghijabcdefghijabcdefghij": Unknown command$'
# XSD schema -> POSIX ECE translation
new "cli yang pattern \d ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set digit4 0123" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set digit4 0123" 0 '^$'
new "cli yang pattern \d error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set digit4 01b2" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set digit4 01b2" 255 '^CLI syntax error: "set digit4 01b2": Unknown command$'
new "cli yang pattern \w ok"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set word4 abc9" 0 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set word4 abc9" 0 '^$'
new "cli yang pattern \w error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set word4 ab%3" 255 "^$"
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set word4 ab%3" 255 '^CLI syntax error: "set word4 ab%3": Unknown command$'
new "netconf pattern \w"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 'aXG9]]>]]>' "^]]>]]>$"
@@ -570,7 +584,7 @@ new "validate minus"
expecteof "$clixon_netconf -qf $cfg -y $fyang" 0 "]]>]]>" "^]]>]]>$"
#new "cli type with minus"
-#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set name my-name" 0 "^$"
+#expectfn "$clixon_cli -1f $cfg -l o -y $fyang set name my-name" 0 '^$'
if [ $BE -eq 0 ]; then
exit # BE
diff --git a/test/test_union.sh b/test/test_union.sh
index 01ef82e7..6326c5ab 100755
--- a/test/test_union.sh
+++ b/test/test_union.sh
@@ -98,7 +98,7 @@ new "cli set transitive union"
expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle 33" 0 "^$"
new "cli set transitive union error"
-expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle kalle" 255 ""
+expectfn "$clixon_cli -1f $cfg -l o -y $fyang set c ulle kalle" 255 '^CLI syntax error: "set c ulle kalle": Unknown command$'
if [ $BE -eq 0 ]; then
exit # BE