From f88282af38dfe805034686e88bab734c582ef74d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 2 Jan 2016 22:12:36 +0100 Subject: [PATCH] graph: %BAG-EMERGED-NODE-TYPE filters out origins. Fixes . Reported by Leo Famulari . * guix/scripts/graph.scm (%bag-emerged-node-type)[edges]: Mimic %BAG-NODE-TYPE. This is a followup to 38b92da. --- guix/scripts/graph.scm | 6 ++++-- tests/graph.scm | 14 ++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index 9255f0018a..9d9eb2236c 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -171,7 +171,9 @@ GNU-BUILD-SYSTEM have zero dependencies." (description "same as 'bag', but without the bootstrap nodes") (identifier bag-node-identifier) (label node-full-name) - (edges (lift1 bag-node-edges-sans-bootstrap %store-monad)))) + (edges (lift1 (compose (cut filter package? <>) + bag-node-edges-sans-bootstrap) + %store-monad)))) ;;; diff --git a/tests/graph.scm b/tests/graph.scm index 04c6e74279..daf64dc56d 100644 --- a/tests/graph.scm +++ b/tests/graph.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -89,16 +89,18 @@ edges." (test-assert "bag-emerged DAG" (let-values (((backend nodes+edges) (make-recording-backend))) - (let ((p (dummy-package "p")) - (implicit (map (match-lambda - ((label package) package)) - (standard-packages)))) + (let* ((o (dummy-origin (method (lambda _ + (text-file "foo" "bar"))))) + (p (dummy-package "p" (source o))) + (implicit (map (match-lambda + ((label package) package)) + (standard-packages)))) (run-with-store %store (export-graph (list p) 'port #:node-type %bag-emerged-node-type #:backend backend)) ;; We should see exactly P and IMPLICIT, with one edge from P to each - ;; element of IMPLICIT. + ;; element of IMPLICIT. O must not appear among NODES. (let-values (((nodes edges) (nodes+edges))) (and (equal? (match nodes (((labels names) ...)