[zebra] Add test rig code, for testing the zebra RIB

2006-07-27 Paul Jakma <paul.jakma@sun.com>

	* {ioctl,kernel}_null.c: Dummy/Null kernel method implementations,
	  useful for testing zebra code that calls such methods.
	* {redistribute,misc}_null.c: Dummy/Null methods, as above. But
	  for zclient, and for various misc functions.
	* test_main.c: Test harness for zebra, currently just to test the
	  RIB.
	* Makefile.am: Build testzebra using above.
	* zebra_rib.c: Add a global for the workqueue hold time, useful
	  for testing.
diff --git a/zebra/kernel_null.c b/zebra/kernel_null.c
new file mode 100644
index 0000000..a84f437
--- /dev/null
+++ b/zebra/kernel_null.c
@@ -0,0 +1,25 @@
+/* NULL kernel methods for testing. */
+
+#include <zebra.h>
+
+#include "zebra/zserv.h"
+#include "zebra/rt.h"
+#include "zebra/redistribute.h"
+
+int kernel_add_ipv4 (struct prefix *a, struct rib *b) { return 0; }
+#pragma weak kernel_delete_ipv4 = kernel_add_ipv4
+int kernel_add_ipv6 (struct prefix *a, struct rib *b) { return 0; }
+#pragma weak kernel_delete_ipv6 = kernel_add_ipv6
+int kernel_delete_ipv6_old (struct prefix_ipv6 *dest, struct in6_addr *gate,
+                            unsigned int index, int flags, int table)
+{ return 0; }
+
+int kernel_add_route (struct prefix_ipv4 *a, struct in_addr *b, int c, int d)
+{ return 0; }
+
+int kernel_address_add_ipv4 (struct interface *a, struct connected *b)
+{ return 0; }
+#pragma weak kernel_address_delete_ipv4 = kernel_address_add_ipv4
+
+void kernel_init (void) { return; }
+#pragma weak route_read = kernel_init