aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2022-06-15 18:18:58 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2022-06-15 18:18:58 +0300
commit9bed19ed335290b445952541509022c1cb474197 (patch)
treec65c85040f1ce73d7a72b222d8e5b6229fd4defd
parent7cdfb696e37922f4740fb4b38d5a8773adcf3e38 (diff)
Convert some more bdep configuration negotiation tests
-rw-r--r--tests/common/dependency-alternatives/t13e/bar-1.0.0.tar.gzbin0 -> 443 bytes
-rw-r--r--tests/common/dependency-alternatives/t13e/baz-1.0.0.tar.gzbin0 -> 448 bytes
-rw-r--r--tests/common/dependency-alternatives/t13e/biz-1.0.0.tar.gzbin0 -> 395 bytes
-rw-r--r--tests/common/dependency-alternatives/t13e/liba-1.0.0.tar.gzbin0 -> 422 bytes
-rw-r--r--tests/common/dependency-alternatives/t13e/repositories.manifest1
-rw-r--r--tests/common/dependency-alternatives/t13f/bar-1.0.0.tar.gzbin0 -> 511 bytes
-rw-r--r--tests/common/dependency-alternatives/t13f/baz-1.0.0.tar.gzbin0 -> 458 bytes
-rw-r--r--tests/common/dependency-alternatives/t13f/liba-1.0.0.tar.gzbin0 -> 421 bytes
-rw-r--r--tests/common/dependency-alternatives/t13f/repositories.manifest1
-rw-r--r--tests/common/dependency-alternatives/t13g/bar-1.0.0.tar.gzbin0 -> 533 bytes
-rw-r--r--tests/common/dependency-alternatives/t13g/baz-1.0.0.tar.gzbin0 -> 497 bytes
-rw-r--r--tests/common/dependency-alternatives/t13g/biz-1.0.0.tar.gzbin0 -> 538 bytes
-rw-r--r--tests/common/dependency-alternatives/t13g/box-1.0.0.tar.gzbin0 -> 535 bytes
-rw-r--r--tests/common/dependency-alternatives/t13g/liba-1.0.0.tar.gzbin0 -> 402 bytes
-rw-r--r--tests/common/dependency-alternatives/t13g/libb-1.0.0.tar.gzbin0 -> 347 bytes
-rw-r--r--tests/common/dependency-alternatives/t13g/repositories.manifest1
-rw-r--r--tests/common/dependency-alternatives/t13h/bar-1.0.0.tar.gzbin0 -> 492 bytes
-rw-r--r--tests/common/dependency-alternatives/t13h/baz-1.0.0.tar.gzbin0 -> 416 bytes
-rw-r--r--tests/common/dependency-alternatives/t13h/liba-1.0.0.tar.gzbin0 -> 421 bytes
-rw-r--r--tests/common/dependency-alternatives/t13h/repositories.manifest1
-rw-r--r--tests/common/dependency-alternatives/t13i/bar-1.0.0.tar.gzbin0 -> 481 bytes
-rw-r--r--tests/common/dependency-alternatives/t13i/baz-1.0.0.tar.gzbin0 -> 501 bytes
-rw-r--r--tests/common/dependency-alternatives/t13i/liba-1.0.0.tar.gzbin0 -> 421 bytes
-rw-r--r--tests/common/dependency-alternatives/t13i/repositories.manifest1
-rw-r--r--tests/common/dependency-alternatives/t13j/bar-1.0.0.tar.gzbin0 -> 508 bytes
-rw-r--r--tests/common/dependency-alternatives/t13j/baz-1.0.0.tar.gzbin0 -> 398 bytes
-rw-r--r--tests/common/dependency-alternatives/t13j/biz-1.0.0.tar.gzbin0 -> 503 bytes
-rw-r--r--tests/common/dependency-alternatives/t13j/liba-1.0.0.tar.gzbin0 -> 494 bytes
-rw-r--r--tests/common/dependency-alternatives/t13j/repositories.manifest1
-rw-r--r--tests/common/dependency-alternatives/t13k/bar-1.0.0.tar.gzbin0 -> 505 bytes
-rw-r--r--tests/common/dependency-alternatives/t13k/baz-1.0.0.tar.gzbin0 -> 417 bytes
-rw-r--r--tests/common/dependency-alternatives/t13k/liba-1.0.0.tar.gzbin0 -> 421 bytes
-rw-r--r--tests/common/dependency-alternatives/t13k/repositories.manifest1
-rw-r--r--tests/pkg-build.testscript398
l---------tests/pkg-build/t13e1
l---------tests/pkg-build/t13f1
l---------tests/pkg-build/t13g1
l---------tests/pkg-build/t13h1
l---------tests/pkg-build/t13i1
l---------tests/pkg-build/t13j1
l---------tests/pkg-build/t13k1
41 files changed, 412 insertions, 0 deletions
diff --git a/tests/common/dependency-alternatives/t13e/bar-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13e/bar-1.0.0.tar.gz
new file mode 100644
index 0000000..7211afb
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13e/bar-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13e/baz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13e/baz-1.0.0.tar.gz
new file mode 100644
index 0000000..e5f2880
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13e/baz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13e/biz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13e/biz-1.0.0.tar.gz
new file mode 100644
index 0000000..afd7db3
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13e/biz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13e/liba-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13e/liba-1.0.0.tar.gz
new file mode 100644
index 0000000..f3cb165
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13e/liba-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13e/repositories.manifest b/tests/common/dependency-alternatives/t13e/repositories.manifest
new file mode 100644
index 0000000..5b70556
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13e/repositories.manifest
@@ -0,0 +1 @@
+: 1
diff --git a/tests/common/dependency-alternatives/t13f/bar-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13f/bar-1.0.0.tar.gz
new file mode 100644
index 0000000..7a255a1
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13f/bar-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13f/baz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13f/baz-1.0.0.tar.gz
new file mode 100644
index 0000000..f697c81
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13f/baz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13f/liba-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13f/liba-1.0.0.tar.gz
new file mode 100644
index 0000000..877305f
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13f/liba-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13f/repositories.manifest b/tests/common/dependency-alternatives/t13f/repositories.manifest
new file mode 100644
index 0000000..5b70556
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13f/repositories.manifest
@@ -0,0 +1 @@
+: 1
diff --git a/tests/common/dependency-alternatives/t13g/bar-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13g/bar-1.0.0.tar.gz
new file mode 100644
index 0000000..5c8a596
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13g/bar-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13g/baz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13g/baz-1.0.0.tar.gz
new file mode 100644
index 0000000..011ffea
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13g/baz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13g/biz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13g/biz-1.0.0.tar.gz
new file mode 100644
index 0000000..77cb421
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13g/biz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13g/box-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13g/box-1.0.0.tar.gz
new file mode 100644
index 0000000..5217e88
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13g/box-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13g/liba-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13g/liba-1.0.0.tar.gz
new file mode 100644
index 0000000..2ee35ae
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13g/liba-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13g/libb-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13g/libb-1.0.0.tar.gz
new file mode 100644
index 0000000..0f13429
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13g/libb-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13g/repositories.manifest b/tests/common/dependency-alternatives/t13g/repositories.manifest
new file mode 100644
index 0000000..5b70556
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13g/repositories.manifest
@@ -0,0 +1 @@
+: 1
diff --git a/tests/common/dependency-alternatives/t13h/bar-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13h/bar-1.0.0.tar.gz
new file mode 100644
index 0000000..7e85fca
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13h/bar-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13h/baz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13h/baz-1.0.0.tar.gz
new file mode 100644
index 0000000..6fbdf82
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13h/baz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13h/liba-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13h/liba-1.0.0.tar.gz
new file mode 100644
index 0000000..ffd380c
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13h/liba-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13h/repositories.manifest b/tests/common/dependency-alternatives/t13h/repositories.manifest
new file mode 100644
index 0000000..5b70556
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13h/repositories.manifest
@@ -0,0 +1 @@
+: 1
diff --git a/tests/common/dependency-alternatives/t13i/bar-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13i/bar-1.0.0.tar.gz
new file mode 100644
index 0000000..6c1076d
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13i/bar-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13i/baz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13i/baz-1.0.0.tar.gz
new file mode 100644
index 0000000..b086ef4
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13i/baz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13i/liba-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13i/liba-1.0.0.tar.gz
new file mode 100644
index 0000000..4a7bd22
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13i/liba-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13i/repositories.manifest b/tests/common/dependency-alternatives/t13i/repositories.manifest
new file mode 100644
index 0000000..5b70556
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13i/repositories.manifest
@@ -0,0 +1 @@
+: 1
diff --git a/tests/common/dependency-alternatives/t13j/bar-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13j/bar-1.0.0.tar.gz
new file mode 100644
index 0000000..8660e0f
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13j/bar-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13j/baz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13j/baz-1.0.0.tar.gz
new file mode 100644
index 0000000..7483377
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13j/baz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13j/biz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13j/biz-1.0.0.tar.gz
new file mode 100644
index 0000000..948c1c4
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13j/biz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13j/liba-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13j/liba-1.0.0.tar.gz
new file mode 100644
index 0000000..0c94586
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13j/liba-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13j/repositories.manifest b/tests/common/dependency-alternatives/t13j/repositories.manifest
new file mode 100644
index 0000000..5b70556
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13j/repositories.manifest
@@ -0,0 +1 @@
+: 1
diff --git a/tests/common/dependency-alternatives/t13k/bar-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13k/bar-1.0.0.tar.gz
new file mode 100644
index 0000000..51de0c5
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13k/bar-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13k/baz-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13k/baz-1.0.0.tar.gz
new file mode 100644
index 0000000..a8c62ba
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13k/baz-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13k/liba-1.0.0.tar.gz b/tests/common/dependency-alternatives/t13k/liba-1.0.0.tar.gz
new file mode 100644
index 0000000..c4a4b32
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13k/liba-1.0.0.tar.gz
Binary files differ
diff --git a/tests/common/dependency-alternatives/t13k/repositories.manifest b/tests/common/dependency-alternatives/t13k/repositories.manifest
new file mode 100644
index 0000000..5b70556
--- /dev/null
+++ b/tests/common/dependency-alternatives/t13k/repositories.manifest
@@ -0,0 +1 @@
+: 1
diff --git a/tests/pkg-build.testscript b/tests/pkg-build.testscript
index 630c7b4..243a0a7 100644
--- a/tests/pkg-build.testscript
+++ b/tests/pkg-build.testscript
@@ -290,6 +290,58 @@
# | |-- baz-1.0.0.tar.gz -> bar, liba {require {...}}
# | `-- repositories.manifest
# |
+# |-- t13e
+# | |-- liba-0.1.0.tar.gz
+# | |-- bar-1.0.0.tar.gz -> liba {prefer {...} accept (...)}
+# | |-- baz-1.0.0.tar.gz -> liba {prefer {...} accept (...)},
+# | | bar ? (...),
+# | | biz
+# | |-- biz-1.0.0.tar.gz -> liba {require {...}}
+# | `-- repositories.manifest
+# |
+# |-- t13f
+# | |-- liba-0.1.0.tar.gz
+# | |-- bar-1.0.0.tar.gz -> liba {prefer {...} accept (...)}
+# | |-- baz-1.0.0.tar.gz -> liba {prefer {...} accept (...)}
+# | `-- repositories.manifest
+# |
+# |-- t13g
+# | |-- liba-0.1.0.tar.gz
+# | |-- libb-0.1.0.tar.gz
+# | |-- bar-1.0.0.tar.gz -> liba {prefer {...} accept (...) reflect (...)},
+# | | libb {prefer {...} accept (...) reflect (...)}
+# | |-- baz-1.0.0.tar.gz -> liba {prefer {...} accept (...) reflect (...)},
+# | | libb ? (...)
+# | |-- biz-1.0.0.tar.gz -> liba {prefer {...} accept (...) reflect (...)},
+# | | libb {prefer {...} accept (...) reflect (...)}
+# | |-- box-1.0.0.tar.gz -> liba {prefer {...} accept (...) reflect (...)},
+# | | libb {prefer {...} accept (...) reflect (...)}
+# | `-- repositories.manifest
+# |
+# |-- t13h
+# | |-- liba-0.1.0.tar.gz
+# | |-- bar-1.0.0.tar.gz -> liba {prefer {...} accept (...)}
+# | |-- baz-1.0.0.tar.gz -> liba {prefer {...} accept (...)}
+# | `-- repositories.manifest
+# |
+# |-- t13i
+# | |-- liba-0.1.0.tar.gz
+# | |-- bar-1.0.0.tar.gz -> liba {require {...} reflect (...)}
+# | `-- repositories.manifest
+# |
+# |-- t13j
+# | |-- liba-0.1.0.tar.gz
+# | |-- bar-1.0.0.tar.gz -> liba {prefer {...} accept (...)}
+# | |-- baz-1.0.0.tar.gz -> liba {require {...}}
+# | |-- biz-1.0.0.tar.gz -> liba {prefer {...} accept (...)}
+# | `-- repositories.manifest
+# |
+# |-- t13k
+# | |-- liba-0.1.0.tar.gz
+# | |-- bar-1.0.0.tar.gz -> liba {prefer {...} accept (...)}
+# | |-- baz-1.0.0.tar.gz -> liba {prefer {...} accept (...)}
+# | `-- repositories.manifest
+# |
# `-- git
# |-- libbar.git -> style-basic.git (prerequisite repository)
# |-- libbaz.git
@@ -328,6 +380,13 @@ posix = ($cxx.target.class != 'windows')
cp -r $src/t13b $out/t13b && $rep_create $out/t13b &$out/t13b/packages.manifest
cp -r $src/t13c $out/t13c && $rep_create $out/t13c &$out/t13c/packages.manifest
cp -r $src/t13d $out/t13d && $rep_create $out/t13d &$out/t13d/packages.manifest
+ cp -r $src/t13e $out/t13e && $rep_create $out/t13e &$out/t13e/packages.manifest
+ cp -r $src/t13f $out/t13f && $rep_create $out/t13f &$out/t13f/packages.manifest
+ cp -r $src/t13g $out/t13g && $rep_create $out/t13g &$out/t13g/packages.manifest
+ cp -r $src/t13h $out/t13h && $rep_create $out/t13h &$out/t13h/packages.manifest
+ cp -r $src/t13i $out/t13i && $rep_create $out/t13i &$out/t13i/packages.manifest
+ cp -r $src/t13j $out/t13j && $rep_create $out/t13j &$out/t13j/packages.manifest
+ cp -r $src/t13k $out/t13k && $rep_create $out/t13k &$out/t13k/packages.manifest
# Create git repositories.
#
@@ -11867,6 +11926,345 @@ test.options += --no-progress
$pkg_drop bar
}
}
+
+ : proj-bogus-config
+ :
+ {
+ +$clone_root_cfg && $rep_add $rep/t13e && $rep_fetch
+
+ : baz
+ :
+ {
+ $clone_cfg;
+
+ $* baz 2>>~%EOE%;
+ build plan:
+ new liba/1.0.0 (required by baz, biz)
+ config.liba.x=true (set by biz)
+ new biz/1.0.0 (required by baz)
+ new baz/1.0.0
+ fetched liba/1.0.0
+ unpacked liba/1.0.0
+ fetched biz/1.0.0
+ unpacked biz/1.0.0
+ fetched baz/1.0.0
+ unpacked baz/1.0.0
+ configured liba/1.0.0
+ configured biz/1.0.0
+ configured baz/1.0.0
+ %info: .+baz.+ is up to date%
+ updated baz/1.0.0
+ EOE
+
+ $pkg_status -r >>EOO;
+ !baz configured 1.0.0
+ biz configured 1.0.0
+ liba configured 1.0.0
+ liba configured 1.0.0
+ EOO
+
+ cat cfg/liba-1.0.0/build/config.build >>~%EOO%;
+ %.*
+ config.liba.x = true
+ config.liba.buffer = 1024
+ EOO
+
+ $pkg_drop baz
+ }
+ }
+
+ : proj-bogus-config-cycle
+ :
+ {
+ +$clone_root_cfg && $rep_add $rep/t13f && $rep_fetch
+
+ : baz
+ :
+ {
+ $clone_cfg;
+
+ $* baz 2>>EOE != 0;
+ error: unable to remove bogus configuration values without causing configuration refinement cycle
+ info: consider manually specifying one or more of the following variables as user configuration
+ config.liba.buffer=2048
+ config.liba.x=true
+ EOE
+
+ $* baz ?liba +{ config.liba.x=true } 2>>~%EOE%;
+ build plan:
+ new liba/1.0.0
+ config.liba.x=true (user configuration)
+ new baz/1.0.0
+ fetched liba/1.0.0
+ unpacked liba/1.0.0
+ fetched baz/1.0.0
+ unpacked baz/1.0.0
+ configured liba/1.0.0
+ configured baz/1.0.0
+ %info: .+liba.+ is up to date%
+ %info: .+baz.+ is up to date%
+ updated liba/1.0.0
+ updated baz/1.0.0
+ EOE
+
+ $pkg_status -r >>EOO;
+ !baz configured 1.0.0
+ liba configured 1.0.0
+ EOO
+
+ cat cfg/liba-1.0.0/build/config.build >>~%EOO%;
+ %.*
+ config.liba.x = true
+ config.liba.buffer = 1024
+ EOO
+
+ $pkg_drop baz
+ }
+ }
+
+ : proj-detect-unset
+ :
+ {
+ +$clone_root_cfg && $rep_add $rep/t13g && $rep_fetch
+
+ : bar
+ :
+ {
+ $clone_cfg;
+
+ $* bar 2>>EOE != 0
+ <depends-accept-clause>:1:3: error: undefined dependency configuration variable config.liba.x
+ info: was config.liba.x set in earlier prefer or require clause?
+ info: accept condition: ($config.liba.x)
+ info: in depends manifest value of package bar
+ EOE
+ }
+
+ : baz
+ :
+ {
+ $clone_cfg;
+
+ $* baz 2>>EOE != 0
+ <depends-enable-clause>:1:3: error: undefined dependency configuration variable config.liba.x
+ info: was config.liba.x set in earlier prefer or require clause?
+ info: enable condition: ($config.liba.x)
+ info: in depends manifest value of package baz
+ info: while satisfying baz/1.0.0
+ EOE
+ }
+
+ : biz
+ :
+ {
+ $clone_cfg;
+
+ $* biz 2>>EOE != 0
+ <depends-prefer-clause>:1:12: error: undefined dependency configuration variable config.liba.x
+ info: was config.liba.x set in earlier prefer or require clause?
+ info: prefer clause:
+ x = (!$config.liba.x) # Error.
+ info: in depends manifest value of package biz
+ EOE
+ }
+
+ : box
+ :
+ {
+ $clone_cfg;
+
+ $* box 2>>EOE != 0
+ <depends-reflect-clause>:1:12: error: undefined dependency configuration variable config.liba.x
+ info: was config.liba.x set in earlier prefer or require clause?
+ info: reflect clause:
+ x = (!$config.liba.x) # Error.
+ info: in depends manifest value of package box
+ EOE
+ }
+ }
+
+ : proj-cycle
+ :
+ {
+ +$clone_root_cfg && $rep_add $rep/t13h && $rep_fetch
+
+ : bar baz
+ :
+ {
+ $clone_cfg;
+
+ $* bar baz 2>>EOE != 0
+ error: unable to negotiate acceptable configuration between dependents baz, bar for dependencies liba
+ info: configuration before negotiation:
+ config.liba.buffer=4096 (set by bar)
+ info: configuration after negotiation:
+ config.liba.buffer=8192 (set by baz)
+ EOE
+ }
+ }
+
+ : proj-dependency-reflect
+ :
+ {
+ +$clone_root_cfg && $rep_add $rep/t13i && $rep_fetch
+
+ : bar
+ :
+ {
+ $clone_cfg;
+
+ $* bar 2>>~%EOE%;
+ <depends-reflect-clause>:1:5: info: yes
+ info: reflect clause:
+ info ($config.liba.x ? yes : no)
+ info: in depends manifest value of package bar
+ build plan:
+ new liba/1.0.0 (required by bar)
+ config.liba.x=true (set by bar)
+ new bar/1.0.0
+ fetched liba/1.0.0
+ unpacked liba/1.0.0
+ fetched bar/1.0.0
+ unpacked bar/1.0.0
+ configured liba/1.0.0
+ configured bar/1.0.0
+ %info: .+bar.+ is up to date%
+ updated bar/1.0.0
+ EOE
+
+ $pkg_status -r >>EOO;
+ !bar configured 1.0.0
+ liba configured 1.0.0
+ EOO
+
+ cat cfg/liba-1.0.0/build/config.build >>~%EOO%;
+ %.*
+ config.liba.x = true
+ config.liba.buffer = 1024
+ EOO
+
+ $pkg_drop bar
+ }
+
+ : baz
+ :
+ {
+ $clone_cfg;
+
+ $* baz 2>>~%EOE%;
+ <depends-reflect-clause>:1:5: info: 4096
+ info: reflect clause:
+ info $config.liba.buffer
+ info: in depends manifest value of package baz
+ build plan:
+ new liba/1.0.0 (required by baz)
+ config.liba.buffer=4096 (set by baz)
+ new baz/1.0.0
+ fetched liba/1.0.0
+ unpacked liba/1.0.0
+ fetched baz/1.0.0
+ unpacked baz/1.0.0
+ configured liba/1.0.0
+ configured baz/1.0.0
+ %info: .+baz.+ is up to date%
+ updated baz/1.0.0
+ EOE
+
+ $pkg_status -r >>EOO;
+ !baz configured 1.0.0
+ liba configured 1.0.0
+ EOO
+
+ cat cfg/liba-1.0.0/build/config.build >>~%EOO%;
+ %.*
+ config.liba.x = false
+ config.liba.buffer = 4096
+ EOO
+
+ $pkg_drop baz
+ }
+ }
+
+ : proj-non-sensible
+ :
+ {
+ +$clone_root_cfg && $rep_add $rep/t13j && $rep_fetch
+
+ : bar-baz
+ :
+ {
+ $clone_cfg;
+
+ $* bar baz 2>>~%EOE% != 0
+ error: unable to negotiate sensible configuration for dependency liba
+ % .+/root.build:5:1: error: buffer must be at least 4096 if feature x is enabled%
+ info: negotiated configuration:
+ config.liba.buffer=2048 (set by bar)
+ config.liba.x=true (set by baz)
+ EOE
+ }
+
+ : biz-baz
+ :
+ {
+ $clone_cfg;
+
+ $* biz baz 2>>~%EOE%;
+ build plan:
+ new liba/1.0.0 (required by baz, biz)
+ config.liba.buffer=4096 (set by biz)
+ config.liba.x=true (set by baz)
+ new biz/1.0.0
+ new baz/1.0.0
+ fetched liba/1.0.0
+ unpacked liba/1.0.0
+ fetched biz/1.0.0
+ unpacked biz/1.0.0
+ fetched baz/1.0.0
+ unpacked baz/1.0.0
+ configured liba/1.0.0
+ configured biz/1.0.0
+ configured baz/1.0.0
+ %info: .+biz.+ is up to date%
+ %info: .+baz.+ is up to date%
+ updated biz/1.0.0
+ updated baz/1.0.0
+ EOE
+
+ $pkg_status -r >>EOO;
+ !biz configured 1.0.0
+ liba configured 1.0.0
+ !baz configured 1.0.0
+ liba configured 1.0.0
+ EOO
+
+ cat cfg/liba-1.0.0/build/config.build >>~%EOO%;
+ %.*
+ config.liba.x = true
+ config.liba.buffer = 4096
+ EOO
+
+ $pkg_drop biz baz
+ }
+ }
+
+ : proj-unaccept
+ :
+ {
+ +$clone_root_cfg && $rep_add $rep/t13k && $rep_fetch
+
+ : bar-baz
+ :
+ {
+ $clone_cfg;
+
+ $* bar baz 2>>EOE != 0
+ error: unable to negotiate acceptable configuration with dependent bar for dependencies liba
+ info: configuration before negotiation:
+ config.liba.buffer=8192 (set by baz)
+ EOE
+ }
+ }
}
}
diff --git a/tests/pkg-build/t13e b/tests/pkg-build/t13e
new file mode 120000
index 0000000..d8d84cc
--- /dev/null
+++ b/tests/pkg-build/t13e
@@ -0,0 +1 @@
+../common/dependency-alternatives/t13e/ \ No newline at end of file
diff --git a/tests/pkg-build/t13f b/tests/pkg-build/t13f
new file mode 120000
index 0000000..bf556bc
--- /dev/null
+++ b/tests/pkg-build/t13f
@@ -0,0 +1 @@
+../common/dependency-alternatives/t13f/ \ No newline at end of file
diff --git a/tests/pkg-build/t13g b/tests/pkg-build/t13g
new file mode 120000
index 0000000..4dc8eb4
--- /dev/null
+++ b/tests/pkg-build/t13g
@@ -0,0 +1 @@
+../common/dependency-alternatives/t13g/ \ No newline at end of file
diff --git a/tests/pkg-build/t13h b/tests/pkg-build/t13h
new file mode 120000
index 0000000..f99413a
--- /dev/null
+++ b/tests/pkg-build/t13h
@@ -0,0 +1 @@
+../common/dependency-alternatives/t13h/ \ No newline at end of file
diff --git a/tests/pkg-build/t13i b/tests/pkg-build/t13i
new file mode 120000
index 0000000..bba4fd3
--- /dev/null
+++ b/tests/pkg-build/t13i
@@ -0,0 +1 @@
+../common/dependency-alternatives/t13i/ \ No newline at end of file
diff --git a/tests/pkg-build/t13j b/tests/pkg-build/t13j
new file mode 120000
index 0000000..da120da
--- /dev/null
+++ b/tests/pkg-build/t13j
@@ -0,0 +1 @@
+../common/dependency-alternatives/t13j/ \ No newline at end of file
diff --git a/tests/pkg-build/t13k b/tests/pkg-build/t13k
new file mode 120000
index 0000000..b1e5a14
--- /dev/null
+++ b/tests/pkg-build/t13k
@@ -0,0 +1 @@
+../common/dependency-alternatives/t13k/ \ No newline at end of file