git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 5/5] test-run-command: Increase test coverage

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 20, 2015, 18:53 UTC
Message-ID
<xmqq1tcp8j82.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<1445279086-31066-6-git-send-email-sbeller@google.com>
Stefan Beller <sbeller@google.com> writes:
Show 60 quoted lines
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
>  t/t0061-run-command.sh | 16 +++++++++++++---
>  test-run-command.c     | 12 ++++++++----
>  2 files changed, 21 insertions(+), 7 deletions(-)
>
> diff --git a/t/t0061-run-command.sh b/t/t0061-run-command.sh
> index 0af77cd..f27ada7 100755
> --- a/t/t0061-run-command.sh
> +++ b/t/t0061-run-command.sh
> @@ -62,8 +62,18 @@ Hello
>  World
>  EOF
>  
> -test_expect_success 'run_command runs in parallel' '
> -	test-run-command run-command-parallel-4 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
> +test_expect_success 'run_command runs in parallel with more jobs available than tasks' '
> +	test-run-command run-command-parallel 5 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
> +	test_cmp expect actual
> +'
> +
> +test_expect_success 'run_command runs in parallel with as many jobs as tasks' '
> +	test-run-command run-command-parallel 4 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
> +	test_cmp expect actual
> +'
> +
> +test_expect_success 'run_command runs in parallel with more tasks than jobs available' '
> +	test-run-command run-command-parallel 3 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual &&
>  	test_cmp expect actual
>  '
>  
> @@ -77,7 +87,7 @@ asking for a quick stop
>  EOF
>  
>  test_expect_success 'run_command is asked to abort gracefully' '
> -	test-run-command run-command-abort-3 false 2>actual &&
> +	test-run-command run-command-abort 3 false 2>actual &&
>  	test_cmp expect actual
>  '
>  
> diff --git a/test-run-command.c b/test-run-command.c
> index 4b59482..44710c3 100644
> --- a/test-run-command.c
> +++ b/test-run-command.c
> @@ -47,6 +47,7 @@ static int task_finished(int result,
>  int main(int argc, char **argv)
>  {
>  	struct child_process proc = CHILD_PROCESS_INIT;
> +	int jobs;
>  
>  	if (argc < 3)
>  		return 1;
> @@ -61,12 +62,15 @@ int main(int argc, char **argv)
>  	if (!strcmp(argv[1], "run-command"))
>  		exit(run_command(&proc));
>  
> -	if (!strcmp(argv[1], "run-command-parallel-4"))
> -		exit(run_processes_parallel(4, parallel_next,
> +	jobs = atoi(argv[2]);
> +	proc.argv = (const char **)argv+3;
	proc.argv = (const char **)argv + 3;
or
	proc.argv = (const char **)&argv[3];

Given the line immediately before refers to argv[2], the latter might be easier on the eyes to follow.

In what way does this "Increase" test coverage? By allowing the caller to specify arbitrarily higher parallelism?

Show 12 quoted lines
> +
> +	if (!strcmp(argv[1], "run-command-parallel"))
> +		exit(run_processes_parallel(jobs, parallel_next,
>  					    NULL, NULL, &proc));
>  
> -	if (!strcmp(argv[1], "run-command-abort-3"))
> -		exit(run_processes_parallel(3, parallel_next,
> +	if (!strcmp(argv[1], "run-command-abort"))
> +		exit(run_processes_parallel(jobs, parallel_next,
>  					    NULL, task_finished, &proc));
>  
>  	fprintf(stderr, "check usage\n");
Previous: Stefan BellerNext: Stefan Beller
Message 10 of 12 in “Fixes for the parallel processing”
  1. 0/5 Fixes for the parallel processingStefan Beller, Oct 19, 2015
  2. 1/5 run-command: Fix early shutdownStefan Beller, Oct 19, 2015
  3. Junio C HamanoOct 20, 2015
  4. 2/5 run-command: Call get_next_task with a clean child process.Stefan Beller, Oct 19, 2015
  5. Junio C HamanoOct 20, 2015
  6. Stefan BellerOct 20, 2015
  7. 3/5 run-command: Initialize the shutdown flagStefan Beller, Oct 19, 2015
  8. 4/5 test-run-command: test for gracefully abortingStefan Beller, Oct 19, 2015
  9. 5/5 test-run-command: Increase test coverageStefan Beller, Oct 19, 2015
  10. Junio C HamanoOct 20, 2015
  11. Stefan BellerOct 20, 2015
  12. 6/5 run-command: Fix missing output from late callbacksStefan Beller, Oct 20, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.