echo [STEP] Test addition/deletion of multivalued variables
-tinc foo add Subnet 1
-tinc foo add Subnet 2
-tinc foo add Subnet 2
-tinc foo add Subnet 3
-test "$(tinc foo get Subnet | rm_cr)" = "1
-2
-3"
-
-tinc foo del Subnet 2
-test "$(tinc foo get Subnet | rm_cr)" = "1
-3"
+tinc foo add Subnet 1.1.1.1
+tinc foo add Subnet 2.2.2.2
+tinc foo add Subnet 2.2.2.2
+tinc foo add Subnet 3.3.3.3
+test "$(tinc foo get Subnet | rm_cr)" = "1.1.1.1
+2.2.2.2
+3.3.3.3"
+
+tinc foo del Subnet 2.2.2.2
+test "$(tinc foo get Subnet | rm_cr)" = "1.1.1.1
+3.3.3.3"
tinc foo del Subnet
test -z "$(tinc foo get Subnet)"
tinc foo add bar.PMTU 2
test "$(tinc foo get bar.PMTU)" = "2"
-tinc foo add bar.Subnet 1
-tinc foo add bar.Subnet 2
-tinc foo add bar.Subnet 2
-tinc foo add bar.Subnet 3
-test "$(tinc foo get bar.Subnet | rm_cr)" = "1
-2
-3"
+tinc foo add bar.Subnet 1.1.1.1
+tinc foo add bar.Subnet 2.2.2.2
+tinc foo add bar.Subnet 2.2.2.2
+tinc foo add bar.Subnet 3.3.3.3
+test "$(tinc foo get bar.Subnet | rm_cr)" = "1.1.1.1
+2.2.2.2
+3.3.3.3"
-tinc foo del bar.Subnet 2
-test "$(tinc foo get bar.Subnet | rm_cr)" = "1
-3"
+tinc foo del bar.Subnet 2.2.2.2
+test "$(tinc foo get bar.Subnet | rm_cr)" = "1.1.1.1
+3.3.3.3"
tinc foo del bar.Subnet
test -z "$(tinc foo get bar.Subnet)"
echo [STEP] We should not be able to get/set for nodes with invalid names
touch "$DIR_FOO/hosts/qu-ux"
-expect_code "$EXIT_FAILURE" tinc foo set qu-ux.Subnet 1
+expect_code "$EXIT_FAILURE" tinc foo set qu-ux.Subnet 1.1.1.1
echo [STEP] We should not be able to set obsolete variables unless forced
tinc foo del PrivateKey
test -z "$(tinc foo get PrivateKey)"
+
+echo [STEP] We should not be able to set/add malformed Subnets
+
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1.1.1
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1:2:3:4:5:
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1:2:3:4:5:::6
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1:2:3:4:5:6:7:8:9
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 256.256.256.256
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1:2:3:4:5:6:7:8.123
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1:2:3:4:5:6:7:1.2.3.4
+expect_code "$EXIT_FAILURE" tinc foo add Subnet a:b:c:d:e:f:g:h
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1.1.1.1/0
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1.1.1.1/-1
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1.1.1.1/33
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1::/0
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1::/-1
+expect_code "$EXIT_FAILURE" tinc foo add Subnet 1::/129
+expect_code "$EXIT_FAILURE" tinc foo add Subnet ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+test -z "$(tinc foo get Subnet)"