diff options
Diffstat (limited to 'tests/pkg-configure.test')
-rw-r--r-- | tests/pkg-configure.test | 408 |
1 files changed, 0 insertions, 408 deletions
diff --git a/tests/pkg-configure.test b/tests/pkg-configure.test deleted file mode 100644 index 0813084..0000000 --- a/tests/pkg-configure.test +++ /dev/null @@ -1,408 +0,0 @@ -# file : tests/pkg-configure.test -# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd -# license : MIT; see accompanying LICENSE file - -# Here we test both pkg-configure and pkg-disfigure commands. -# - -.include common.test auth.test config.test remote.test - -# Source repository: -# -# pkg-configure -# |-- hello -# | |-- libhello-1.0.0.tar.gz -# | `-- repositories.manifest -# |-- libhello-1.0.0 -# | |-- build -# | | |-- bootstrap.build -# | | |-- export.build -# | | `-- root.build -# | |-- buildfile -# | |-- hello -# | | |-- buildfile -# | | |-- export -# | | |-- hello -# | | `-- hello.cxx -# | |-- INSTALL -# | |-- manifest -# | |-- tests -# | | |-- build -# | | | |-- bootstrap.build -# | | | `-- root.build -# | | |-- buildfile -# | | `-- test -# | | |-- buildfile -# | | |-- driver.cxx -# | | `-- test.out -# | `-- version -# `-- stable -# |-- libbar-1.0.0.tar.gz -> libfoo -# |-- libbar-1.1.0.tar.gz -> libfoo >= 1.1.0 -# |-- libbar-1.2.0.tar.gz -> libfoo >= 1.1.0, libfox | libfoo >= 1.2.0 -# |-- libbar-1.3.0.tar.gz -> libfox | libfoo <= 1.1.0, -# | libfix | libfoo >= 1.1.0 -# |-- libfoo-1.0.0.tar.gz -# |-- libfoo-1.1.0.tar.gz -# |-- libfoo-1.2.0.tar.gz -# `-- repositories.manifest - -# Prepare repositories used by tests if running in the local mode. -# -+if ($remote != true) - rep_create += 2>! - - # Create the signed 'hello' repository. - # - cp -r $src/hello $out/hello - cat <<<$cert_manifest >+$out/hello/repositories.manifest - - $rep_create --key $key $out/hello &$out/hello/packages.manifest \ - &$out/hello/signature.manifest - - # Create the 'stable' repository. - # - cp -r $src/stable $out/stable - $rep_create $out/stable &$out/stable/packages.manifest -end - -test.arguments += "config.cxx=$config.cxx" - -pkg_disfigure += -d cfg -pkg_fetch += -d cfg 2>! -pkg_purge += -d cfg -pkg_status += -d cfg -pkg_unpack += -d cfg 2>! -rep_add += -d cfg 2>! -rep_fetch += -d cfg --auth all 2>! - -: no-name -: -$clone_cfg; -$* 2>>EOE != 0 - error: package name argument expected - info: run 'bpkg help pkg-configure' for more information - EOE - -: var-no-name -: -$clone_cfg; -$* "config.dist.root=$~/opt" 2>>EOE != 0 - error: package name argument expected - info: run 'bpkg help pkg-configure' for more information - EOE - -: unexpected-arg -: -$clone_cfg; -$* libhello libhello 2>>EOE != 0 - error: unexpected argument 'libhello' - EOE - -: fetched -: -{ - +$clone_cfg - +$rep_add $rep/hello - +$rep_fetch --trust $cert_fp &cfg/.bpkg/certs/** - - : no-such-package - : - $clone_cfg; - $* libhello1 2>>/EOE != 0 - error: package libhello1 does not exist in configuration cfg/ - EOE - - : disfigure - { - : no-name - : - $clone_root_cfg; - $pkg_disfigure 2>>EOE != 0 - error: package name argument expected - info: run 'bpkg help pkg-disfigure' for more information - EOE - - : no-such-package - : - $clone_root_cfg; - $pkg_disfigure libhello1 2>>/EOE != 0 - error: package libhello1 does not exist in configuration cfg/ - EOE - } - - : wrong-state - : - { - $clone_cfg && $pkg_fetch libhello/1.0.0; - - $* libhello 2>>EOE != 0; - error: package libhello is fetched - info: expected it to be unpacked - EOE - - $pkg_disfigure libhello 2>>EOE != 0; - error: package libhello is fetched - info: expected it to be configured - EOE - - $pkg_purge libhello 2>'purged libhello/1.0.0' - } - - : src-eq-out - : - { - $clone_cfg; - $pkg_fetch libhello/1.0.0 && $pkg_unpack libhello; - - $* libhello 2>'configured libhello/1.0.0'; - $pkg_status libhello 1>'libhello configured 1.0.0'; - $pkg_disfigure libhello 2>'disfigured libhello/1.0.0'; - $pkg_status libhello 1>'libhello unpacked 1.0.0'; - - $pkg_purge libhello 2>'purged libhello/1.0.0'; - $pkg_status libhello/1.0.0 1>'libhello available 1.0.0' - } -} - -: src-ne-out -: -{ - $clone_cfg && $pkg_unpack -e $src/libhello-1.0.0; - - $* libhello 2>'configured libhello/1.0.0'; - $pkg_status libhello 1>'libhello configured 1.0.0'; - $pkg_disfigure libhello 2>'disfigured libhello/1.0.0'; - $pkg_status libhello 1>'libhello unpacked 1.0.0'; - - $pkg_purge libhello 2>'purged libhello/1.0.0'; - $pkg_status libhello 1>'libhello unknown'; - test -d cfg/libhello-1.0.0 == 1 -} - -: out-exists-disfigure -: -{ - $clone_cfg && $pkg_unpack -e $src/libhello-1.0.0; - - $* libhello 2>'configured libhello/1.0.0'; - touch cfg/libhello/stray &!cfg/libhello/stray; - - $pkg_disfigure libhello 2>'disfigured libhello/1.0.0'; - - $pkg_status libhello/1.0.0 >'libhello unpacked 1.0.0'; - - $pkg_purge -f libhello 2>'purged libhello/1.0.0'; - $pkg_status libhello/1.0.0 1>'libhello unknown 1.0.0' -} - -: broken -: -if ($cxx.target.class != 'windows') -{ - : disfigure-failed - : - { - $clone_root_cfg && $pkg_unpack -e $src/libhello-1.0.0; - - $* libhello 2>'configured libhello/1.0.0'; - chmod 555 cfg/libhello; - - $pkg_disfigure libhello 2>>/~%EOE% != 0; - %error: unable to remove directory cfg/libhello/.+% - info: package libhello is now broken; use 'pkg-purge' to remove - EOE - - $pkg_status libhello >'libhello broken 1.0.0'; - - chmod 755 cfg/libhello; - rm -r cfg/libhello; - $pkg_purge -f libhello 2>'purged libhello/1.0.0'; - $pkg_status libhello >'libhello unknown' - } - - : configure-failed - : - : Note that pkg-configure in case of build2 process failure implicitly - : performs pkg-disfigure, that succeeds. - : - { - $clone_root_cfg && $pkg_unpack -e $src/libhello-1.0.0; - mkdir -p cfg/libhello/build &!cfg/libhello/ &!cfg/libhello/build/; - chmod 555 cfg/libhello/build; - - $* libhello 2>>/~%EOE% != 0; - %error: unable to create directory cfg/libhello/build/.+% - EOE - - $pkg_status libhello >'libhello unpacked 1.0.0' - } - - : configure-disfigure-failed - : - : Note that pkg-configure in case of build2 process failure implicitly - : performs pkg-disfigure, that also fails. - : - { - $clone_root_cfg && $pkg_unpack -e $src/libhello-1.0.0; - mkdir -p cfg/libhello/build &!cfg/libhello/ &!cfg/libhello/build/; - chmod 555 cfg/libhello cfg/libhello/build; - - $* libhello 2>>/~%EOE% != 0; - %error: unable to create directory cfg/libhello/build/.+% - %error: unable to remove directory cfg/libhello/.+% - info: package libhello is now broken; use 'pkg-purge' to remove - EOE - - $pkg_status libhello >'libhello broken 1.0.0'; - - chmod 755 cfg/libhello cfg/libhello/build; - rm -r cfg/libhello; - $pkg_purge -f libhello 2>'purged libhello/1.0.0'; - $pkg_status libhello >'libhello unknown' - } -} - -: dependency-management -: -{ - +$clone_cfg && $rep_add $rep/stable && $rep_fetch --trust-yes - - : still-has-deps - : - { - $clone_cfg; - $pkg_fetch libbar/1.0.0 && $pkg_unpack libbar; - - $* libbar 2>>EOE != 0; - error: no configured package satisfies dependency on libfoo - EOE - - $pkg_status libbar/1.0.0 1>'libbar unpacked 1.0.0'; - $pkg_fetch libfoo/1.0.0; - $pkg_unpack libfoo; - - $* libbar 2>>EOE != 0; - error: no configured package satisfies dependency on libfoo - EOE - - $* libfoo 2>'configured libfoo/1.0.0'; - $* libbar 2>'configured libbar/1.0.0'; - - $pkg_disfigure libfoo 2>>EOE != 0; - error: package libfoo still has dependencies: - info: package libbar - EOE - - $pkg_disfigure libbar 2>'disfigured libbar/1.0.0'; - $pkg_disfigure libfoo 2>'disfigured libfoo/1.0.0'; - - $pkg_purge libbar 2>'purged libbar/1.0.0'; - $pkg_purge libfoo 2>'purged libfoo/1.0.0' - } - - : no-package-satisfy - : - { - $clone_cfg; - $pkg_fetch libfoo/1.0.0 && $pkg_unpack libfoo; - - $* libfoo 2>'configured libfoo/1.0.0'; - $pkg_fetch libbar/1.1.0; - $pkg_unpack libbar; - - $* libbar 2>>EOE != 0; - error: no configured package satisfies dependency on libfoo >= 1.1.0 - EOE - - $pkg_disfigure libfoo 2>'disfigured libfoo/1.0.0'; - $pkg_purge libfoo 2>'purged libfoo/1.0.0'; - $pkg_fetch libfoo/1.1.0; - $pkg_unpack libfoo; - $* libfoo 2>'configured libfoo/1.1.0'; - $* libbar 2>'configured libbar/1.1.0'; - $pkg_disfigure libbar 2>'disfigured libbar/1.1.0'; - $pkg_disfigure libfoo 2>'disfigured libfoo/1.1.0'; - - $pkg_purge libfoo 2>'purged libfoo/1.1.0'; - $pkg_purge libbar 2>'purged libbar/1.1.0' - } - - : no-package-satisfy-alt - : - { - $clone_cfg; - $pkg_fetch libfoo/1.1.0 && $pkg_unpack libfoo; - - $* libfoo 2>'configured libfoo/1.1.0'; - $pkg_fetch libbar/1.2.0; - $pkg_unpack libbar; - - $* libbar 2>>EOE != 0; - error: no configured package satisfies dependency on libfox | libfoo >= 1.2.0 - EOE - - $pkg_disfigure libfoo 2>'disfigured libfoo/1.1.0'; - $pkg_purge libfoo 2>'purged libfoo/1.1.0'; - $pkg_fetch libfoo/1.2.0; - $pkg_unpack libfoo; - $* libfoo 2>'configured libfoo/1.2.0'; - $* libbar 2>'configured libbar/1.2.0'; - - $pkg_disfigure libfoo 2>>EOE != 0; - error: package libfoo still has dependencies: - info: package libbar on libfoo >= 1.2.0 - EOE - - $pkg_disfigure libbar 2>'disfigured libbar/1.2.0'; - $pkg_disfigure libfoo 2>'disfigured libfoo/1.2.0'; - - $pkg_purge libfoo 2>'purged libfoo/1.2.0'; - $pkg_purge libbar 2>'purged libbar/1.2.0' - } - - : incompatible-constraints - : - { - $clone_cfg; - $pkg_fetch libfoo/1.1.0 && $pkg_unpack libfoo; - - $* libfoo 2>'configured libfoo/1.1.0'; - $pkg_fetch libbar/1.3.0; - $pkg_unpack libbar; - - $* libbar 2>>EOE != 0; - error: multiple dependencies on package libfoo - info: libfoo <= 1.1.0 - info: libfoo >= 1.1.0 - EOE - - $pkg_disfigure libfoo 2>'disfigured libfoo/1.1.0'; - - $pkg_purge libfoo 2>'purged libfoo/1.1.0'; - $pkg_purge libbar 2>'purged libbar/1.3.0' - } -} - -: keep-out -: -{ - : fallback - : - : Test that pkg-disfigure falls back to the external package output directory - : removal if the source directory have gone. - : - { - $clone_root_cfg; - - # Configure libhello as an external package. - # - cp --no-cleanup -r $src/libhello-1.0.0 ./libhello; - $pkg_unpack -e ./libhello; - $* libhello 2>!; - - rm -r ./libhello; - $pkg_disfigure --keep-out libhello 2>'disfigured libhello/1.0.0'; - test -d cfg/libhello != 0 - } -} |