tests: Add test suite for packets.h.
authorJustin Pettit <jpettit@nicira.com>
Sat, 15 Jan 2011 19:12:12 +0000 (11:12 -0800)
committerJustin Pettit <jpettit@nicira.com>
Tue, 1 Feb 2011 21:43:14 +0000 (13:43 -0800)
This only tests ip_is_cidr(), since that is the only tricky function
currently defined.  This will get more use once IPv6 functions are
added.

tests/.gitignore
tests/automake.mk
tests/library.at
tests/test-packets.c [new file with mode: 0644]

index 71c2499848e212e381f376d11e8a32a5fd387bb4..90f173786978a3eb9b101d8f5b8760cf2ddc6465 100644 (file)
@@ -20,6 +20,7 @@
 /test-lockfile
 /test-multipath
 /test-ovsdb
+/test-packets
 /test-random
 /test-reconnect
 /test-strtok_r
index f67c0e78e6f12b839ecfda3ea1f6de7be1ff72ae..09ec23f2262ce8d82395c4b173f6dcdc668e4090 100644 (file)
@@ -78,6 +78,7 @@ lcov_wrappers = \
        tests/lcov/test-lockfile \
        tests/lcov/test-multipath \
        tests/lcov/test-ovsdb \
+       tests/lcov/test-packets \
        tests/lcov/test-random \
        tests/lcov/test-reconnect \
        tests/lcov/test-sha1 \
@@ -130,6 +131,7 @@ valgrind_wrappers = \
        tests/valgrind/test-lockfile \
        tests/valgrind/test-multipath \
        tests/valgrind/test-ovsdb \
+       tests/valgrind/test-packets \
        tests/valgrind/test-random \
        tests/valgrind/test-reconnect \
        tests/valgrind/test-sha1 \
@@ -227,6 +229,10 @@ noinst_PROGRAMS += tests/test-multipath
 tests_test_multipath_SOURCES = tests/test-multipath.c
 tests_test_multipath_LDADD = lib/libopenvswitch.a
 
+noinst_PROGRAMS += tests/test-packets
+tests_test_packets_SOURCES = tests/test-packets.c
+tests_test_packets_LDADD = lib/libopenvswitch.a
+
 noinst_PROGRAMS += tests/test-random
 tests_test_random_SOURCES = tests/test-random.c
 tests_test_random_LDADD = lib/libopenvswitch.a
index 418b279753e81ef9fa1d079997b071120493ebfd..d199373c269c19d2896bf5480ddd096612120451 100644 (file)
@@ -22,6 +22,10 @@ AT_SETUP([test linked lists])
 AT_CHECK([test-list], [0], [ignore])
 AT_CLEANUP
 
+AT_SETUP([test packet library])
+AT_CHECK([test-packets])
+AT_CLEANUP
+
 AT_SETUP([test SHA-1])
 AT_CHECK([test-sha1], [0], [ignore])
 AT_CLEANUP
diff --git a/tests/test-packets.c b/tests/test-packets.c
new file mode 100644 (file)
index 0000000..464a8eb
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2011 Nicira Networks.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <config.h>
+#include "packets.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#undef NDEBUG
+#include <assert.h>
+
+
+static void
+test_ipv4_cidr(void)
+{
+    assert(ip_is_cidr(htonl(0x00000000)));
+    assert(ip_is_cidr(htonl(0x80000000)));
+    assert(ip_is_cidr(htonl(0xf0000000)));
+    assert(ip_is_cidr(htonl(0xffffffe0)));
+    assert(ip_is_cidr(htonl(0xffffffff)));
+
+    assert(!ip_is_cidr(htonl(0x00000001)));
+    assert(!ip_is_cidr(htonl(0x40000000)));
+    assert(!ip_is_cidr(htonl(0x0fffffff)));
+    assert(!ip_is_cidr(htonl(0xffffffd0)));
+}
+
+int
+main(void)
+{
+    test_ipv4_cidr();
+
+    return 0;
+}