]> git.proxmox.com Git - mirror_ovs.git/blob - tests/ovsdb-macros.at
ovsdb-idl: Return correct seqno from ovsdb_idl_db_set_condition().
[mirror_ovs.git] / tests / ovsdb-macros.at
1 dnl OVSDB_INIT([$1])
2 dnl
3 dnl Creates an empty database named $1.
4 m4_define([OVSDB_INIT],
5 [AT_CHECK(
6 [ovsdb-tool create $1 $abs_top_srcdir/vswitchd/vswitch.ovsschema],
7 [0], [stdout], [ignore])
8 AT_CHECK(
9 [[ovsdb-tool transact $1 \
10 '["Open_vSwitch",
11 {"op": "insert",
12 "table": "Open_vSwitch",
13 "row": {}}]']],
14 [0], [ignore], [ignore])])
15
16 # OVSDB_CHECK_POSITIVE(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ])
17 #
18 # Runs "test-ovsdb TEST-OVSDB-ARGS" and checks that it exits with
19 # status 0 and prints OUTPUT on stdout.
20 #
21 # TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS.
22 m4_define([OVSDB_CHECK_POSITIVE],
23 [AT_SETUP([$1])
24 AT_KEYWORDS([ovsdb positive $4])
25 AT_CHECK([test-ovsdb $2], [0], [$3
26 ], [])
27 AT_CLEANUP])
28
29 # OVSDB_CHECK_POSITIVE_PY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ],
30 # [PY-CHECK])
31 #
32 # Runs "test-ovsdb.py TEST-OVSDB-ARGS" and checks that it exits with
33 # status 0 and prints OUTPUT on stdout.
34 #
35 # PY-CHECK is expanded before the check. It can check for features of the
36 # Python implementation that are required for the test to pass.
37 #
38 # TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS.
39 m4_define([OVSDB_CHECK_POSITIVE_PY],
40 [AT_SETUP([$1])
41 $6
42 AT_KEYWORDS([ovsdb positive Python $4])
43 AT_CHECK([$PYTHON3 $srcdir/test-ovsdb.py $2], [0], [$3
44 ], [])
45 AT_CLEANUP])
46
47 # OVSDB_CHECK_POSITIVE_CPY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS],
48 # [PREREQ], [PY3-CHECK])
49 #
50 # Runs identical C and Python tests, as specified.
51 m4_define([OVSDB_CHECK_POSITIVE_CPY],
52 [OVSDB_CHECK_POSITIVE([$1 - C], [$2], [$3], [$4], [$5])
53 OVSDB_CHECK_POSITIVE_PY([$1 - Python3], [$2], [$3], [$4], [$5], [$7])])
54
55 # OVSDB_CHECK_NEGATIVE(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ])
56 #
57 # Runs "test-ovsdb TEST-OVSDB-ARGS" and checks that it exits with
58 # status 1 and that its output on stdout contains substring OUTPUT.
59 # TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS.
60 m4_define([OVSDB_CHECK_NEGATIVE],
61 [AT_SETUP([$1])
62 AT_KEYWORDS([ovsdb negative $4])
63 AT_CHECK([test-ovsdb $2], [1], [], [stderr])
64 m4_assert(m4_len([$3]))
65 AT_CHECK(
66 [if grep -F -e "AS_ESCAPE([$3])" stderr
67 then
68 :
69 else
70 exit 99
71 fi],
72 [0], [ignore], [ignore])
73 AT_CLEANUP])
74
75 # OVSDB_CHECK_NEGATIVE_PY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS], [PREREQ])
76 #
77 # Runs "test-ovsdb TEST-OVSDB-ARGS" and checks that it exits with
78 # status 1 and that its output on stdout contains substring OUTPUT.
79 # TITLE is provided to AT_SETUP and KEYWORDS to AT_KEYWORDS.
80 m4_define([OVSDB_CHECK_NEGATIVE_PY],
81 [AT_SETUP([$1])
82 AT_KEYWORDS([ovsdb negative $4])
83 AT_CHECK([$PYTHON3 $srcdir/test-ovsdb.py $2], [1], [], [stderr])
84 m4_assert(m4_len([$3]))
85 AT_CHECK(
86 [if grep -F -e "AS_ESCAPE([$3])" stderr
87 then
88 :
89 else
90 exit 99
91 fi],
92 [0], [ignore], [ignore])
93 AT_CLEANUP])
94
95 # OVSDB_CHECK_NEGATIVE_CPY(TITLE, TEST-OVSDB-ARGS, OUTPUT, [KEYWORDS],
96 # [PREREQ])
97 #
98 # Runs identical C and Python tests, as specified.
99 m4_define([OVSDB_CHECK_NEGATIVE_CPY],
100 [OVSDB_CHECK_NEGATIVE([$1 - C], [$2], [$3], [$4], [$5])
101 OVSDB_CHECK_NEGATIVE_PY([$1 - Python3], [$2], [$3], [$4], [$5])])
102
103 OVS_START_SHELL_HELPERS
104 ovsdb_client_wait() {
105 ovsdb-client -vconsole:warn -vreconnect:err -vjsonrpc:err -vtimeval:off -vfile -vsyslog:off -vvlog:off wait "$@"
106 }
107 OVS_END_SHELL_HELPERS