Fix git structure and git diff testcase (#8622)

Add in more test cases for git diff
Fix git base work tree allowing more coverage for git diff and other
commands.
This commit is contained in:
Arthur Chan 2022-09-28 18:02:27 +01:00 committed by GitHub
parent e27aa22cac
commit 3217c5d357
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 82 additions and 9 deletions

View File

@ -104,6 +104,15 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
return 0; return 0;
} }
/*
* Create branch
*/
argv[0] = "branch";
argv[1] = "-f";
argv[2] = "new_branch";
argv[3] = NULL;
cmd_branch(3, (const char **)argv, (const char *)"");
/* /*
* Alter content of TEMP_1 and TEMP_2 * Alter content of TEMP_1 and TEMP_2
*/ */
@ -202,20 +211,77 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
break; break;
case GIT_DIFF: case GIT_DIFF:
switch(i % 9) {
case 0: default:
argv[0] = "diff"; argv[0] = "diff";
argv[1] = NULL; argv[1] = NULL;
cmd_diff(1, (const char **)argv, (const char *)""); cmd_diff(1, (const char **)argv, (const char *)"");
break;
case 1:
argv[1] = "TEMP_1"; argv[1] = "TEMP_1";
argv[2] = NULL; argv[2] = NULL;
cmd_diff(2, (const char **)argv, (const char *)""); cmd_diff(2, (const char **)argv, (const char *)"");
break;
case 2:
argv[2] = "TEMP_2"; argv[2] = "TEMP_2";
argv[3] = NULL; argv[3] = NULL;
cmd_diff(3, (const char **)argv, (const char *)""); cmd_diff(3, (const char **)argv, (const char *)"");
break; break;
case 3:
argv[1] = "HEAD";
argv[2] = NULL;
cmd_diff(2, (const char **)argv, (const char *)"");
break;
case 4:
argv[1] = "--cached";
argv[2] = NULL;
cmd_diff(2, (const char **)argv, (const char *)"");
break;
case 5:
argv[1] = "--diff-filter=MRC";
argv[2] = "HEAD";
argv[3] = NULL;
cmd_diff(3, (const char **)argv, (const char *)"");
break;
case 6:
argv[1] = "--diff-filter=MRC";
argv[2] = "HEAD^";
argv[3] = NULL;
cmd_diff(3, (const char **)argv, (const char *)"");
break;
case 7:
argv[1] = "-R";
argv[2] = "HEAD";
argv[3] = NULL;
cmd_diff(3, (const char **)argv, (const char *)"");
break;
case 8:
argv[1] = "master";
argv[2] = "new_branch";
argv[3] = NULL;
cmd_diff(3, (const char **)argv, (const char *)"");
break;
}
break;
case GIT_DIFF_FILES: case GIT_DIFF_FILES:
argv[0] = "diff-files"; argv[0] = "diff-files";
argv[1] = NULL; argv[1] = NULL;
@ -238,6 +304,13 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
argv[3] = NULL; argv[3] = NULL;
cmd_diff_tree(3, (const char **)argv, (const char *)""); cmd_diff_tree(3, (const char **)argv, (const char *)"");
argv[0] = "diff-tree";
argv[1] = "master";
argv[2] = "new_branch";
argv[3] = "--";
argv[4] = NULL;
cmd_diff_tree(4, (const char **)argv, (const char *)"");
break; break;
case GIT_DIFF_INDEX: case GIT_DIFF_INDEX: