X-Git-Url: http://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/36cb04df96623ffe8f1074172a4ed9e51bcf6e3a..6611cabd1c3791c79ce2ff701eaf758ceacd9119:/tests/git-authenticate.scm diff --git a/tests/git-authenticate.scm b/tests/git-authenticate.scm index 6ec55fb2e5..c063920c12 100644 --- a/tests/git-authenticate.scm +++ b/tests/git-authenticate.scm @@ -431,4 +431,48 @@ #:keyring-reference "master" #:cache-key (random-text))))))))) +(unless (gpg+git-available?) (test-skip 1)) +(test-equal "authenticate-repository, target not a descendant of intro" + 'target-commit-not-a-descendant-of-intro + (with-fresh-gnupg-setup (list %ed25519-public-key-file + %ed25519-secret-key-file) + (let ((fingerprint (key-fingerprint %ed25519-public-key-file))) + (with-temporary-git-repository directory + `((add "signer.key" ,(call-with-input-file %ed25519-public-key-file + get-string-all)) + (add ".guix-authorizations" + ,(object->string + `(authorizations (version 0) + ((,(key-fingerprint + %ed25519-public-key-file) + (name "Charlie")))))) + (commit "zeroth commit" (signer ,fingerprint)) + (branch "pre-intro-branch") + (checkout "pre-intro-branch") + (add "b.txt" "B") + (commit "alternate commit" (signer ,fingerprint)) + (checkout "master") + (add "a.txt" "A") + (commit "first commit" (signer ,fingerprint)) + (add "c.txt" "C") + (commit "second commit" (signer ,fingerprint))) + (with-repository directory repository + (let ((commit1 (find-commit repository "first")) + (commit-alt + (commit-lookup repository + (reference-target + (branch-lookup repository + "pre-intro-branch"))))) + (guard (c ((formatted-message? c) + (and (equal? (formatted-message-arguments c) + (list (oid->string (commit-id commit-alt)) + (oid->string (commit-id commit1)))) + 'target-commit-not-a-descendant-of-intro))) + (authenticate-repository repository + (commit-id commit1) + (openpgp-fingerprint fingerprint) + #:end (commit-id commit-alt) + #:keyring-reference "master" + #:cache-key (random-text))))))))) + (test-end "git-authenticate")