diff options
Diffstat (limited to 't/helper')
| -rw-r--r-- | t/helper/test-bundle-uri.c | 2 | ||||
| -rw-r--r-- | t/helper/test-pkt-line.c | 60 | ||||
| -rw-r--r-- | t/helper/test-reach.c | 2 | ||||
| -rw-r--r-- | t/helper/test-regex.c | 2 | ||||
| -rw-r--r-- | t/helper/test-repository.c | 2 | ||||
| -rw-r--r-- | t/helper/test-simple-ipc.c | 1 | ||||
| -rw-r--r-- | t/helper/test-submodule.c | 1 | ||||
| -rw-r--r-- | t/helper/test-trace2.c | 55 |
8 files changed, 112 insertions, 13 deletions
diff --git a/t/helper/test-bundle-uri.c b/t/helper/test-bundle-uri.c index 475058592d..09dc78733c 100644 --- a/t/helper/test-bundle-uri.c +++ b/t/helper/test-bundle-uri.c @@ -5,9 +5,7 @@ #include "strbuf.h" #include "string-list.h" #include "transport.h" -#include "ref-filter.h" #include "remote.h" -#include "refs.h" enum input_mode { KEY_VALUE_PAIRS, diff --git a/t/helper/test-pkt-line.c b/t/helper/test-pkt-line.c index f4d134a145..4daa82f00f 100644 --- a/t/helper/test-pkt-line.c +++ b/t/helper/test-pkt-line.c @@ -1,7 +1,9 @@ #include "git-compat-util.h" #include "test-tool.h" #include "pkt-line.h" +#include "sideband.h" #include "write-or-die.h" +#include "parse-options.h" static void pack_line(const char *line) { @@ -64,12 +66,33 @@ static void unpack(void) } } -static void unpack_sideband(void) +static void unpack_sideband(int argc, const char **argv) { struct packet_reader reader; - packet_reader_init(&reader, 0, NULL, 0, - PACKET_READ_GENTLE_ON_EOF | - PACKET_READ_CHOMP_NEWLINE); + int options = PACKET_READ_GENTLE_ON_EOF; + int chomp_newline = 1; + int reader_use_sideband = 0; + const char *const unpack_sideband_usage[] = { + "test_tool unpack_sideband [options...]", NULL + }; + struct option cmd_options[] = { + OPT_BOOL(0, "reader-use-sideband", &reader_use_sideband, + "set use_sideband bit for packet reader (Default: off)"), + OPT_BOOL(0, "chomp-newline", &chomp_newline, + "chomp newline in packet (Default: on)"), + OPT_END() + }; + + argc = parse_options(argc, argv, "", cmd_options, unpack_sideband_usage, + 0); + if (argc > 0) + usage_msg_opt(_("too many arguments"), unpack_sideband_usage, + cmd_options); + + if (chomp_newline) + options |= PACKET_READ_CHOMP_NEWLINE; + packet_reader_init(&reader, 0, NULL, 0, options); + reader.use_sideband = reader_use_sideband; while (packet_reader_read(&reader) != PACKET_READ_EOF) { int band; @@ -79,6 +102,17 @@ static void unpack_sideband(void) case PACKET_READ_EOF: break; case PACKET_READ_NORMAL: + /* + * When the "use_sideband" field of the reader is turned + * on, sideband packets other than the payload have been + * parsed and consumed in packet_reader_read(), and only + * the payload arrives here. + */ + if (reader.use_sideband) { + write_or_die(1, reader.line, reader.pktlen - 1); + break; + } + band = reader.line[0] & 0xff; if (band < 1 || band > 2) continue; /* skip non-sideband packets */ @@ -97,15 +131,31 @@ static void unpack_sideband(void) static int send_split_sideband(void) { + const char *foo = "Foo.\n"; + const char *bar = "Bar.\n"; const char *part1 = "Hello,"; const char *primary = "\001primary: regular output\n"; const char *part2 = " world!\n"; + /* Each sideband message has a trailing newline character. */ + send_sideband(1, 2, foo, strlen(foo), LARGE_PACKET_MAX); + send_sideband(1, 2, bar, strlen(bar), LARGE_PACKET_MAX); + + /* + * One sideband message is divided into part1 and part2 + * by the primary message. + */ send_sideband(1, 2, part1, strlen(part1), LARGE_PACKET_MAX); packet_write(1, primary, strlen(primary)); send_sideband(1, 2, part2, strlen(part2), LARGE_PACKET_MAX); packet_response_end(1); + /* + * We use unpack_sideband() to consume packets. A flush packet + * is required to end parsing. + */ + packet_flush(1); + return 0; } @@ -126,7 +176,7 @@ int cmd__pkt_line(int argc, const char **argv) else if (!strcmp(argv[1], "unpack")) unpack(); else if (!strcmp(argv[1], "unpack-sideband")) - unpack_sideband(); + unpack_sideband(argc - 1, argv + 1); else if (!strcmp(argv[1], "send-split-sideband")) send_split_sideband(); else if (!strcmp(argv[1], "receive-sideband")) diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c index 3e173399a0..1e159a754d 100644 --- a/t/helper/test-reach.c +++ b/t/helper/test-reach.c @@ -1,11 +1,9 @@ #include "test-tool.h" #include "commit.h" #include "commit-reach.h" -#include "config.h" #include "gettext.h" #include "hex.h" #include "object-name.h" -#include "parse-options.h" #include "ref-filter.h" #include "setup.h" #include "string-list.h" diff --git a/t/helper/test-regex.c b/t/helper/test-regex.c index bd871a735b..80042eafc2 100644 --- a/t/helper/test-regex.c +++ b/t/helper/test-regex.c @@ -30,7 +30,7 @@ static int test_regex_bug(void) if (regexec(&r, str, 1, m, 0)) die("no match of pattern '%s' to string '%s'", pat, str); - /* http://sourceware.org/bugzilla/show_bug.cgi?id=3957 */ + /* https://sourceware.org/bugzilla/show_bug.cgi?id=3957 */ if (m[0].rm_so == 3) /* matches '\n' when it should not */ die("regex bug confirmed: re-build git with NO_REGEX=1"); diff --git a/t/helper/test-repository.c b/t/helper/test-repository.c index 4cd8a952e5..0c7c5aa4dd 100644 --- a/t/helper/test-repository.c +++ b/t/helper/test-repository.c @@ -1,10 +1,8 @@ #include "test-tool.h" #include "commit-graph.h" #include "commit.h" -#include "config.h" #include "environment.h" #include "hex.h" -#include "object-store-ll.h" #include "object.h" #include "repository.h" #include "setup.h" diff --git a/t/helper/test-simple-ipc.c b/t/helper/test-simple-ipc.c index 941ae7e3bc..fb5927775d 100644 --- a/t/helper/test-simple-ipc.c +++ b/t/helper/test-simple-ipc.c @@ -4,7 +4,6 @@ #include "test-tool.h" #include "gettext.h" -#include "strbuf.h" #include "simple-ipc.h" #include "parse-options.h" #include "thread-utils.h" diff --git a/t/helper/test-submodule.c b/t/helper/test-submodule.c index 356e0a26c5..50c154d037 100644 --- a/t/helper/test-submodule.c +++ b/t/helper/test-submodule.c @@ -4,6 +4,7 @@ #include "remote.h" #include "repository.h" #include "setup.h" +#include "strbuf.h" #include "submodule-config.h" #include "submodule.h" diff --git a/t/helper/test-trace2.c b/t/helper/test-trace2.c index d5ca0046c8..1adac29a57 100644 --- a/t/helper/test-trace2.c +++ b/t/helper/test-trace2.c @@ -412,6 +412,56 @@ static int ut_201counter(int argc, const char **argv) return 0; } +static int ut_300redact_start(int argc, const char **argv) +{ + if (!argc) + die("expect <argv...>"); + + trace2_cmd_start(argv); + + return 0; +} + +static int ut_301redact_child_start(int argc, const char **argv) +{ + struct child_process cmd = CHILD_PROCESS_INIT; + int k; + + if (!argc) + die("expect <argv...>"); + + for (k = 0; argv[k]; k++) + strvec_push(&cmd.args, argv[k]); + + trace2_child_start(&cmd); + + strvec_clear(&cmd.args); + + return 0; +} + +static int ut_302redact_exec(int argc, const char **argv) +{ + if (!argc) + die("expect <exe> <argv...>"); + + trace2_exec(argv[0], &argv[1]); + + return 0; +} + +static int ut_303redact_def_param(int argc, const char **argv) +{ + struct key_value_info kvi = KVI_INIT; + + if (argc < 2) + die("expect <key> <value>"); + + trace2_def_param(argv[0], argv[1], &kvi); + + return 0; +} + /* * Usage: * test-tool trace2 <ut_name_1> <ut_usage_1> @@ -438,6 +488,11 @@ static struct unit_test ut_table[] = { { ut_200counter, "200counter", "<v1> [<v2> [<v3> [...]]]" }, { ut_201counter, "201counter", "<v1> <v2> <threads>" }, + + { ut_300redact_start, "300redact_start", "<argv...>" }, + { ut_301redact_child_start, "301redact_child_start", "<argv...>" }, + { ut_302redact_exec, "302redact_exec", "<exe> <argv...>" }, + { ut_303redact_def_param, "303redact_def_param", "<key> <value>" }, }; /* clang-format on */ |
