# file : tests/pkg-update.testscript # license : MIT; see accompanying LICENSE file .include common.testscript auth.testscript config.testscript remote.testscript # Source repository: # # pkg-update # |-- 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 # Prepare repositories used by tests if running in the local mode. # +if! $remote 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 end config_cxx = [cmdline] config.cxx=$quote($recall($cxx.path) $cxx.config.mode, true) pkg_configure += -d cfg $config_cxx 2>! pkg_disfigure += -d cfg pkg_fetch += -d cfg 2>! pkg_purge += -d cfg pkg_build += -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-update' for more information EOE : fetched : { +$clone_cfg +$rep_add $rep/hello +$rep_fetch --trust $cert_fp &cfg/.bpkg/certs/** : no-such-package : $clone_cfg; $* libhello 2>>/EOE != 0 error: package libhello 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 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; $pkg_configure libhello; $* libhello 2>>~%EOE%; %(c\+\+|ar|ld) .+%{6} updated libhello/1.0.0 EOE $* libhello 2>>~%EOE%; %info: .+ is up to date% updated libhello/1.0.0 EOE $pkg_disfigure libhello 2>'disfigured libhello/1.0.0'; $pkg_purge libhello 2>'purged libhello/1.0.0' } } : src-ne-out : { $clone_cfg; $pkg_unpack -e $src/libhello-1.0.0 && $pkg_configure libhello; $* libhello 2>>~%EOE%; %(mkdir|c\+\+|ar|ld) .+%{8} updated libhello/1.0.0 EOE $* libhello 2>>~%EOE%; %info: .+ is up to date% updated libhello/1.0.0 EOE $pkg_disfigure libhello 2>'disfigured libhello/1.0.0'; $pkg_purge libhello 2>'purged libhello/1.0.0' } : vars : { +$cfg_create cxx $config_cxx -d cfg 2>- &cfg/*** +$rep_fetch $rep/hello --trust $cert_fp &cfg/.bpkg/certs/** : global-and-local : { $clone_cfg; $pkg_fetch libhello/1.0.0 && $pkg_unpack libhello; $pkg_configure libhello; $* -v config.cxx.poptions=-DG libhello +{ config.cxx.poptions+=-DL } 2>>~%EOE%; %.+ config\.cxx\.poptions=-DG config\.cxx\.poptions\+=-DL update.+% %.{6} updated libhello/1.0.0 EOE $pkg_disfigure libhello 2>'disfigured libhello/1.0.0'; $pkg_purge libhello 2>'purged libhello/1.0.0' } : all-packages : { $clone_cfg; $pkg_build libhello 2>!; # To hold libhello package. $* -v --all config.cxx.poptions=-DG 2>>~%EOE%; %.+ config\.cxx\.poptions=-DG update.+% %.{6} updated libhello/1.0.0 EOE $pkg_disfigure libhello 2>'disfigured libhello/1.0.0'; $pkg_purge libhello 2>'purged libhello/1.0.0' } : var-opts : { $clone_cfg; $* config.cxx.poptions=-DG +{ --all } 2>>EOE != 0 error: unexpected options group for variable 'config.cxx.poptions=-DG' EOE } }