summaryrefslogtreecommitdiff
path: root/tests/format/junctions
diff options
context:
space:
mode:
Diffstat (limited to 'tests/format/junctions')
-rw-r--r--tests/format/junctions/internal-and-conflict/project.conf2
-rw-r--r--tests/format/junctions/internal-and-conflict/subproject.bst4
-rw-r--r--tests/format/junctions/internal-and-conflict/subproject/project.conf6
-rw-r--r--tests/format/junctions/internal-and-conflict/subproject/subsubproject.bst4
-rw-r--r--tests/format/junctions/internal-and-conflict/subproject/subsubproject/project.conf2
-rw-r--r--tests/format/junctions/internal-and-conflict/subproject/subsubproject/subsub.txt1
-rw-r--r--tests/format/junctions/internal-and-conflict/subproject/subsubproject/target.bst4
-rw-r--r--tests/format/junctions/internal-and-conflict/subproject/subtarget.bst10
-rw-r--r--tests/format/junctions/internal-and-conflict/subsubproject-again.bst4
-rw-r--r--tests/format/junctions/internal-and-conflict/subsubproject-again/project.conf2
-rw-r--r--tests/format/junctions/internal-and-conflict/subsubproject-again/subsub-again.txt1
-rw-r--r--tests/format/junctions/internal-and-conflict/subsubproject-again/target.bst4
-rw-r--r--tests/format/junctions/internal-and-conflict/subsubproject-conflict.bst4
-rw-r--r--tests/format/junctions/internal-and-conflict/subsubproject-conflict/project.conf2
-rw-r--r--tests/format/junctions/internal-and-conflict/subsubproject-conflict/subsub-again.txt1
-rw-r--r--tests/format/junctions/internal-and-conflict/subsubproject-conflict/target.bst4
-rw-r--r--tests/format/junctions/internal-and-conflict/target.bst6
-rw-r--r--tests/format/junctions/internal-double/project.conf2
-rw-r--r--tests/format/junctions/internal-double/subproject1.bst4
-rw-r--r--tests/format/junctions/internal-double/subproject1/project.conf6
-rw-r--r--tests/format/junctions/internal-double/subproject1/subsubproject.bst4
-rw-r--r--tests/format/junctions/internal-double/subproject1/subsubproject/project.conf2
-rw-r--r--tests/format/junctions/internal-double/subproject1/subsubproject/subsub1.txt1
-rw-r--r--tests/format/junctions/internal-double/subproject1/subsubproject/target.bst4
-rw-r--r--tests/format/junctions/internal-double/subproject1/subtarget.bst10
-rw-r--r--tests/format/junctions/internal-double/subproject2.bst4
-rw-r--r--tests/format/junctions/internal-double/subproject2/project.conf6
-rw-r--r--tests/format/junctions/internal-double/subproject2/subsubproject.bst4
-rw-r--r--tests/format/junctions/internal-double/subproject2/subsubproject/project.conf2
-rw-r--r--tests/format/junctions/internal-double/subproject2/subsubproject/subsub2.txt1
-rw-r--r--tests/format/junctions/internal-double/subproject2/subsubproject/target.bst4
-rw-r--r--tests/format/junctions/internal-double/subproject2/subtarget.bst10
-rw-r--r--tests/format/junctions/internal-double/subsubproject-again.bst4
-rw-r--r--tests/format/junctions/internal-double/subsubproject-again/project.conf2
-rw-r--r--tests/format/junctions/internal-double/subsubproject-again/subsub-again.txt1
-rw-r--r--tests/format/junctions/internal-double/subsubproject-again/target.bst4
-rw-r--r--tests/format/junctions/internal-double/target.bst6
-rw-r--r--tests/format/junctions/internal-link/project.conf2
-rw-r--r--tests/format/junctions/internal-link/subproject.bst4
-rw-r--r--tests/format/junctions/internal-link/subproject/project.conf6
-rw-r--r--tests/format/junctions/internal-link/subproject/subsubproject-link.bst4
-rw-r--r--tests/format/junctions/internal-link/subproject/subsubproject.bst4
-rw-r--r--tests/format/junctions/internal-link/subproject/subsubproject/project.conf2
-rw-r--r--tests/format/junctions/internal-link/subproject/subsubproject/subsub.txt1
-rw-r--r--tests/format/junctions/internal-link/subproject/subsubproject/target.bst4
-rw-r--r--tests/format/junctions/internal-link/subproject/subtarget.bst10
-rw-r--r--tests/format/junctions/internal-link/subsubproject-again.bst4
-rw-r--r--tests/format/junctions/internal-link/subsubproject-again/project.conf2
-rw-r--r--tests/format/junctions/internal-link/subsubproject-again/subsub-again.txt1
-rw-r--r--tests/format/junctions/internal-link/subsubproject-again/target.bst4
-rw-r--r--tests/format/junctions/internal-link/target.bst5
-rw-r--r--tests/format/junctions/internal-override/project.conf2
-rw-r--r--tests/format/junctions/internal-override/subproject.bst8
-rw-r--r--tests/format/junctions/internal-override/subproject/project.conf6
-rw-r--r--tests/format/junctions/internal-override/subproject/subsubproject.bst4
-rw-r--r--tests/format/junctions/internal-override/subproject/subsubproject/project.conf2
-rw-r--r--tests/format/junctions/internal-override/subproject/subsubproject/subsub.txt1
-rw-r--r--tests/format/junctions/internal-override/subproject/subsubproject/target.bst4
-rw-r--r--tests/format/junctions/internal-override/subproject/subtarget.bst10
-rw-r--r--tests/format/junctions/internal-override/subsubproject-again.bst4
-rw-r--r--tests/format/junctions/internal-override/subsubproject-again/project.conf2
-rw-r--r--tests/format/junctions/internal-override/subsubproject-again/subsub-again.txt1
-rw-r--r--tests/format/junctions/internal-override/subsubproject-again/target.bst4
-rw-r--r--tests/format/junctions/internal-override/subsubproject-override.bst4
-rw-r--r--tests/format/junctions/internal-override/subsubproject-override/project.conf2
-rw-r--r--tests/format/junctions/internal-override/subsubproject-override/subsub-override.txt1
-rw-r--r--tests/format/junctions/internal-override/subsubproject-override/target.bst4
-rw-r--r--tests/format/junctions/internal-override/target.bst5
-rw-r--r--tests/format/junctions/internal-simple/project.conf2
-rw-r--r--tests/format/junctions/internal-simple/subproject.bst4
-rw-r--r--tests/format/junctions/internal-simple/subproject/project.conf6
-rw-r--r--tests/format/junctions/internal-simple/subproject/subsubproject.bst4
-rw-r--r--tests/format/junctions/internal-simple/subproject/subsubproject/project.conf2
-rw-r--r--tests/format/junctions/internal-simple/subproject/subsubproject/subsub.txt1
-rw-r--r--tests/format/junctions/internal-simple/subproject/subsubproject/target.bst4
-rw-r--r--tests/format/junctions/internal-simple/subproject/subtarget.bst10
-rw-r--r--tests/format/junctions/internal-simple/subsubproject-again.bst4
-rw-r--r--tests/format/junctions/internal-simple/subsubproject-again/project.conf2
-rw-r--r--tests/format/junctions/internal-simple/subsubproject-again/subsub-again.txt1
-rw-r--r--tests/format/junctions/internal-simple/subsubproject-again/target.bst4
-rw-r--r--tests/format/junctions/internal-simple/target.bst5
81 files changed, 308 insertions, 0 deletions
diff --git a/tests/format/junctions/internal-and-conflict/project.conf b/tests/format/junctions/internal-and-conflict/project.conf
new file mode 100644
index 000000000..20636c446
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/project.conf
@@ -0,0 +1,2 @@
+name: test
+min-version: 2.0
diff --git a/tests/format/junctions/internal-and-conflict/subproject.bst b/tests/format/junctions/internal-and-conflict/subproject.bst
new file mode 100644
index 000000000..c88189cb0
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subproject.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subproject
diff --git a/tests/format/junctions/internal-and-conflict/subproject/project.conf b/tests/format/junctions/internal-and-conflict/subproject/project.conf
new file mode 100644
index 000000000..1d44ec886
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subproject/project.conf
@@ -0,0 +1,6 @@
+name: subtest
+min-version: 2.0
+
+junctions:
+ internal:
+ - subsubproject.bst
diff --git a/tests/format/junctions/internal-and-conflict/subproject/subsubproject.bst b/tests/format/junctions/internal-and-conflict/subproject/subsubproject.bst
new file mode 100644
index 000000000..f535ab0e0
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subproject/subsubproject.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject
diff --git a/tests/format/junctions/internal-and-conflict/subproject/subsubproject/project.conf b/tests/format/junctions/internal-and-conflict/subproject/subsubproject/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subproject/subsubproject/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-and-conflict/subproject/subsubproject/subsub.txt b/tests/format/junctions/internal-and-conflict/subproject/subsubproject/subsub.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subproject/subsubproject/subsub.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-and-conflict/subproject/subsubproject/target.bst b/tests/format/junctions/internal-and-conflict/subproject/subsubproject/target.bst
new file mode 100644
index 000000000..afafac601
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subproject/subsubproject/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub.txt
diff --git a/tests/format/junctions/internal-and-conflict/subproject/subtarget.bst b/tests/format/junctions/internal-and-conflict/subproject/subtarget.bst
new file mode 100644
index 000000000..5e6a76bac
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subproject/subtarget.bst
@@ -0,0 +1,10 @@
+kind: compose
+
+# Use a build dependency on our internal subsubproject target.
+#
+# There is currently no validation for this but it may be
+# introduced in the future. For correctness of this test,
+# use a build dependency.
+#
+build-depends:
+- subsubproject.bst:target.bst
diff --git a/tests/format/junctions/internal-and-conflict/subsubproject-again.bst b/tests/format/junctions/internal-and-conflict/subsubproject-again.bst
new file mode 100644
index 000000000..308642704
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subsubproject-again.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject-again
diff --git a/tests/format/junctions/internal-and-conflict/subsubproject-again/project.conf b/tests/format/junctions/internal-and-conflict/subsubproject-again/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subsubproject-again/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-and-conflict/subsubproject-again/subsub-again.txt b/tests/format/junctions/internal-and-conflict/subsubproject-again/subsub-again.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subsubproject-again/subsub-again.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-and-conflict/subsubproject-again/target.bst b/tests/format/junctions/internal-and-conflict/subsubproject-again/target.bst
new file mode 100644
index 000000000..1a90211de
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subsubproject-again/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub-again.txt
diff --git a/tests/format/junctions/internal-and-conflict/subsubproject-conflict.bst b/tests/format/junctions/internal-and-conflict/subsubproject-conflict.bst
new file mode 100644
index 000000000..e4715ea1d
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subsubproject-conflict.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject-conflict
diff --git a/tests/format/junctions/internal-and-conflict/subsubproject-conflict/project.conf b/tests/format/junctions/internal-and-conflict/subsubproject-conflict/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subsubproject-conflict/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-and-conflict/subsubproject-conflict/subsub-again.txt b/tests/format/junctions/internal-and-conflict/subsubproject-conflict/subsub-again.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subsubproject-conflict/subsub-again.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-and-conflict/subsubproject-conflict/target.bst b/tests/format/junctions/internal-and-conflict/subsubproject-conflict/target.bst
new file mode 100644
index 000000000..1a90211de
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/subsubproject-conflict/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub-again.txt
diff --git a/tests/format/junctions/internal-and-conflict/target.bst b/tests/format/junctions/internal-and-conflict/target.bst
new file mode 100644
index 000000000..5e661e6ba
--- /dev/null
+++ b/tests/format/junctions/internal-and-conflict/target.bst
@@ -0,0 +1,6 @@
+kind: stack
+
+depends:
+- subproject.bst:subtarget.bst
+- subsubproject-again.bst:target.bst
+- subsubproject-conflict.bst:target.bst
diff --git a/tests/format/junctions/internal-double/project.conf b/tests/format/junctions/internal-double/project.conf
new file mode 100644
index 000000000..20636c446
--- /dev/null
+++ b/tests/format/junctions/internal-double/project.conf
@@ -0,0 +1,2 @@
+name: test
+min-version: 2.0
diff --git a/tests/format/junctions/internal-double/subproject1.bst b/tests/format/junctions/internal-double/subproject1.bst
new file mode 100644
index 000000000..bfd692d00
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject1.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subproject1
diff --git a/tests/format/junctions/internal-double/subproject1/project.conf b/tests/format/junctions/internal-double/subproject1/project.conf
new file mode 100644
index 000000000..d82152220
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject1/project.conf
@@ -0,0 +1,6 @@
+name: subtest1
+min-version: 2.0
+
+junctions:
+ internal:
+ - subsubproject.bst
diff --git a/tests/format/junctions/internal-double/subproject1/subsubproject.bst b/tests/format/junctions/internal-double/subproject1/subsubproject.bst
new file mode 100644
index 000000000..f535ab0e0
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject1/subsubproject.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject
diff --git a/tests/format/junctions/internal-double/subproject1/subsubproject/project.conf b/tests/format/junctions/internal-double/subproject1/subsubproject/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject1/subsubproject/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-double/subproject1/subsubproject/subsub1.txt b/tests/format/junctions/internal-double/subproject1/subsubproject/subsub1.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject1/subsubproject/subsub1.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-double/subproject1/subsubproject/target.bst b/tests/format/junctions/internal-double/subproject1/subsubproject/target.bst
new file mode 100644
index 000000000..2d631ebba
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject1/subsubproject/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub1.txt
diff --git a/tests/format/junctions/internal-double/subproject1/subtarget.bst b/tests/format/junctions/internal-double/subproject1/subtarget.bst
new file mode 100644
index 000000000..5e6a76bac
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject1/subtarget.bst
@@ -0,0 +1,10 @@
+kind: compose
+
+# Use a build dependency on our internal subsubproject target.
+#
+# There is currently no validation for this but it may be
+# introduced in the future. For correctness of this test,
+# use a build dependency.
+#
+build-depends:
+- subsubproject.bst:target.bst
diff --git a/tests/format/junctions/internal-double/subproject2.bst b/tests/format/junctions/internal-double/subproject2.bst
new file mode 100644
index 000000000..2343652e1
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject2.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subproject2
diff --git a/tests/format/junctions/internal-double/subproject2/project.conf b/tests/format/junctions/internal-double/subproject2/project.conf
new file mode 100644
index 000000000..8ed6c717a
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject2/project.conf
@@ -0,0 +1,6 @@
+name: subtest2
+min-version: 2.0
+
+junctions:
+ internal:
+ - subsubproject.bst
diff --git a/tests/format/junctions/internal-double/subproject2/subsubproject.bst b/tests/format/junctions/internal-double/subproject2/subsubproject.bst
new file mode 100644
index 000000000..f535ab0e0
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject2/subsubproject.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject
diff --git a/tests/format/junctions/internal-double/subproject2/subsubproject/project.conf b/tests/format/junctions/internal-double/subproject2/subsubproject/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject2/subsubproject/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-double/subproject2/subsubproject/subsub2.txt b/tests/format/junctions/internal-double/subproject2/subsubproject/subsub2.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject2/subsubproject/subsub2.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-double/subproject2/subsubproject/target.bst b/tests/format/junctions/internal-double/subproject2/subsubproject/target.bst
new file mode 100644
index 000000000..5cfa4e453
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject2/subsubproject/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub2.txt
diff --git a/tests/format/junctions/internal-double/subproject2/subtarget.bst b/tests/format/junctions/internal-double/subproject2/subtarget.bst
new file mode 100644
index 000000000..5e6a76bac
--- /dev/null
+++ b/tests/format/junctions/internal-double/subproject2/subtarget.bst
@@ -0,0 +1,10 @@
+kind: compose
+
+# Use a build dependency on our internal subsubproject target.
+#
+# There is currently no validation for this but it may be
+# introduced in the future. For correctness of this test,
+# use a build dependency.
+#
+build-depends:
+- subsubproject.bst:target.bst
diff --git a/tests/format/junctions/internal-double/subsubproject-again.bst b/tests/format/junctions/internal-double/subsubproject-again.bst
new file mode 100644
index 000000000..308642704
--- /dev/null
+++ b/tests/format/junctions/internal-double/subsubproject-again.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject-again
diff --git a/tests/format/junctions/internal-double/subsubproject-again/project.conf b/tests/format/junctions/internal-double/subsubproject-again/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-double/subsubproject-again/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-double/subsubproject-again/subsub-again.txt b/tests/format/junctions/internal-double/subsubproject-again/subsub-again.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-double/subsubproject-again/subsub-again.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-double/subsubproject-again/target.bst b/tests/format/junctions/internal-double/subsubproject-again/target.bst
new file mode 100644
index 000000000..1a90211de
--- /dev/null
+++ b/tests/format/junctions/internal-double/subsubproject-again/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub-again.txt
diff --git a/tests/format/junctions/internal-double/target.bst b/tests/format/junctions/internal-double/target.bst
new file mode 100644
index 000000000..b579466d5
--- /dev/null
+++ b/tests/format/junctions/internal-double/target.bst
@@ -0,0 +1,6 @@
+kind: stack
+
+depends:
+- subproject1.bst:subtarget.bst
+- subproject2.bst:subtarget.bst
+- subsubproject-again.bst:target.bst
diff --git a/tests/format/junctions/internal-link/project.conf b/tests/format/junctions/internal-link/project.conf
new file mode 100644
index 000000000..20636c446
--- /dev/null
+++ b/tests/format/junctions/internal-link/project.conf
@@ -0,0 +1,2 @@
+name: test
+min-version: 2.0
diff --git a/tests/format/junctions/internal-link/subproject.bst b/tests/format/junctions/internal-link/subproject.bst
new file mode 100644
index 000000000..c88189cb0
--- /dev/null
+++ b/tests/format/junctions/internal-link/subproject.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subproject
diff --git a/tests/format/junctions/internal-link/subproject/project.conf b/tests/format/junctions/internal-link/subproject/project.conf
new file mode 100644
index 000000000..ac5810334
--- /dev/null
+++ b/tests/format/junctions/internal-link/subproject/project.conf
@@ -0,0 +1,6 @@
+name: subtest
+min-version: 2.0
+
+junctions:
+ internal:
+ - subsubproject-link.bst
diff --git a/tests/format/junctions/internal-link/subproject/subsubproject-link.bst b/tests/format/junctions/internal-link/subproject/subsubproject-link.bst
new file mode 100644
index 000000000..246a5e41c
--- /dev/null
+++ b/tests/format/junctions/internal-link/subproject/subsubproject-link.bst
@@ -0,0 +1,4 @@
+kind: link
+
+config:
+ target: subsubproject.bst
diff --git a/tests/format/junctions/internal-link/subproject/subsubproject.bst b/tests/format/junctions/internal-link/subproject/subsubproject.bst
new file mode 100644
index 000000000..f535ab0e0
--- /dev/null
+++ b/tests/format/junctions/internal-link/subproject/subsubproject.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject
diff --git a/tests/format/junctions/internal-link/subproject/subsubproject/project.conf b/tests/format/junctions/internal-link/subproject/subsubproject/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-link/subproject/subsubproject/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-link/subproject/subsubproject/subsub.txt b/tests/format/junctions/internal-link/subproject/subsubproject/subsub.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-link/subproject/subsubproject/subsub.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-link/subproject/subsubproject/target.bst b/tests/format/junctions/internal-link/subproject/subsubproject/target.bst
new file mode 100644
index 000000000..afafac601
--- /dev/null
+++ b/tests/format/junctions/internal-link/subproject/subsubproject/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub.txt
diff --git a/tests/format/junctions/internal-link/subproject/subtarget.bst b/tests/format/junctions/internal-link/subproject/subtarget.bst
new file mode 100644
index 000000000..5e6a76bac
--- /dev/null
+++ b/tests/format/junctions/internal-link/subproject/subtarget.bst
@@ -0,0 +1,10 @@
+kind: compose
+
+# Use a build dependency on our internal subsubproject target.
+#
+# There is currently no validation for this but it may be
+# introduced in the future. For correctness of this test,
+# use a build dependency.
+#
+build-depends:
+- subsubproject.bst:target.bst
diff --git a/tests/format/junctions/internal-link/subsubproject-again.bst b/tests/format/junctions/internal-link/subsubproject-again.bst
new file mode 100644
index 000000000..308642704
--- /dev/null
+++ b/tests/format/junctions/internal-link/subsubproject-again.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject-again
diff --git a/tests/format/junctions/internal-link/subsubproject-again/project.conf b/tests/format/junctions/internal-link/subsubproject-again/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-link/subsubproject-again/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-link/subsubproject-again/subsub-again.txt b/tests/format/junctions/internal-link/subsubproject-again/subsub-again.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-link/subsubproject-again/subsub-again.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-link/subsubproject-again/target.bst b/tests/format/junctions/internal-link/subsubproject-again/target.bst
new file mode 100644
index 000000000..1a90211de
--- /dev/null
+++ b/tests/format/junctions/internal-link/subsubproject-again/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub-again.txt
diff --git a/tests/format/junctions/internal-link/target.bst b/tests/format/junctions/internal-link/target.bst
new file mode 100644
index 000000000..bc8944592
--- /dev/null
+++ b/tests/format/junctions/internal-link/target.bst
@@ -0,0 +1,5 @@
+kind: stack
+
+depends:
+- subproject.bst:subtarget.bst
+- subsubproject-again.bst:target.bst
diff --git a/tests/format/junctions/internal-override/project.conf b/tests/format/junctions/internal-override/project.conf
new file mode 100644
index 000000000..20636c446
--- /dev/null
+++ b/tests/format/junctions/internal-override/project.conf
@@ -0,0 +1,2 @@
+name: test
+min-version: 2.0
diff --git a/tests/format/junctions/internal-override/subproject.bst b/tests/format/junctions/internal-override/subproject.bst
new file mode 100644
index 000000000..db1dd6253
--- /dev/null
+++ b/tests/format/junctions/internal-override/subproject.bst
@@ -0,0 +1,8 @@
+kind: junction
+sources:
+- kind: local
+ path: subproject
+
+config:
+ overrides:
+ subsubproject.bst: subsubproject-override.bst
diff --git a/tests/format/junctions/internal-override/subproject/project.conf b/tests/format/junctions/internal-override/subproject/project.conf
new file mode 100644
index 000000000..1d44ec886
--- /dev/null
+++ b/tests/format/junctions/internal-override/subproject/project.conf
@@ -0,0 +1,6 @@
+name: subtest
+min-version: 2.0
+
+junctions:
+ internal:
+ - subsubproject.bst
diff --git a/tests/format/junctions/internal-override/subproject/subsubproject.bst b/tests/format/junctions/internal-override/subproject/subsubproject.bst
new file mode 100644
index 000000000..f535ab0e0
--- /dev/null
+++ b/tests/format/junctions/internal-override/subproject/subsubproject.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject
diff --git a/tests/format/junctions/internal-override/subproject/subsubproject/project.conf b/tests/format/junctions/internal-override/subproject/subsubproject/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-override/subproject/subsubproject/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-override/subproject/subsubproject/subsub.txt b/tests/format/junctions/internal-override/subproject/subsubproject/subsub.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-override/subproject/subsubproject/subsub.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-override/subproject/subsubproject/target.bst b/tests/format/junctions/internal-override/subproject/subsubproject/target.bst
new file mode 100644
index 000000000..afafac601
--- /dev/null
+++ b/tests/format/junctions/internal-override/subproject/subsubproject/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub.txt
diff --git a/tests/format/junctions/internal-override/subproject/subtarget.bst b/tests/format/junctions/internal-override/subproject/subtarget.bst
new file mode 100644
index 000000000..5e6a76bac
--- /dev/null
+++ b/tests/format/junctions/internal-override/subproject/subtarget.bst
@@ -0,0 +1,10 @@
+kind: compose
+
+# Use a build dependency on our internal subsubproject target.
+#
+# There is currently no validation for this but it may be
+# introduced in the future. For correctness of this test,
+# use a build dependency.
+#
+build-depends:
+- subsubproject.bst:target.bst
diff --git a/tests/format/junctions/internal-override/subsubproject-again.bst b/tests/format/junctions/internal-override/subsubproject-again.bst
new file mode 100644
index 000000000..308642704
--- /dev/null
+++ b/tests/format/junctions/internal-override/subsubproject-again.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject-again
diff --git a/tests/format/junctions/internal-override/subsubproject-again/project.conf b/tests/format/junctions/internal-override/subsubproject-again/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-override/subsubproject-again/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-override/subsubproject-again/subsub-again.txt b/tests/format/junctions/internal-override/subsubproject-again/subsub-again.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-override/subsubproject-again/subsub-again.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-override/subsubproject-again/target.bst b/tests/format/junctions/internal-override/subsubproject-again/target.bst
new file mode 100644
index 000000000..1a90211de
--- /dev/null
+++ b/tests/format/junctions/internal-override/subsubproject-again/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub-again.txt
diff --git a/tests/format/junctions/internal-override/subsubproject-override.bst b/tests/format/junctions/internal-override/subsubproject-override.bst
new file mode 100644
index 000000000..a5e47cdc6
--- /dev/null
+++ b/tests/format/junctions/internal-override/subsubproject-override.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject-override
diff --git a/tests/format/junctions/internal-override/subsubproject-override/project.conf b/tests/format/junctions/internal-override/subsubproject-override/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-override/subsubproject-override/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-override/subsubproject-override/subsub-override.txt b/tests/format/junctions/internal-override/subsubproject-override/subsub-override.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-override/subsubproject-override/subsub-override.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-override/subsubproject-override/target.bst b/tests/format/junctions/internal-override/subsubproject-override/target.bst
new file mode 100644
index 000000000..ae732d025
--- /dev/null
+++ b/tests/format/junctions/internal-override/subsubproject-override/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub-override.txt
diff --git a/tests/format/junctions/internal-override/target.bst b/tests/format/junctions/internal-override/target.bst
new file mode 100644
index 000000000..bc8944592
--- /dev/null
+++ b/tests/format/junctions/internal-override/target.bst
@@ -0,0 +1,5 @@
+kind: stack
+
+depends:
+- subproject.bst:subtarget.bst
+- subsubproject-again.bst:target.bst
diff --git a/tests/format/junctions/internal-simple/project.conf b/tests/format/junctions/internal-simple/project.conf
new file mode 100644
index 000000000..20636c446
--- /dev/null
+++ b/tests/format/junctions/internal-simple/project.conf
@@ -0,0 +1,2 @@
+name: test
+min-version: 2.0
diff --git a/tests/format/junctions/internal-simple/subproject.bst b/tests/format/junctions/internal-simple/subproject.bst
new file mode 100644
index 000000000..c88189cb0
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subproject.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subproject
diff --git a/tests/format/junctions/internal-simple/subproject/project.conf b/tests/format/junctions/internal-simple/subproject/project.conf
new file mode 100644
index 000000000..1d44ec886
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subproject/project.conf
@@ -0,0 +1,6 @@
+name: subtest
+min-version: 2.0
+
+junctions:
+ internal:
+ - subsubproject.bst
diff --git a/tests/format/junctions/internal-simple/subproject/subsubproject.bst b/tests/format/junctions/internal-simple/subproject/subsubproject.bst
new file mode 100644
index 000000000..f535ab0e0
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subproject/subsubproject.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject
diff --git a/tests/format/junctions/internal-simple/subproject/subsubproject/project.conf b/tests/format/junctions/internal-simple/subproject/subsubproject/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subproject/subsubproject/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-simple/subproject/subsubproject/subsub.txt b/tests/format/junctions/internal-simple/subproject/subsubproject/subsub.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subproject/subsubproject/subsub.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-simple/subproject/subsubproject/target.bst b/tests/format/junctions/internal-simple/subproject/subsubproject/target.bst
new file mode 100644
index 000000000..afafac601
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subproject/subsubproject/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub.txt
diff --git a/tests/format/junctions/internal-simple/subproject/subtarget.bst b/tests/format/junctions/internal-simple/subproject/subtarget.bst
new file mode 100644
index 000000000..5e6a76bac
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subproject/subtarget.bst
@@ -0,0 +1,10 @@
+kind: compose
+
+# Use a build dependency on our internal subsubproject target.
+#
+# There is currently no validation for this but it may be
+# introduced in the future. For correctness of this test,
+# use a build dependency.
+#
+build-depends:
+- subsubproject.bst:target.bst
diff --git a/tests/format/junctions/internal-simple/subsubproject-again.bst b/tests/format/junctions/internal-simple/subsubproject-again.bst
new file mode 100644
index 000000000..308642704
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subsubproject-again.bst
@@ -0,0 +1,4 @@
+kind: junction
+sources:
+- kind: local
+ path: subsubproject-again
diff --git a/tests/format/junctions/internal-simple/subsubproject-again/project.conf b/tests/format/junctions/internal-simple/subsubproject-again/project.conf
new file mode 100644
index 000000000..d11bcbb30
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subsubproject-again/project.conf
@@ -0,0 +1,2 @@
+name: subsubtest
+min-version: 2.0
diff --git a/tests/format/junctions/internal-simple/subsubproject-again/subsub-again.txt b/tests/format/junctions/internal-simple/subsubproject-again/subsub-again.txt
new file mode 100644
index 000000000..f73f3093f
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subsubproject-again/subsub-again.txt
@@ -0,0 +1 @@
+file
diff --git a/tests/format/junctions/internal-simple/subsubproject-again/target.bst b/tests/format/junctions/internal-simple/subsubproject-again/target.bst
new file mode 100644
index 000000000..1a90211de
--- /dev/null
+++ b/tests/format/junctions/internal-simple/subsubproject-again/target.bst
@@ -0,0 +1,4 @@
+kind: import
+sources:
+- kind: local
+ path: subsub-again.txt
diff --git a/tests/format/junctions/internal-simple/target.bst b/tests/format/junctions/internal-simple/target.bst
new file mode 100644
index 000000000..bc8944592
--- /dev/null
+++ b/tests/format/junctions/internal-simple/target.bst
@@ -0,0 +1,5 @@
+kind: stack
+
+depends:
+- subproject.bst:subtarget.bst
+- subsubproject-again.bst:target.bst