tests: Adjust 'node-back-edges' test for 'bag' to system-dependent glibc.
Fixes a regression introduced in
560cb51e7b
, which would lead this test on
x86_64-linux to return a DIFF with two packages, nhc98 and dev86 (both
have #:system "i686-linux" and thus depend on a different glibc object;
why other system-specific packages such as 'wine' aren't reported is
unclear).
* tests/graph.scm ("node-transitive-edges + node-back-edges"): Use
'test-equal'. Define 'system-specific?' and use it.
parent
9c34b793c1
commit
df2117b8e0
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015-2022 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015-2023 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -377,7 +377,8 @@ edges."
|
||||||
(((labels packages _ ...) ...)
|
(((labels packages _ ...) ...)
|
||||||
packages)))))))))
|
packages)))))))))
|
||||||
|
|
||||||
(test-assert "node-transitive-edges + node-back-edges"
|
(test-equal "node-transitive-edges + node-back-edges"
|
||||||
|
'()
|
||||||
(run-with-store %store
|
(run-with-store %store
|
||||||
(let ((packages (fold-packages cons '()))
|
(let ((packages (fold-packages cons '()))
|
||||||
(bootstrap? (lambda (package)
|
(bootstrap? (lambda (package)
|
||||||
|
@ -386,17 +387,22 @@ edges."
|
||||||
"bootstrap.scm")))
|
"bootstrap.scm")))
|
||||||
(trivial? (lambda (package)
|
(trivial? (lambda (package)
|
||||||
(eq? (package-build-system package)
|
(eq? (package-build-system package)
|
||||||
trivial-build-system))))
|
trivial-build-system)))
|
||||||
|
(system-specific? (lambda (package)
|
||||||
|
(memq #:system (package-arguments package)))))
|
||||||
(mlet %store-monad ((edges (node-back-edges %bag-node-type packages)))
|
(mlet %store-monad ((edges (node-back-edges %bag-node-type packages)))
|
||||||
(let* ((glibc (canonical-package glibc))
|
(let* ((glibc (canonical-package glibc))
|
||||||
(dependents (node-transitive-edges (list glibc) edges))
|
(dependents (node-transitive-edges (list glibc) edges))
|
||||||
(diff (lset-difference eq? packages dependents)))
|
(diff (lset-difference eq? packages dependents)))
|
||||||
;; All the packages depend on libc, except bootstrap packages and
|
;; All the packages depend on libc, except bootstrap packages, some
|
||||||
;; some that use TRIVIAL-BUILD-SYSTEM.
|
;; packages that use TRIVIAL-BUILD-SYSTEM, and some that target a
|
||||||
(return (null? (remove (lambda (package)
|
;; specific system and thus may depend on a different libc package
|
||||||
|
;; object.
|
||||||
|
(return (remove (lambda (package)
|
||||||
(or (trivial? package)
|
(or (trivial? package)
|
||||||
(bootstrap? package)))
|
(bootstrap? package)
|
||||||
diff))))))))
|
(system-specific? package)))
|
||||||
|
diff)))))))
|
||||||
|
|
||||||
(test-assert "node-transitive-edges, no duplicates"
|
(test-assert "node-transitive-edges, no duplicates"
|
||||||
(run-with-store %store
|
(run-with-store %store
|
||||||
|
|
Reference in New Issue