merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4' as 'third_party/git'
			
			
This commit is contained in:
		
						commit
						7ef0d62730
					
				
					 3629 changed files with 1139935 additions and 0 deletions
				
			
		
							
								
								
									
										97
									
								
								third_party/git/t/helper/test-run-command.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								third_party/git/t/helper/test-run-command.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,97 @@ | |||
| /*
 | ||||
|  * test-run-command.c: test run command API. | ||||
|  * | ||||
|  * (C) 2009 Ilari Liusvaara <ilari.liusvaara@elisanet.fi> | ||||
|  * | ||||
|  * This code is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License version 2 as | ||||
|  * published by the Free Software Foundation. | ||||
|  */ | ||||
| 
 | ||||
| #include "test-tool.h" | ||||
| #include "git-compat-util.h" | ||||
| #include "run-command.h" | ||||
| #include "argv-array.h" | ||||
| #include "strbuf.h" | ||||
| #include <string.h> | ||||
| #include <errno.h> | ||||
| 
 | ||||
| static int number_callbacks; | ||||
| static int parallel_next(struct child_process *cp, | ||||
| 			 struct strbuf *err, | ||||
| 			 void *cb, | ||||
| 			 void **task_cb) | ||||
| { | ||||
| 	struct child_process *d = cb; | ||||
| 	if (number_callbacks >= 4) | ||||
| 		return 0; | ||||
| 
 | ||||
| 	argv_array_pushv(&cp->args, d->argv); | ||||
| 	strbuf_addstr(err, "preloaded output of a child\n"); | ||||
| 	number_callbacks++; | ||||
| 	return 1; | ||||
| } | ||||
| 
 | ||||
| static int no_job(struct child_process *cp, | ||||
| 		  struct strbuf *err, | ||||
| 		  void *cb, | ||||
| 		  void **task_cb) | ||||
| { | ||||
| 	strbuf_addstr(err, "no further jobs available\n"); | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| static int task_finished(int result, | ||||
| 			 struct strbuf *err, | ||||
| 			 void *pp_cb, | ||||
| 			 void *pp_task_cb) | ||||
| { | ||||
| 	strbuf_addstr(err, "asking for a quick stop\n"); | ||||
| 	return 1; | ||||
| } | ||||
| 
 | ||||
| int cmd__run_command(int argc, const char **argv) | ||||
| { | ||||
| 	struct child_process proc = CHILD_PROCESS_INIT; | ||||
| 	int jobs; | ||||
| 
 | ||||
| 	if (argc < 3) | ||||
| 		return 1; | ||||
| 	while (!strcmp(argv[1], "env")) { | ||||
| 		if (!argv[2]) | ||||
| 			die("env specifier without a value"); | ||||
| 		argv_array_push(&proc.env_array, argv[2]); | ||||
| 		argv += 2; | ||||
| 		argc -= 2; | ||||
| 	} | ||||
| 	if (argc < 3) | ||||
| 		return 1; | ||||
| 	proc.argv = (const char **)argv + 2; | ||||
| 
 | ||||
| 	if (!strcmp(argv[1], "start-command-ENOENT")) { | ||||
| 		if (start_command(&proc) < 0 && errno == ENOENT) | ||||
| 			return 0; | ||||
| 		fprintf(stderr, "FAIL %s\n", argv[1]); | ||||
| 		return 1; | ||||
| 	} | ||||
| 	if (!strcmp(argv[1], "run-command")) | ||||
| 		exit(run_command(&proc)); | ||||
| 
 | ||||
| 	jobs = atoi(argv[2]); | ||||
| 	proc.argv = (const char **)argv + 3; | ||||
| 
 | ||||
| 	if (!strcmp(argv[1], "run-command-parallel")) | ||||
| 		exit(run_processes_parallel(jobs, parallel_next, | ||||
| 					    NULL, NULL, &proc)); | ||||
| 
 | ||||
| 	if (!strcmp(argv[1], "run-command-abort")) | ||||
| 		exit(run_processes_parallel(jobs, parallel_next, | ||||
| 					    NULL, task_finished, &proc)); | ||||
| 
 | ||||
| 	if (!strcmp(argv[1], "run-command-no-jobs")) | ||||
| 		exit(run_processes_parallel(jobs, no_job, | ||||
| 					    NULL, task_finished, &proc)); | ||||
| 
 | ||||
| 	fprintf(stderr, "check usage\n"); | ||||
| 	return 1; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue