]> git.proxmox.com Git - mirror_ovs.git/blame - tests/ovsdb-trigger.at
ovsdb: Use column diffs for ovsdb and raft log entries.
[mirror_ovs.git] / tests / ovsdb-trigger.at
CommitLineData
f85f8ebb
BP
1AT_BANNER([OVSDB -- triggers])
2
3# This is like OVSDB_CHECK_POSITIVE, except that UUIDs in the output
4# are replaced by markers of the form <N> where N is a number. The
5# first unique UUID is replaced by <0>, the next by <1>, and so on.
6# If a given UUID appears more than once it is always replaced by the
7# same marker.
8m4_define([OVSDB_CHECK_TRIGGER],
9 [AT_SETUP([$1])
10 AT_KEYWORDS([ovsdb execute execution trigger positive $4])
7c126fbb 11 AT_CHECK([test-ovsdb trigger $2], [0], [stdout], [])
c724bd67 12 AT_CHECK([uuidfilt stdout], [0], [$3])
f85f8ebb
BP
13 AT_CLEANUP])
14
15OVSDB_CHECK_TRIGGER([trigger fires immediately],
39ab07af 16 ["`ordinal_schema`" [\
9cb53f26
BP
17 '["ordinals",
18 {"op": "insert",
f85f8ebb
BP
19 "table": "ordinals",
20 "row": {"number": 0, "name": "zero"}},
21 {"op": "insert",
22 "table": "ordinals",
23 "row": {"number": 1, "name": "one"}},
24 {"op": "wait",
25 "timeout": 10,
26 "table": "ordinals",
27 "where": [],
28 "columns": ["name", "number"],
29 "until": "==",
30 "rows": [{"name": "zero", "number": 0},
31 {"name": "one", "number": 1}]},
32 {"op": "insert",
33 "table": "ordinals",
34 "row": {"number": 2, "name": "two"}}]']],
35 [[t=0: trigger 0 (immediate): [{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{},{"uuid":["uuid","<2>"]}]
36]])
37
38OVSDB_CHECK_TRIGGER([trigger times out],
39ab07af 39 ["`ordinal_schema`" [\
9cb53f26
BP
40 '["ordinals",
41 {"op": "insert",
f85f8ebb
BP
42 "table": "ordinals",
43 "row": {"number": 0, "name": "zero"}},
44 {"op": "insert",
45 "table": "ordinals",
46 "row": {"number": 1, "name": "one"}},
47 {"op": "wait",
48 "timeout": 10,
49 "table": "ordinals",
50 "where": [],
51 "columns": ["name", "number"],
52 "until": "==",
53 "rows": [{"name": "zero", "number": 0},
54 {"name": "one", "number": 1},
55 {"name": "two", "number": 2}]}]' \
56 '["advance", 10]']],
57 [[t=0: new trigger 0
58t=10: trigger 0 (delayed): [{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"wait\" timed out after 10 ms","error":"timed out"}]
59]])
60
61OVSDB_CHECK_TRIGGER([trigger fires after delay],
39ab07af 62 ["`ordinal_schema`" [\
9cb53f26
BP
63 '["ordinals",
64 {"op": "insert",
f85f8ebb
BP
65 "table": "ordinals",
66 "row": {"number": 0, "name": "zero"}},
67 {"op": "insert",
68 "table": "ordinals",
69 "row": {"number": 1, "name": "one"}}]' \
70 '["advance", 5]' \
9cb53f26
BP
71 '["ordinals",
72 {"op": "wait",
f85f8ebb
BP
73 "timeout": 10,
74 "table": "ordinals",
75 "where": [],
76 "columns": ["name", "number"],
77 "until": "==",
78 "rows": [{"name": "zero", "number": 0},
79 {"name": "one", "number": 1},
80 {"name": "two", "number": 2}]}]' \
81 '["advance", 5]' \
9cb53f26
BP
82 '["ordinals",
83 {"op": "insert",
f85f8ebb
BP
84 "table": "ordinals",
85 "row": {"number": 2, "name": "two"}}]']],
86 [[t=0: trigger 0 (immediate): [{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]}]
87t=5: new trigger 1
88t=10: trigger 2 (immediate): [{"uuid":["uuid","<2>"]}]
89t=10: trigger 1 (delayed): [{}]
90]])
91
92OVSDB_CHECK_TRIGGER([delayed trigger modifies database],
39ab07af 93 ["`ordinal_schema`" [\
9cb53f26
BP
94 '["ordinals",
95 {"op": "insert",
f85f8ebb
BP
96 "table": "ordinals",
97 "row": {"number": 0, "name": "zero"}},
98 {"op": "insert",
99 "table": "ordinals",
100 "row": {"number": 1, "name": "one"}}]' \
101 '["advance", 5]' \
9cb53f26
BP
102 '["ordinals",
103 {"op": "wait",
f85f8ebb
BP
104 "timeout": 10,
105 "table": "ordinals",
106 "where": [],
107 "columns": ["name", "number"],
108 "until": "==",
109 "rows": [{"name": "zero", "number": 0},
110 {"name": "one", "number": 1},
111 {"name": "two", "number": 2}]},
112 {"op": "delete",
113 "table": "ordinals",
114 "where": [["number", "<", 2]]}]' \
115 '["advance", 5]' \
9cb53f26
BP
116 '["ordinals",
117 {"op": "insert",
f85f8ebb
BP
118 "table": "ordinals",
119 "row": {"number": 2, "name": "two"}}]' \
120 '["advance", 5]' \
9cb53f26
BP
121 '["ordinals",
122 {"op": "select",
f85f8ebb
BP
123 "table": "ordinals",
124 "where": []}]']],
125 [[t=0: trigger 0 (immediate): [{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]}]
126t=5: new trigger 1
127t=10: trigger 2 (immediate): [{"uuid":["uuid","<2>"]}]
128t=10: trigger 1 (delayed): [{},{"count":2}]
129t=15: trigger 3 (immediate): [{"rows":[{"_uuid":["uuid","<2>"],"_version":["uuid","<3>"],"name":"two","number":2}]}]
130]])
131
132OVSDB_CHECK_TRIGGER([one delayed trigger wakes up another],
39ab07af 133 ["`ordinal_schema`" [\
9cb53f26
BP
134 '["ordinals",
135 {"op": "insert",
f85f8ebb
BP
136 "table": "ordinals",
137 "row": {"number": 0, "name": "zero"}},
138 {"op": "insert",
139 "table": "ordinals",
140 "row": {"number": 1, "name": "one"}}]' \
141 '["advance", 5]' \
9cb53f26
BP
142 '["ordinals",
143 {"op": "wait",
f85f8ebb
BP
144 "timeout": 10,
145 "table": "ordinals",
146 "where": [],
147 "columns": ["name", "number"],
148 "until": "==",
149 "rows": [{"name": "two", "number": 2}]},
150 {"op": "delete",
151 "table": "ordinals",
152 "where": [["number", "==", 2]]},
153 {"op": "insert",
154 "table": "ordinals",
155 "row": {"number": 3, "name": "three"}}]' \
9cb53f26
BP
156 '["ordinals",
157 {"op": "wait",
f85f8ebb
BP
158 "timeout": 10,
159 "table": "ordinals",
160 "where": [],
161 "columns": ["name", "number"],
162 "until": "==",
163 "rows": [{"name": "zero", "number": 0},
164 {"name": "one", "number": 1},
165 {"name": "two", "number": 2}]},
166 {"op": "delete",
167 "table": "ordinals",
168 "where": [["number", "<", 2]]}]' \
169 '["advance", 5]' \
9cb53f26
BP
170 '["ordinals",
171 {"op": "insert",
f85f8ebb
BP
172 "table": "ordinals",
173 "row": {"number": 2, "name": "two"}}]' \
174 '["advance", 5]' \
9cb53f26
BP
175 '["ordinals",
176 {"op": "select",
f85f8ebb
BP
177 "table": "ordinals",
178 "where": []}]']],
179 [[t=0: trigger 0 (immediate): [{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]}]
180t=5: new trigger 1
181t=5: new trigger 2
182t=10: trigger 3 (immediate): [{"uuid":["uuid","<2>"]}]
183t=10: trigger 2 (delayed): [{},{"count":2}]
1cae21ee 184t=10: trigger 1 (delayed): [{},{"count":1},{"uuid":["uuid","<3>"]}]
f85f8ebb
BP
185t=15: trigger 4 (immediate): [{"rows":[{"_uuid":["uuid","<3>"],"_version":["uuid","<4>"],"name":"three","number":3}]}]
186]])
187