tdef: Introduce min_val and max_val fields
This is useful for timers expected to have a range of valid or expected
values.
Validation is done at runtime when timer values are set by the app or by
the user through the VTY.
Related: OS#4190
Change-Id: I4661ac41c29a009a1d5fc57d87aaee6041c7d1b2
diff --git a/tests/tdef/tdef_vty_test_config_root.vty b/tests/tdef/tdef_vty_test_config_root.vty
index f3aba0f..6a53b80 100644
--- a/tests/tdef/tdef_vty_test_config_root.vty
+++ b/tests/tdef/tdef_vty_test_config_root.vty
@@ -22,6 +22,9 @@
test: T4 = 100 Testing a hundred potatoes (default: 100)
test: T2147483647 = 4294967295 m Very large (default: 4294967295 m)
test: X23 = 239471 s Negative T number (default: 239471 s)
+test: T30 = 50 s Testing range min (default: 50 s, range: [20 .. inf])
+test: T31 = 50 s Testing range max (default: 50 s, range: [0 .. 52])
+test: T32 = 50 s Testing range both (default: 50 s, range: [20 .. 52])
software: T1 = 30 m Write code (default: 30 m)
software: T2 = 20 ms Hit segfault (default: 20 ms)
software: T3 = 480 m Fix bugs (default: 480 m)
@@ -38,6 +41,9 @@
test: T4 = 100 Testing a hundred potatoes (default: 100)
test: T2147483647 = 4294967295 m Very large (default: 4294967295 m)
test: X23 = 239471 s Negative T number (default: 239471 s)
+test: T30 = 50 s Testing range min (default: 50 s, range: [20 .. inf])
+test: T31 = 50 s Testing range max (default: 50 s, range: [0 .. 52])
+test: T32 = 50 s Testing range both (default: 50 s, range: [20 .. 52])
software: T1 = 30 m Write code (default: 30 m)
software: T2 = 20 ms Hit segfault (default: 20 ms)
software: T3 = 480 m Fix bugs (default: 480 m)
@@ -83,6 +89,9 @@
test: T4 = 100 Testing a hundred potatoes (default: 100)
test: T2147483647 = 4294967295 m Very large (default: 4294967295 m)
test: X23 = 239471 s Negative T number (default: 239471 s)
+test: T30 = 50 s Testing range min (default: 50 s, range: [20 .. inf])
+test: T31 = 50 s Testing range max (default: 50 s, range: [0 .. 52])
+test: T32 = 50 s Testing range both (default: 50 s, range: [20 .. 52])
software: T1 = 30 m Write code (default: 30 m)
software: T2 = 20 ms Hit segfault (default: 20 ms)
software: T3 = 480 m Fix bugs (default: 480 m)
@@ -167,6 +176,32 @@
tdef_vty_test(config)# timer te T2 100
% Ambiguous command.
+tdef_vty_test(config)# timer test 30 40
+tdef_vty_test(config)# timer test 30 60
+tdef_vty_test(config)# timer test 30 10
+% Timer T30 value 10 is out of range [20 .. inf]
+
+tdef_vty_test(config)# timer test 31 40
+tdef_vty_test(config)# timer test 31 60
+% Timer T31 value 60 is out of range [0 .. 52]
+tdef_vty_test(config)# timer test 31 10
+
+tdef_vty_test(config)# timer test 32 40
+tdef_vty_test(config)# timer test 32 60
+% Timer T32 value 60 is out of range [20 .. 52]
+tdef_vty_test(config)# timer test 32 10
+% Timer T32 value 10 is out of range [20 .. 52]
+
+tdef_vty_test(config)# timer test
+test: T1 = 100 s Testing a hundred seconds (default: 100 s)
+test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms)
+test: T3 = 100 m Testing a hundred minutes (default: 100 m)
+test: T4 = 100 Testing a hundred potatoes (default: 100)
+test: T2147483647 = 4294967295 m Very large (default: 4294967295 m)
+test: X23 = 239471 s Negative T number (default: 239471 s)
+test: T30 = 60 s Testing range min (default: 50 s, range: [20 .. inf])
+test: T31 = 10 s Testing range max (default: 50 s, range: [0 .. 52])
+test: T32 = 40 s Testing range both (default: 50 s, range: [20 .. 52])
tdef_vty_test(config)# do show timer software
software: T1 = 30 m Write code (default: 30 m)
@@ -230,6 +265,9 @@
test: T4 = 100 Testing a hundred potatoes (default: 100)
test: T2147483647 = 4294967295 m Very large (default: 4294967295 m)
test: X23 = 239471 s Negative T number (default: 239471 s)
+test: T30 = 60 s Testing range min (default: 50 s, range: [20 .. inf])
+test: T31 = 10 s Testing range max (default: 50 s, range: [0 .. 52])
+test: T32 = 40 s Testing range both (default: 50 s, range: [20 .. 52])
software: T1 = 13 m Write code (default: 30 m)
software: T2 = 0 ms Hit segfault (default: 20 ms)
software: T3 = 23 m Fix bugs (default: 480 m)
@@ -245,6 +283,9 @@
test: T4 = 100 Testing a hundred potatoes (default: 100)
test: T2147483647 = 4294967295 m Very large (default: 4294967295 m)
test: X23 = 239471 s Negative T number (default: 239471 s)
+test: T30 = 60 s Testing range min (default: 50 s, range: [20 .. inf])
+test: T31 = 10 s Testing range max (default: 50 s, range: [0 .. 52])
+test: T32 = 40 s Testing range both (default: 50 s, range: [20 .. 52])
software: T1 = 13 m Write code (default: 30 m)
software: T2 = 0 ms Hit segfault (default: 20 ms)
software: T3 = 23 m Fix bugs (default: 480 m)
@@ -252,6 +293,9 @@
tdef_vty_test(config)# show running-config
... !timer
timer tea T3 32
+timer test T30 60
+timer test T31 10
+timer test T32 40
timer software T1 13
timer software T2 0
timer software T3 23
@@ -261,6 +305,9 @@
tdef_vty_test(config)# timer software T1 default
tdef_vty_test(config)# show running-config
... !timer
+timer test T30 60
+timer test T31 10
+timer test T32 40
timer software T2 0
timer software T3 23
... !timer
@@ -269,5 +316,8 @@
tdef_vty_test(config)# timer software 2 default
tdef_vty_test(config)# show running-config
... !timer
+timer test T30 60
+timer test T31 10
+timer test T32 40
timer software T3 23
... !timer