| From 24687a7776f46f71f784704248cff970baf4da9c Mon Sep 17 00:00:00 2001 |
| From: Johannes Schindelin <johannes.schindelin@gmx.de> |
| Date: Fri, 20 Sep 2019 19:09:39 +0200 |
| Subject: quote-stress-test: accept arguments to test via the command-line |
| |
| When the stress test reported a problem with quoting certain arguments, |
| it is helpful to have a facility to play with those arguments in order |
| to find out whether variations of those arguments are affected, too. |
| |
| Let's allow `test-run-command quote-stress-test -- <args>` to be used |
| for that purpose. |
| |
| Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> |
| (cherry picked from commit 55953c77c0bfcb727ffd7e293e4661b7a24b791b) |
| Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> |
| --- |
| t/helper/test-run-command.c | 31 ++++++++++++++++++++----------- |
| 1 file changed, 20 insertions(+), 11 deletions(-) |
| |
| diff --git a/t/helper/test-run-command.c b/t/helper/test-run-command.c |
| index bdab5d362a..d310e79f98 100644 |
| --- a/t/helper/test-run-command.c |
| +++ b/t/helper/test-run-command.c |
| @@ -84,25 +84,34 @@ static int quote_stress_test(int argc, const char **argv) |
| |
| for (i = 0; i < trials; i++) { |
| struct child_process cp = CHILD_PROCESS_INIT; |
| - size_t arg_count = 1 + (my_random() % 5), arg_offset; |
| + size_t arg_count, arg_offset; |
| int ret = 0; |
| |
| argv_array_clear(&args); |
| argv_array_pushl(&args, "test-tool", "run-command", |
| "quote-echo", NULL); |
| arg_offset = args.argc; |
| - for (j = 0; j < arg_count; j++) { |
| - char buf[20]; |
| - size_t min_len = 1; |
| - size_t arg_len = min_len + |
| - (my_random() % (ARRAY_SIZE(buf) - min_len)); |
| |
| - for (k = 0; k < arg_len; k++) |
| - buf[k] = special[my_random() % |
| - ARRAY_SIZE(special)]; |
| - buf[arg_len] = '\0'; |
| + if (argc > 0) { |
| + trials = 1; |
| + arg_count = argc; |
| + for (j = 0; j < arg_count; j++) |
| + argv_array_push(&args, argv[j]); |
| + } else { |
| + arg_count = 1 + (my_random() % 5); |
| + for (j = 0; j < arg_count; j++) { |
| + char buf[20]; |
| + size_t min_len = 1; |
| + size_t arg_len = min_len + |
| + (my_random() % (ARRAY_SIZE(buf) - min_len)); |
| |
| - argv_array_push(&args, buf); |
| + for (k = 0; k < arg_len; k++) |
| + buf[k] = special[my_random() % |
| + ARRAY_SIZE(special)]; |
| + buf[arg_len] = '\0'; |
| + |
| + argv_array_push(&args, buf); |
| + } |
| } |
| |
| cp.argv = args.argv; |
| -- |
| 2.24.0.393.g34dc348eaf |
| |