diff options
| -rwxr-xr-x | tests/t0108-patch.sh | 37 | ||||
| -rw-r--r-- | ui-patch.c | 6 |
2 files changed, 42 insertions, 1 deletions
diff --git a/tests/t0108-patch.sh b/tests/t0108-patch.sh new file mode 100755 index 0000000..33351d6 --- /dev/null +++ b/tests/t0108-patch.sh | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | . ./setup.sh | ||
| 4 | |||
| 5 | prepare_tests "Check content on patch page" | ||
| 6 | |||
| 7 | run_test 'generate foo/patch' ' | ||
| 8 | cgit_query "url=foo/patch" >trash/tmp | ||
| 9 | ' | ||
| 10 | |||
| 11 | run_test 'find `From:` line' ' | ||
| 12 | grep -e "^From: " trash/tmp | ||
| 13 | ' | ||
| 14 | |||
| 15 | run_test 'find `Date:` line' ' | ||
| 16 | grep -e "^Date: " trash/tmp | ||
| 17 | ' | ||
| 18 | |||
| 19 | run_test 'find `Subject:` line' ' | ||
| 20 | grep -e "^Subject: commit 5" trash/tmp | ||
| 21 | ' | ||
| 22 | |||
| 23 | run_test 'find `cgit` signature' ' | ||
| 24 | tail -1 trash/tmp | grep -e "^cgit" | ||
| 25 | ' | ||
| 26 | |||
| 27 | run_test 'find initial commit' ' | ||
| 28 | root=$(git --git-dir=$PWD/trash/repos/foo/.git rev-list HEAD | tail -1) | ||
| 29 | ' | ||
| 30 | |||
| 31 | run_test 'generate patch for initial commit' ' | ||
| 32 | cgit_query "url=foo/patch&id=$root" >trash/tmp | ||
| 33 | ' | ||
| 34 | |||
| 35 | run_test 'find `cgit` signature' ' | ||
| 36 | tail -1 trash/tmp | grep -e "^cgit" | ||
| 37 | ' | ||
| @@ -88,7 +88,11 @@ void cgit_print_patch(char *hex, struct cacheitem *item) | |||
| 88 | return; | 88 | return; |
| 89 | } | 89 | } |
| 90 | info = cgit_parse_commit(commit); | 90 | info = cgit_parse_commit(commit); |
| 91 | hashcpy(old_sha1, commit->parents->item->object.sha1); | 91 | |
| 92 | if (commit->parents && commit->parents->item) | ||
| 93 | hashcpy(old_sha1, commit->parents->item->object.sha1); | ||
| 94 | else | ||
| 95 | hashclr(old_sha1); | ||
| 92 | 96 | ||
| 93 | patchname = fmt("%s.patch", sha1_to_hex(sha1)); | 97 | patchname = fmt("%s.patch", sha1_to_hex(sha1)); |
| 94 | cgit_print_snapshot_start("text/plain", patchname, item); | 98 | cgit_print_snapshot_start("text/plain", patchname, item); |
