From d51650f7621361d56b24eba141dc3f06042c1836 Mon Sep 17 00:00:00 2001 From: George Neville-Neil <gnn@freebsd.org> Date: Tue, 28 Feb 2017 20:27:27 +0000 Subject: [PATCH] First cut at making debug mode run time selectable --- gtests/net/packetdrill/checksum_test.c | 2 ++ gtests/net/packetdrill/config.c | 6 ++++++ gtests/net/packetdrill/logging.h | 4 ++-- gtests/net/packetdrill/packet_parser.c | 4 ++-- gtests/net/packetdrill/packet_parser_test.c | 2 ++ gtests/net/packetdrill/packet_socket_pcap.c | 2 +- gtests/net/packetdrill/packet_to_string_test.c | 2 ++ gtests/net/packetdrill/packetdrill.c | 2 ++ gtests/net/packetdrill/run_packet.c | 2 +- gtests/net/packetdrill/run_system_call.c | 4 ++-- 10 files changed, 22 insertions(+), 8 deletions(-) diff --git a/gtests/net/packetdrill/checksum_test.c b/gtests/net/packetdrill/checksum_test.c index 14b9d7ea..fb802dbc 100644 --- a/gtests/net/packetdrill/checksum_test.c +++ b/gtests/net/packetdrill/checksum_test.c @@ -32,6 +32,8 @@ #include "tcp.h" #include "udplite.h" +int debug_logging=0; + static void test_tcp_udp_v4_checksum(void) { u8 data[] __aligned(4) = { diff --git a/gtests/net/packetdrill/config.c b/gtests/net/packetdrill/config.c index 480bde55..2c29cbc1 100644 --- a/gtests/net/packetdrill/config.c +++ b/gtests/net/packetdrill/config.c @@ -59,6 +59,7 @@ enum option_codes { OPT_NON_FATAL, OPT_DRY_RUN, OPT_VERBOSE = 'v', /* our only single-letter option */ + OPT_DEBUG, }; /* Specification of command line options for getopt_long(). */ @@ -87,6 +88,7 @@ struct option options[] = { { "non_fatal", .has_arg = true, NULL, OPT_NON_FATAL }, { "dry_run", .has_arg = false, NULL, OPT_DRY_RUN }, { "verbose", .has_arg = false, NULL, OPT_VERBOSE }, + { "debug", .has_arg = false, NULL, OPT_DEBUG }, { NULL }, }; @@ -117,6 +119,7 @@ void show_usage(void) "\t[--wire_server_dev=<eth_dev_name>]\n" "\t[--dry_run]\n" "\t[--verbose|-v]\n" + "\t[--debug]\n" "\tscript_path ...\n"); } @@ -466,6 +469,9 @@ static void process_option(int opt, char *optarg, struct config *config, case OPT_VERBOSE: config->verbose = true; break; + case OPT_DEBUG: + debug_logging = true; + break; default: show_usage(); exit(EXIT_FAILURE); diff --git a/gtests/net/packetdrill/logging.h b/gtests/net/packetdrill/logging.h index 2544c59c..53a2c601 100644 --- a/gtests/net/packetdrill/logging.h +++ b/gtests/net/packetdrill/logging.h @@ -28,11 +28,11 @@ #include "types.h" /* Enable this to get debug logging. */ -#define DEBUG_LOGGING 0 +extern int debug_logging; /* Use a gcc variadic macro to conditionally compile debug printing. */ #define DEBUGP(...) \ - if (DEBUG_LOGGING) { \ + if (debug_logging) { \ fprintf(stdout, __VA_ARGS__); \ fflush(stdout); \ } diff --git a/gtests/net/packetdrill/packet_parser.c b/gtests/net/packetdrill/packet_parser.c index 6599777d..056b1e0e 100644 --- a/gtests/net/packetdrill/packet_parser.c +++ b/gtests/net/packetdrill/packet_parser.c @@ -232,7 +232,7 @@ static int parse_ipv4(struct packet *packet, u8 *header_start, u8 *packet_end, p += ip_header_bytes; assert(p <= packet_end); - if (DEBUG_LOGGING) { + if (debug_logging) { char src_string[ADDR_STR_LEN]; char dst_string[ADDR_STR_LEN]; struct ip_address src_ip, dst_ip; @@ -304,7 +304,7 @@ static int parse_ipv6(struct packet *packet, u8 *header_start, u8 *packet_end, p += ip_header_bytes; assert(p <= packet_end); - if (DEBUG_LOGGING) { + if (debug_logging) { char src_string[ADDR_STR_LEN]; char dst_string[ADDR_STR_LEN]; struct ip_address src_ip, dst_ip; diff --git a/gtests/net/packetdrill/packet_parser_test.c b/gtests/net/packetdrill/packet_parser_test.c index 6eb6b0bd..07ef9592 100644 --- a/gtests/net/packetdrill/packet_parser_test.c +++ b/gtests/net/packetdrill/packet_parser_test.c @@ -29,6 +29,8 @@ #include <stdlib.h> #include <string.h> +int debug_logging=0; + static void test_parse_sctp_ipv4_packet(void) { /* A SCTP/IPv4 packet. */ diff --git a/gtests/net/packetdrill/packet_socket_pcap.c b/gtests/net/packetdrill/packet_socket_pcap.c index 27d51f73..1e2bd210 100644 --- a/gtests/net/packetdrill/packet_socket_pcap.c +++ b/gtests/net/packetdrill/packet_socket_pcap.c @@ -303,7 +303,7 @@ int packet_socket_receive(struct packet_socket *psock, DEBUGP("pcap_next_ex: caplen:%u len:%u offset:%d\n", pkt_header->caplen, pkt_header->len, psock->pcap_offset); - if (DEBUG_LOGGING) { + if (debug_logging) { /* Dump a hex dump of packet sniffed by pcap. */ char *hex = NULL; hex_dump(pkt_data, pkt_header->caplen, &hex); diff --git a/gtests/net/packetdrill/packet_to_string_test.c b/gtests/net/packetdrill/packet_to_string_test.c index 965395ba..560aa24d 100644 --- a/gtests/net/packetdrill/packet_to_string_test.c +++ b/gtests/net/packetdrill/packet_to_string_test.c @@ -31,6 +31,8 @@ #include "packet_parser.h" #include "logging.h" +int debug_logging=0; + static void test_sctp_ipv4_packet_to_string(void) { /* An IPv4/SCTP packet. */ diff --git a/gtests/net/packetdrill/packetdrill.c b/gtests/net/packetdrill/packetdrill.c index aef05c71..574bf0b4 100644 --- a/gtests/net/packetdrill/packetdrill.c +++ b/gtests/net/packetdrill/packetdrill.c @@ -41,6 +41,8 @@ #include "system.h" #include "wire_server.h" +int debug_logging=0; + static void run_init_scripts(struct config *config) { char *cp1, *cp2, *scripts, *error; diff --git a/gtests/net/packetdrill/run_packet.c b/gtests/net/packetdrill/run_packet.c index f03a4db2..30638f1a 100644 --- a/gtests/net/packetdrill/run_packet.c +++ b/gtests/net/packetdrill/run_packet.c @@ -328,7 +328,7 @@ static struct socket *handle_listen_for_script_packet( socket->live.remote_isn = ntohl(packet->tcp->seq); } - if (DEBUG_LOGGING) { + if (debug_logging) { char local_string[ADDR_STR_LEN]; char remote_string[ADDR_STR_LEN]; DEBUGP("live: local: %s.%d\n", diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c index 1ec42605..6972d661 100644 --- a/gtests/net/packetdrill/run_system_call.c +++ b/gtests/net/packetdrill/run_system_call.c @@ -1841,7 +1841,7 @@ static int run_syscall_accept(struct state *state, } for (socket = state->sockets; socket != NULL; socket = socket->next) { - if (DEBUG_LOGGING) { + if (debug_logging) { char remote_string[ADDR_STR_LEN]; DEBUGP("socket state=%d script addr: %s:%d\n", socket->state, @@ -1886,7 +1886,7 @@ static int run_syscall_accept(struct state *state, socket->live.fd = live_accepted_fd; socket->script.fd = script_accepted_fd; - if (DEBUG_LOGGING) { + if (debug_logging) { char local_string[ADDR_STR_LEN]; char remote_string[ADDR_STR_LEN]; DEBUGP("live: local: %s.%d\n", -- GitLab