From 79638a7d976c2fe35ad648e95d36fde3fe83a38d Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <fare@tunes.org>
Date: Mon, 28 Nov 2016 21:29:21 -0500
Subject: [PATCH] Add test for systems used in multiple phases

Add test-defsystem-depends-on-phase-overlap.script (currently failing) to check
that an action present in multiple phases will only be performed once.
---
 ...-defsystem-depends-on-phase-overlap.script | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 test/test-defsystem-depends-on-phase-overlap.script

diff --git a/test/test-defsystem-depends-on-phase-overlap.script b/test/test-defsystem-depends-on-phase-overlap.script
new file mode 100644
index 000000000..9a15c53ca
--- /dev/null
+++ b/test/test-defsystem-depends-on-phase-overlap.script
@@ -0,0 +1,32 @@
+;;-*- Lisp -*-
+
+(in-package :asdf-test)
+
+(setf *central-registry* nil)
+
+(defparameter *od* 0)
+(def-test-system "overlapping-dependency"
+  :perform (load-op (o c) (incf *od*)))
+
+(defparameter *dd* 0)
+(def-test-system "defsystem-dependency"
+  :depends-on ("overlapping-dependency")
+  :perform (load-op (o c) (incf *dd*)))
+
+(defparameter *id* 0)
+(def-test-system "intermediate-dependency"
+  :defsystem-depends-on ("defsystem-dependency")
+  :perform (load-op (o c) (incf *id*)))
+
+(defparameter *ms* 0)
+(def-test-system "main-system"
+  :depends-on ("overlapping-dependency" "intermediate-dependency")
+  :perform (load-op (o c) (incf *ms*)))
+
+(DBG "Load it once")
+(load-system "main-system")
+(assert-equal (list *od* *dd* *id* *ms*) '(1 1 1 1))
+
+(DBG "Load it a second time, forcing od")
+(load-system "main-system" :force '("overlapping-dependency"))
+(assert-equal (list *od* *dd* *id* *ms*) '(2 2 2 2))
-- 
GitLab