]>
Commit | Line | Data |
---|---|---|
15d3af5e JX |
1 | test_expect_success "setup proc-receive hook (unexpected ref, $PROTOCOL/porcelain)" ' |
2 | write_script "$upstream/hooks/proc-receive" <<-EOF | |
3 | printf >&2 "# proc-receive hook\n" | |
4 | test-tool proc-receive -v \ | |
a9568dba | 5 | -r "ok refs/heads/main" |
15d3af5e JX |
6 | EOF |
7 | ' | |
8 | ||
a9568dba JS |
9 | # Refs of upstream : main(A) |
10 | # Refs of workbench: main(A) tags/v123 | |
11 | # git push : (B) refs/for/main/topic | |
15d3af5e JX |
12 | test_expect_success "proc-receive: report unexpected ref ($PROTOCOL/porcelain)" ' |
13 | test_must_fail git -C workbench push --porcelain origin \ | |
a9568dba JS |
14 | $B:refs/heads/main \ |
15 | HEAD:refs/for/main/topic \ | |
15d3af5e JX |
16 | >out 2>&1 && |
17 | make_user_friendly_and_stable_output <out >actual && | |
18 | cat >expect <<-EOF && | |
19 | remote: # pre-receive hook | |
a9568dba JS |
20 | remote: pre-receive< <COMMIT-A> <COMMIT-B> refs/heads/main |
21 | remote: pre-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic | |
15d3af5e | 22 | remote: # proc-receive hook |
a9568dba JS |
23 | remote: proc-receive< <ZERO-OID> <COMMIT-A> refs/for/main/topic |
24 | remote: proc-receive> ok refs/heads/main | |
25 | remote: error: proc-receive reported status on unexpected ref: refs/heads/main | |
15d3af5e | 26 | remote: # post-receive hook |
a9568dba | 27 | remote: post-receive< <COMMIT-A> <COMMIT-B> refs/heads/main |
15d3af5e | 28 | To <URL/of/upstream.git> |
a9568dba JS |
29 | <COMMIT-B>:refs/heads/main <OID-A>..<OID-B> |
30 | ! HEAD:refs/for/main/topic [remote rejected] (proc-receive failed to report status) | |
15d3af5e JX |
31 | Done |
32 | EOF | |
33 | test_cmp expect actual && | |
34 | git -C "$upstream" show-ref >out && | |
35 | make_user_friendly_and_stable_output <out >actual && | |
36 | cat >expect <<-EOF && | |
a9568dba | 37 | <COMMIT-B> refs/heads/main |
15d3af5e JX |
38 | EOF |
39 | test_cmp expect actual | |
40 | ' | |
41 | ||
a9568dba JS |
42 | # Refs of upstream : main(B) |
43 | # Refs of workbench: main(A) tags/v123 | |
15d3af5e | 44 | test_expect_success "cleanup ($PROTOCOL/porcelain)" ' |
a9568dba | 45 | git -C "$upstream" update-ref refs/heads/main $A |
15d3af5e | 46 | ' |