diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/git-authenticate.scm | 41 | ||||
-rw-r--r-- | tests/guix-system.sh | 7 | ||||
-rw-r--r-- | tests/packages.scm | 33 |
3 files changed, 80 insertions, 1 deletions
diff --git a/tests/git-authenticate.scm b/tests/git-authenticate.scm index 5937c37ee6..84689d628e 100644 --- a/tests/git-authenticate.scm +++ b/tests/git-authenticate.scm @@ -282,5 +282,46 @@ merge master3) #:keyring-reference "master")))))) +(unless (gpg+git-available?) (test-skip 1)) +(test-assert "signed commits, .guix-authorizations removed" + (with-fresh-gnupg-setup (list %ed25519-public-key-file + %ed25519-secret-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") + (add "a.txt" "A") + (commit "first commit" + (signer ,(key-fingerprint %ed25519-public-key-file))) + (remove ".guix-authorizations") + (commit "second commit" + (signer ,(key-fingerprint %ed25519-public-key-file))) + (add "b.txt" "B") + (commit "third commit" + (signer ,(key-fingerprint %ed25519-public-key-file)))) + (with-repository directory repository + (let ((commit1 (find-commit repository "first")) + (commit2 (find-commit repository "second")) + (commit3 (find-commit repository "third"))) + ;; COMMIT1 and COMMIT2 are fine. + (and (authenticate-commits repository (list commit1 commit2) + #:keyring-reference "master") + + ;; COMMIT3 is rejected because COMMIT2 removes + ;; '.guix-authorizations'. + (guard (c ((unauthorized-commit-error? c) + (oid=? (git-authentication-error-commit c) + (commit-id commit2)))) + (authenticate-commits repository + (list commit1 commit2 commit3) + #:keyring-reference "master") + 'failed))))))) + (test-end "git-authenticate") diff --git a/tests/guix-system.sh b/tests/guix-system.sh index 3a831cba1d..0e22686a34 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -307,7 +307,12 @@ guix system search anonym network | grep "^name: tor" # Verify that the examples can be built. for example in gnu/system/examples/*.tmpl; do - guix system -n disk-image "$example" + if echo "$example" | grep hurd; then + target="--target=i586-pc-gnu" + else + target= + fi + guix system -n disk-image $target "$example" done # Verify that the disk image types can be built. diff --git a/tests/packages.scm b/tests/packages.scm index d8f0d677a3..72e87dbfb7 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -1006,6 +1006,39 @@ (assoc-ref (bag-build-inputs bag) "libc") (assoc-ref (bag-build-inputs bag) "coreutils")))) +(test-assert "package->bag, sensitivity to %current-target-system" + ;; https://bugs.gnu.org/41713 + (let* ((lower (lambda* (name #:key system target inputs native-inputs + #:allow-other-keys) + (and (not target) + (bag (name name) (system system) (target target) + (build-inputs native-inputs) + (host-inputs inputs) + (build (lambda* (store name inputs + #:key system target + #:allow-other-keys) + (build-expression->derivation + store "foo" '(mkdir %output)))))))) + (bs (build-system + (name 'build-system-without-cross-compilation) + (description "Does not support cross compilation.") + (lower lower))) + (dep (dummy-package "dep" (build-system bs))) + (pkg (dummy-package "example" + (native-inputs `(("dep" ,dep))))) + (do-not-build (lambda (continue store lst . _) lst))) + (equal? (with-build-handler do-not-build + (parameterize ((%current-target-system "powerpc64le-linux-gnu") + (%graft? #t)) + (package-cross-derivation %store pkg + (%current-target-system) + #:graft? #t))) + (with-build-handler do-not-build + (package-cross-derivation %store + (package (inherit pkg)) + "powerpc64le-linux-gnu" + #:graft? #t))))) + (test-equal "package->bag, cross-compilation" `(,(%current-system) "foo86-hurd" (,(package-source gnu-make)) |