]> git.proxmox.com Git - mirror_ovs.git/blob - tests/library.at
ovsdb-idl: Return correct seqno from ovsdb_idl_db_set_condition().
[mirror_ovs.git] / tests / library.at
1 AT_BANNER([library unit tests])
2
3 AT_SETUP([flow extractor])
4 AT_CHECK([$PYTHON3 $srcdir/flowgen.py >/dev/null])
5 AT_CHECK([ovstest test-flows flows pcap], [0], [checked 247 packets, 0 errors
6 ])
7 AT_CLEANUP
8
9 AT_SETUP([TCP/IP checksumming])
10 AT_CHECK([ovstest test-csum], [0], [....#....#....####................................#................................#
11 ])
12 AT_CLEANUP
13
14 AT_SETUP([hash functions])
15 AT_CHECK([ovstest test-hash])
16 AT_CLEANUP
17
18 AT_SETUP([hash map])
19 AT_KEYWORDS([hmap])
20 AT_CHECK([ovstest test-hmap], [0], [............
21 ])
22 AT_CLEANUP
23
24 AT_SETUP([hash index])
25 AT_KEYWORDS([hindex])
26 AT_CHECK([ovstest test-hindex], [0], [.....................
27 ])
28 AT_CLEANUP
29
30 AT_SETUP([cuckoo hash])
31 AT_KEYWORDS([cmap])
32 AT_CHECK([ovstest test-cmap check 1], [0], [...
33 ])
34 AT_CLEANUP
35
36 AT_SETUP([counting cuckoo hash])
37 AT_KEYWORDS([cmap])
38 AT_CHECK([ovstest test-ccmap check 1], [0], [...
39 ])
40 AT_CLEANUP
41
42 AT_SETUP([atomic operations])
43 AT_CHECK([ovstest test-atomic])
44 AT_CLEANUP
45
46 AT_SETUP([test linked lists])
47 AT_CHECK([ovstest test-list], [0], [....
48 ])
49 AT_CLEANUP
50
51 AT_SETUP([packet library])
52 AT_CHECK([ovstest test-packets])
53 AT_CLEANUP
54
55 AT_SETUP([SHA-1])
56 AT_CHECK([ovstest test-sha1], [0], [.........
57 ])
58 AT_CLEANUP
59
60 AT_SETUP([test skiplist])
61 AT_KEYWORDS([skiplist])
62 AT_CHECK([ovstest test-skiplist], [0], [skiplist insert
63 skiplist delete
64 skiplist find
65 skiplist forward_to
66 skiplist random
67
68 ])
69 AT_CLEANUP
70
71 AT_SETUP([type properties])
72 AT_CHECK([test-type-props])
73 AT_CLEANUP
74
75 AT_SETUP([strtok_r bug fix])
76 AT_CHECK([test-strtok_r], [0], [NULL NULL
77 ])
78 AT_CLEANUP
79
80 AT_SETUP([byte order conversion])
81 AT_KEYWORDS([byte order])
82 AT_CHECK([ovstest test-byte-order])
83 AT_CLEANUP
84
85 AT_SETUP([random number generator])
86 AT_CHECK([ovstest test-random], [0], [dnl
87 average=7fa2014f
88
89 bit 0 1
90 0 4946 5054
91 1 4939 5061
92 2 4947 5053
93 3 4935 5065
94 4 5004 4996
95 5 4998 5002
96 6 5062 4938
97 7 5009 4991
98 8 5001 4999
99 9 5022 4978
100 10 5006 4994
101 11 5039 4961
102 12 4940 5060
103 13 5048 4952
104 14 4930 5070
105 15 4973 5027
106 16 4954 5046
107 17 5043 4957
108 18 5020 4980
109 19 5104 4896
110 20 5051 4949
111 21 5003 4997
112 22 5110 4890
113 23 4950 5050
114 24 5016 4984
115 25 5019 4981
116 26 4948 5052
117 27 4995 5005
118 28 4995 5005
119 29 4969 5031
120 30 5109 4891
121 31 4984 5016
122 (expected values are 5000)
123
124 nibble 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
125 0 640 589 610 613 588 632 650 613 582 646 627 640 612 650 637 671
126 1 626 642 663 620 630 609 617 602 615 638 614 644 641 597 598 644
127 2 667 611 617 613 609 629 642 651 604 641 594 659 651 610 617 585
128 3 621 662 594 605 618 644 616 613 613 616 611 608 614 660 653 652
129 4 641 668 621 664 619 624 625 642 624 629 607 566 599 639 618 614
130 5 666 629 620 621 581 615 598 620 630 651 671 622 628 603 657 588
131 6 620 640 621 606 603 644 628 633 620 597 653 591 637 658 634 615
132 7 636 645 679 593 598 609 612 612 623 626 638 669 603 629 606 622
133 (expected values are 625)
134 ])
135 AT_CLEANUP
136
137 m4_foreach(
138 [testname],
139 [[ctz],
140 [clz],
141 [round_up_pow2],
142 [round_down_pow2],
143 [count_1bits],
144 [log_2_floor],
145 [bitwise_copy],
146 [bitwise_zero],
147 [bitwise_one],
148 [bitwise_is_all_zeros],
149 [bitwise_rscan],
150 [ovs_scan]],
151 [AT_SETUP([testname[()] function])
152 AT_KEYWORDS([testname])
153 AT_CHECK([ovstest test-util testname], [0], [], [])
154 AT_CLEANUP])
155
156 AT_SETUP([unix socket, short pathname - C])
157 AT_SKIP_IF([test "$IS_WIN32" = "yes"])
158 AT_CHECK([ovstest test-unix-socket x])
159 AT_CLEANUP
160
161 dnl Unix sockets with long names are problematic because the name has to
162 dnl go in a fixed-length field in struct sockaddr_un. Generally the limit
163 dnl is about 100 bytes. On Linux, we work around this by indirecting through
164 dnl a directory fd using /proc/self/fd/<dirfd>. We do not have a workaround
165 dnl for other platforms, so we skip the test there.
166 AT_SETUP([unix socket, long pathname - C])
167 AT_SKIP_IF([test "$IS_WIN32" = "yes"])
168 dnl Linux sockaddr_un has a 108-byte limit, so this needs to be longer.
169 dnl Linux "ecryptfs" has a 143-byte limit, so we use that many bytes.
170 longname=01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
171
172 dnl Skip the test if the directory can't be created (presumably the file
173 dnl system doesn't support such long names).
174 AT_CHECK([mkdir $longname || exit 77])
175
176 AT_CHECK([cd $longname && ovstest test-unix-socket ../$longname/socket socket])
177 AT_CLEANUP
178
179 AT_SETUP([unix socket, short pathname - Python3])
180 AT_SKIP_IF([test "$IS_WIN32" = "yes"])
181 AT_KEYWORDS([python unixsocket])
182 AT_CHECK([$PYTHON3 $srcdir/test-unix-socket.py x])
183 AT_CLEANUP
184
185 dnl Unix sockets with long names are problematic because the name has to
186 dnl go in a fixed-length field in struct sockaddr_un. Generally the limit
187 dnl is about 100 bytes. On Linux, we work around this by indirecting through
188 dnl a directory fd using /proc/self/fd/<dirfd>. We do not have a workaround
189 dnl for other platforms, so we skip the test there.
190 AT_SETUP([unix socket, long pathname - Python3])
191 AT_SKIP_IF([test "$IS_WIN32" = "yes"])
192 AT_KEYWORDS([python unixsocket])
193 dnl Linux sockaddr_un has a 108-byte limit, so this needs to be longer.
194 dnl Linux "ecryptfs" has a 143-byte limit, so we use that many bytes.
195 longname=01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
196
197 dnl Skip the test if the directory can't be created (presumably the file
198 dnl system doesn't support such long names).
199 AT_CHECK([mkdir $longname || exit 77])
200 AT_CHECK([cd $longname && $PYTHON3 $abs_srcdir/test-unix-socket.py ../$longname/socket socket])
201 AT_CLEANUP
202
203 AT_SETUP([ovs_assert])
204 if test "$IS_WIN32" = "yes"; then
205 exit_status=9
206 else
207 # SIGABRT + 128
208 exit_status=134
209 fi
210 AT_CHECK([ovstest test-util -voff -vfile:info '-vPATTERN:file:%c|%p|%m' --log-file assert],
211 [$exit_status], [], [stderr])
212
213 AT_CHECK([sed 's/\(opened log file\) .*/\1/
214 s/|[[^|]]*: /|/' test-util.log], [0], [dnl
215 vlog|INFO|opened log file
216 util|EMER|assertion false failed in test_assert()
217 ])
218
219 AT_CHECK([sed 's/.*: //
220 1q' stderr], [0],
221 [assertion false failed in test_assert()
222 ])
223
224 AT_CLEANUP
225
226 AT_SETUP([saturating arithmetic])
227 AT_KEYWORDS([sat math sat_math])
228 AT_CHECK([ovstest test-util sat_math])
229 AT_CLEANUP
230
231 AT_SETUP([snprintf])
232 AT_CHECK([ovstest test-util snprintf])
233 AT_CLEANUP
234
235 AT_SETUP([bitmap functions])
236 AT_CHECK([ovstest test-bitmap check], [0], [..
237 ])
238 AT_CLEANUP
239
240 AT_SETUP([use of public headers])
241 AT_CHECK([test-lib], [0], [])
242 AT_CLEANUP
243
244 AT_SETUP([ofpbuf module])
245 AT_CHECK([ovstest test-ofpbuf], [0], [])
246 AT_CLEANUP
247
248 AT_SETUP([rcu])
249 AT_CHECK([ovstest test-rcu-quiesce], [0], [])
250 AT_CLEANUP
251
252 AT_SETUP([stopwatch module])
253 AT_CHECK([ovstest test-stopwatch], [0], [......
254 ], [ignore])
255 AT_CLEANUP