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