/*
- * Copyright (c) 2008, 2009, 2010 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010, 2012, 2013, 2014 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* limitations under the License.
*/
+#include <config.h>
+#undef NDEBUG
#include "stp.h"
#include <assert.h>
#include <ctype.h>
#include <inttypes.h>
#include <stdarg.h>
#include <stdlib.h>
+#include "dp-packet.h"
#include "ofpbuf.h"
+#include "ovstest.h"
#include "packets.h"
+#include "openvswitch/vlog.h"
struct bpdu {
int port_no;
}
static void
-send_bpdu(struct ofpbuf *pkt, int port_no, void *b_)
+send_bpdu(struct dp_packet *pkt, int port_no, void *b_)
{
struct bridge *b = b_;
struct lan *lan;
assert(port_no < b->n_ports);
lan = b->ports[port_no];
if (lan) {
- const void *data = pkt->l3;
- size_t size = (char *) ofpbuf_tail(pkt) - (char *) data;
+ const void *data = dp_packet_l3(pkt);
+ size_t size = (char *) dp_packet_tail(pkt) - (char *) data;
int i;
for (i = 0; i < lan->n_conns; i++) {
}
}
}
- ofpbuf_delete(pkt);
+ dp_packet_delete(pkt);
}
static struct bridge *
}
static void
-dump_lan_tree(struct test_case *tc, struct lan *lan, int level)
+dump_lan_tree(struct test_case *tc, struct lan *lan, int level)
{
int i;
}
}
-static void
+OVS_NO_RETURN static void
err(const char *message, ...)
- PRINTF_FORMAT(1, 2)
- NO_RETURN;
+ OVS_PRINTF_FORMAT(1, 2);
static void
err(const char *message, ...)
{
va_list args;
- fprintf(stderr, "%s:%d:%td: ", file_name, line_number, pos - line);
+ fprintf(stderr, "%s:%d:%"PRIdPTR": ", file_name, line_number, pos - line);
va_start(args, message);
vfprintf(stderr, message, args);
va_end(args);
static void
warn(const char *message, ...)
- PRINTF_FORMAT(1, 2);
+ OVS_PRINTF_FORMAT(1, 2);
static void
warn(const char *message, ...)
}
}
-int
-main(int argc, char *argv[])
+static void
+test_stp_main(int argc, char *argv[])
{
struct test_case *tc;
FILE *input_file;
int i;
+ vlog_set_pattern(VLF_CONSOLE, "%c|%p|%m");
+ vlog_set_levels(NULL, VLF_SYSLOG, VLL_OFF);
+
if (argc != 2) {
ovs_fatal(0, "usage: test-stp INPUT.STP\n");
}
lan = NULL;
} else if (strlen(token) == 1
&& islower((unsigned char)*token)) {
- lan = tc->lans[*token - 'a'];
+ lan = tc->lans[*token - 'a'];
} else {
err("%s is not a valid LAN name "
"(0 or a lowercase letter)", token);
for (i = 0; i < tc->n_lans; i++) {
struct lan *lan = tc->lans[i];
- free((char *) lan->name);
+ free(CONST_CAST(char *, lan->name));
free(lan);
}
for (i = 0; i < tc->n_bridges; i++) {
struct bridge *bridge = tc->bridges[i];
- stp_destroy(bridge->stp);
+ stp_unref(bridge->stp);
free(bridge);
}
free(tc);
-
- return 0;
+ fclose(input_file);
}
+
+OVSTEST_REGISTER("test-stp", test_stp_main);