diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/pkg-build.testscript | 306 |
1 files changed, 276 insertions, 30 deletions
diff --git a/tests/pkg-build.testscript b/tests/pkg-build.testscript index a37ea9f..cc69b1a 100644 --- a/tests/pkg-build.testscript +++ b/tests/pkg-build.testscript @@ -13862,6 +13862,280 @@ test.arguments += --sys-no-query $pkg_drop tiz } + : skip-existing-dependent-cluster + : + : Similar to skip-existing-dependent but skip the existing dependent + : because it is already in a cluster as a dependency. + : + { + $clone_cfg; + + # Dependencies: + # + # bac: depends: libbar(c) + # depends: libbaz(c) + # depends: libfoo(c) + # + # bas: depends: libbar(c) + # depends: bus(c) + # + # bus: depends: libbaz(c) + # depends: foo(c) + # + # foo: depends: libfoo(c) + # + # box: depends: {libbar libfoo} (c) | libbox + # + $* bac bas 2>!; + + $pkg_status -r >>EOO; + !bac configured 1.0.0 + libbar configured 1.0.0 + libbaz configured 1.0.0 + libfoo configured 1.0.0 + !bas configured 1.0.0 + bus configured 1.0.0 + foo configured 1.0.0 + libfoo configured 1.0.0 + libbaz configured 1.0.0 + libbar configured 1.0.0 + EOO + + $* box 2>&1 | $filter 2>>~%EOE%; + %.* + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add box/1.0.0 + trace: collect_build_prerequisites: begin box/1.0.0 + trace: collect_build_prerequisites: alt-postpone dependent box/1.0.0 since max index is reached: 0 + info: dependency alternative: {libbar libfoo} + { + require + { + config.libbar.extras = true + config.libfoo.extras = true + } + } + trace: collect_build_prerequisites: postpone box/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (0): index 1 collect alt-postponed box/1.0.0 + trace: collect_build_prerequisites: resume box/1.0.0 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent box/1.0.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent box/1.0.0 + trace: postponed_configurations::add: create {box | libbar->{box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: postpone box/1.0.0 + trace: collect_build_postponed (1): begin {box | libbar->{box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: pre-reeval bac/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bac/1.0.0: 1,1 + trace: collect_build_prerequisites: pre-reeval bas/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bas/1.0.0: 1,1 + trace: collect_build_prerequisites: pre-reeval foo/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: 1,1 + trace: collect_build_prerequisites: pre-reeval bac/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bac/1.0.0: 1,1 + trace: collect_build_postponed (1): re-evaluate existing dependents for {box | libbar->{box/1,1} libfoo->{box/1,1}} + trace: collect_build: add bac/1.0.0 + trace: collect_build_prerequisites: reeval bac/1.0.0 + trace: postponed_configurations::add: add {bac^ 1,1: libbar} to {box | libbar->{box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent bac/1.0.0 results in {bac^ box | libbar->{bac/1,1 box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: re-evaluated bac/1.0.0 + trace: collect_build: add bas/1.0.0 + trace: collect_build_prerequisites: reeval bas/1.0.0 + trace: postponed_configurations::add: add {bas^ 1,1: libbar} to {bac^ box | libbar->{bac/1,1 box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent bas/1.0.0 results in {bac^ bas^ box | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: re-evaluated bas/1.0.0 + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: reeval foo/1.0.0 + trace: postponed_configurations::add: add {foo^ 1,1: libfoo} to {bac^ bas^ box | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent foo/1.0.0 results in {bac^ bas^ box foo^ | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1 foo/1,1}} + trace: collect_build_prerequisites: re-evaluated foo/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate begin {bac^ bas^ box foo^ | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1 foo/1,1}} + %.* + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_prerequisites: skip configured libfoo/1.0.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bac/1.0.0 + trace: collect_build_prerequisites: resume bac/1.0.0 + trace: collect_build: add libbaz/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bac/1.0.0 + trace: postponed_configurations::add: create {bac | libbaz->{bac/2,1}} + trace: collect_build_prerequisites: postpone bac/1.0.0 + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bas/1.0.0 + trace: collect_build_prerequisites: resume bas/1.0.0 + trace: collect_build: add bus/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency bus/1.0.0 of dependent bas/1.0.0 + trace: postponed_configurations::add: create {bas | bus->{bas/2,1}} + trace: collect_build_prerequisites: postpone bas/1.0.0 + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent box/1.0.0 + trace: collect_build_prerequisites: resume box/1.0.0 + trace: collect_build_prerequisites: end box/1.0.0 + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent foo/1.0.0 + trace: collect_build_prerequisites: resume foo/1.0.0 + trace: collect_build_prerequisites: end foo/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {bac^ bas^ box foo^ | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1 foo/1,1}}! + trace: collect_build_postponed (2): begin {bac | libbaz->{bac/2,1}} + trace: collect_build_prerequisites: pre-reeval bus/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bus/1.0.0: 1,1 + trace: collect_build_postponed (2): skip being built existing dependent bac of dependency libbaz + trace: collect_build_postponed (2): skip existing dependent bus of dependency libbaz since dependent already in cluster {bas | bus->{bas/2,1}} (as a dependency) + trace: collect_build_postponed (2): cfg-negotiate begin {bac | libbaz->{bac/2,1}} + %.* + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbaz/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent bac/1.0.0 + trace: collect_build_prerequisites: resume bac/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent bac/1.0.0 + trace: postponed_configurations::add: add {bac 3,1: libfoo} to {bac^ bas^ box foo^ | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1 foo/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bac/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent bac/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end bac/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate end {bac | libbaz->{bac/2,1}}! + trace: collect_build_postponed (3): begin {bas | bus->{bas/2,1}} + trace: collect_build_postponed (3): skip being built existing dependent bas of dependency bus + trace: collect_build_postponed (3): cfg-negotiate begin {bas | bus->{bas/2,1}} + %.* + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin bus/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bus/1.0.0 + trace: postponed_configurations::add: add {bus 1,1: libbaz} to {bac | libbaz->{bac/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bus/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbaz/1.0.0 of dependent bus/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: cannot cfg-postpone dependency foo/1.0.0 of dependent bus/1.0.0 (collected prematurely), throwing postpone_dependency + trace: pkg_build: collection failed due to prematurely collected dependency (foo), retry from scratch + trace: pkg_build: refine package collection/plan execution from scratch + trace: collect_build: add box/1.0.0 + trace: collect_build_prerequisites: begin box/1.0.0 + trace: collect_build_prerequisites: alt-postpone dependent box/1.0.0 since max index is reached: 0 + info: dependency alternative: {libbar libfoo} + { + require + { + config.libbar.extras = true + config.libfoo.extras = true + } + } + trace: collect_build_prerequisites: postpone box/1.0.0 + trace: collect_build_postponed (0): begin + trace: collect_build_postponed (0): index 1 collect alt-postponed box/1.0.0 + trace: collect_build_prerequisites: resume box/1.0.0 + trace: collect_build: add libbar/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent box/1.0.0 + trace: collect_build: add libfoo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent box/1.0.0 + trace: postponed_configurations::add: create {box | libbar->{box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: postpone box/1.0.0 + trace: collect_build_postponed (1): begin {box | libbar->{box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: pre-reeval bac/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bac/1.0.0: 1,1 + trace: collect_build_prerequisites: pre-reeval bas/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bas/1.0.0: 1,1 + trace: collect_build_prerequisites: pre-reeval foo/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated foo/1.0.0: 1,1 + trace: collect_build_prerequisites: pre-reeval bac/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bac/1.0.0: 1,1 + trace: collect_build_postponed (1): skip dep-postponed existing dependent foo of dependency libfoo + trace: collect_build_postponed (1): re-evaluate existing dependents for {box | libbar->{box/1,1} libfoo->{box/1,1}} + trace: collect_build: add bac/1.0.0 + trace: collect_build_prerequisites: reeval bac/1.0.0 + trace: postponed_configurations::add: add {bac^ 1,1: libbar} to {box | libbar->{box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent bac/1.0.0 results in {bac^ box | libbar->{bac/1,1 box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: re-evaluated bac/1.0.0 + trace: collect_build: add bas/1.0.0 + trace: collect_build_prerequisites: reeval bas/1.0.0 + trace: postponed_configurations::add: add {bas^ 1,1: libbar} to {bac^ box | libbar->{bac/1,1 box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: re-evaluating dependent bas/1.0.0 results in {bac^ bas^ box | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1}} + trace: collect_build_prerequisites: re-evaluated bas/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate begin {bac^ bas^ box | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1}} + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbar/1.0.0 + trace: collect_build_prerequisites: skip configured libfoo/1.0.0 + trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bac/1.0.0 + trace: collect_build_prerequisites: resume bac/1.0.0 + trace: collect_build: add libbaz/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bac/1.0.0 + trace: postponed_configurations::add: create {bac | libbaz->{bac/2,1}} + trace: collect_build_prerequisites: postpone bac/1.0.0 + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bas/1.0.0 + trace: collect_build_prerequisites: resume bas/1.0.0 + trace: collect_build: add bus/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency bus/1.0.0 of dependent bas/1.0.0 + trace: postponed_configurations::add: create {bas | bus->{bas/2,1}} + trace: collect_build_prerequisites: postpone bas/1.0.0 + trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent box/1.0.0 + trace: collect_build_prerequisites: resume box/1.0.0 + trace: collect_build_prerequisites: end box/1.0.0 + trace: collect_build_postponed (1): cfg-negotiate end {bac^ bas^ box | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1}}! + trace: collect_build_postponed (2): begin {bac | libbaz->{bac/2,1}} + trace: collect_build_prerequisites: pre-reeval bus/1.0.0 + trace: collect_build_prerequisites: pre-reevaluated bus/1.0.0: 1,1 + trace: collect_build_postponed (2): skip being built existing dependent bac of dependency libbaz + trace: collect_build_postponed (2): skip existing dependent bus of dependency libbaz since dependent already in cluster {bas | bus->{bas/2,1}} (as a dependency) + trace: collect_build_postponed (2): cfg-negotiate begin {bac | libbaz->{bac/2,1}} + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: skip configured libbaz/1.0.0 + trace: collect_build_postponed (2): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (2): select cfg-negotiated dependency alternative for dependent bac/1.0.0 + trace: collect_build_prerequisites: resume bac/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent bac/1.0.0 + trace: postponed_configurations::add: add {bac 3,1: libfoo} to {bac^ bas^ box | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{box/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bac/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent bac/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end bac/1.0.0 + trace: collect_build_postponed (2): cfg-negotiate end {bac | libbaz->{bac/2,1}}! + trace: collect_build_postponed (3): begin {bas | bus->{bas/2,1}} + trace: collect_build_postponed (3): skip being built existing dependent bas of dependency bus + trace: collect_build_postponed (3): cfg-negotiate begin {bas | bus->{bas/2,1}} + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin bus/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bus/1.0.0 + trace: postponed_configurations::add: add {bus 1,1: libbaz} to {bac | libbaz->{bac/2,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bus/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libbaz/1.0.0 of dependent bus/1.0.0 is already (being) recursively collected, skipping + trace: collect_build: add foo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency foo/1.0.0 of dependent bus/1.0.0 + trace: postponed_configurations::add: create {bus | foo->{bus/2,1}} + trace: collect_build_prerequisites: postpone bus/1.0.0 + trace: collect_build_postponed (3): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (3): select cfg-negotiated dependency alternative for dependent bas/1.0.0 + trace: collect_build_prerequisites: resume bas/1.0.0 + trace: collect_build_prerequisites: end bas/1.0.0 + trace: collect_build_postponed (3): cfg-negotiate end {bas | bus->{bas/2,1}}! + trace: collect_build_postponed (4): begin {bus | foo->{bus/2,1}} + trace: collect_build_postponed (4): skip being built existing dependent bus of dependency foo + trace: collect_build_postponed (4): cfg-negotiate begin {bus | foo->{bus/2,1}} + %.* + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependencies + trace: collect_build_prerequisites: begin foo/1.0.0 + trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/1.0.0 + trace: postponed_configurations::add: add {foo 1,1: libfoo} to {bac^ bas^ box | libbar->{bac/1,1 bas/1,1 box/1,1} libfoo->{bac/3,1 box/1,1}}! + trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent foo/1.0.0 is negotiated + trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent foo/1.0.0 is already (being) recursively collected, skipping + trace: collect_build_prerequisites: end foo/1.0.0 + trace: collect_build_postponed (4): recursively collect cfg-negotiated dependents + trace: collect_build_postponed (4): select cfg-negotiated dependency alternative for dependent bus/1.0.0 + trace: collect_build_prerequisites: resume bus/1.0.0 + trace: collect_build_prerequisites: end bus/1.0.0 + trace: collect_build_postponed (4): cfg-negotiate end {bus | foo->{bus/2,1}}! + trace: collect_build_postponed (4): end {bus | foo->{bus/2,1}} + trace: collect_build_postponed (3): end {bas | bus->{bas/2,1}} + trace: collect_build_postponed (2): end {bac | libbaz->{bac/2,1}} + trace: collect_build_postponed (1): end {box | libbar->{box/1,1} libfoo->{box/1,1}} + trace: collect_build_postponed (0): end + trace: execute_plan: simulate: yes + %.* + build plan: + new box/1.0.0 + trace: execute_plan: simulate: no + %.* + EOE + + $pkg_drop bac bas box + } + : replace-configured-dependency : { @@ -14840,35 +15114,7 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 - trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} - trace: collect_build_prerequisites: reeval tex/1.0.0 - trace: collect_build: pick libbar/1.0.0 over libbar/0.1.0 - trace: postponed_configurations::add: add {tex^ 1,1: libbar} to {tex^ | libbar->{tex/1,1}} - trace: collect_build_prerequisites: re-evaluating dependent tex/1.0.0 results in {tex^ | libbar->{tex/1,1}} - trace: collect_build_prerequisites: re-evaluated tex/1.0.0 - trace: collect_build_prerequisites: reeval tiz/1.0.0 - trace: collect_build_prerequisites: cannot re-evaluate existing dependent tiz/1.0.0 due to dependency tex/1.0.0 (collected prematurely), throwing postpone_dependency - trace: pkg_build: collection failed due to prematurely collected dependency (tex), retry from scratch - trace: pkg_build: refine package collection/plan execution from scratch - trace: collect_build: add libbar/1.0.0 - trace: collect_build: add tiz/1.0.0 - trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 - trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 - trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of existing dependent tex/1.0.0 due to dependency libbar/1.0.0 - trace: collect_build: add tex/1.0.0 - trace: postponed_configurations::add: create {tex^ | libbar->{tex/1,1}} - trace: collect_build_prerequisites: cfg-postpone dependency tex/1.0.0 of existing dependent tiz/1.0.0 due to dependency libbar/1.0.0 - trace: postponed_configurations::add: create {tiz^ | tex->{tiz/1,1}} - trace: collect_build_prerequisites: skip configured tiz/1.0.0 - trace: collect_build_postponed (0): begin - trace: collect_build_postponed (1): begin {tex^ | libbar->{tex/1,1}} - trace: collect_build_prerequisites: pre-reeval tex/1.0.0 - trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 - trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 - trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 - trace: collect_build_postponed (1): skip dep-postponed existing dependent tex of dependency libbar + trace: collect_build_postponed (1): skip existing dependent tex of dependency libbar since dependent already in cluster {tiz^ | tex->{tiz/1,1}} (as a dependency) trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tiz/1.0.0 trace: postponed_configurations::add: add {tiz^ 1,1: tex} to {tiz^ | tex->{tiz/1,1}} @@ -14897,7 +15143,7 @@ test.arguments += --sys-no-query trace: collect_build_prerequisites: pre-reevaluated tex/1.0.0: 1,1 trace: collect_build_prerequisites: pre-reeval tiz/1.0.0 trace: collect_build_prerequisites: pre-reevaluated tiz/1.0.0: 1,1 - trace: collect_build_postponed (1): skip dep-postponed existing dependent tex of dependency libbar + trace: collect_build_postponed (1): skip existing dependent tex of dependency libbar since dependent already in cluster {tiz^ | tex->{tiz/1,1}} (as a dependency) trace: collect_build_postponed (1): re-evaluate existing dependents for {tex^ | libbar->{tex/1,1}} trace: collect_build_prerequisites: reeval tiz/1.0.0 trace: postponed_configurations::add: add {tiz^ 1,1: tex} to {tiz^ | tex->{tiz/1,1}} |