# file : tests/pkg-test.testscript # license : MIT; see accompanying LICENSE file .include common.testscript config.testscript remote.testscript # Source repository: # # pkg-build # | # `-- t0a # |-- libbar-0.0.1.tar.gz -> libbaz == 0.0.1 # |-- libbaz-0.0.1.tar.gz -> libfox # |-- libbaz-0.0.3.tar.gz -> libfoo # |-- libbox-0.0.1.tar.gz -> libbaz # |-- libfix-0.0.1.tar.gz # |-- libfoo-0.0.1.tar.gz -> libfix # |-- libfox-0.0.1.tar.gz # `-- repositories.manifest # Prepare repositories used by tests if running in the local mode. # +if! $remote rep_create += 2>! cp -r $src/t0a $out/t0a && $rep_create $out/t0a &$out/t0a/packages.manifest end cfg_create += -d cfg 2>! &cfg/*** pkg_build += -d cfg --yes --auth all --trust-yes 2>! +$pkg_build "libbaz@$rep/t0a" test.options += --build-option -s : args : { : no-name : $* 2>>EOE != 0 error: package name argument expected info: run 'bpkg help pkg-test' for more information EOE : all-all-pattern : $* --all --all-pattern 'lib*' 2>>EOE != 0 error: both --all|-a and --all-pattern specified info: run 'bpkg help pkg-test' for more information EOE : all-name : $* --all libbaz 2>>EOE != 0 error: both --all|-a and package argument specified info: run 'bpkg help pkg-test' for more information EOE : all-pattern-name : $* --all-pattern 'lib*' libbaz 2>>EOE != 0 error: both --all-pattern and package argument specified info: run 'bpkg help pkg-test' for more information EOE : recursive-immediate : $* libbaz --recursive --immediate 2>>~%EOE% != 0 error: both --immediate|-i and --recursive|-r specified info: run 'bpkg help pkg-test' for more information EOE } : package : { $clone_cfg; $* libbaz 2>>~%EOE% %info: .+ has nothing to test% tested libbaz/0.0.3 EOE } : all : { : src : { $clone_root_cfg; $* --all 2>>~%EOE% %info: .+ has nothing to test% tested libbaz/0.0.3 EOE } : sys : { $cfg_create; $pkg_build "sys:libbaz@$rep/t0a"; $* --all 2>'info: nothing to test' } } : all-pattern : { : match : { $clone_root_cfg; $* --all-pattern 'libf*' --all-pattern 'lib*' --all-pattern 'libz*' 2>>~%EOE% %info: .+ has nothing to test% tested libbaz/0.0.3 EOE } : not-match : { $clone_root_cfg; $* --all-pattern 'libf*' 2>'info: nothing to test' } } : immediate : { $clone_cfg; $* libbaz --immediate 2>>~%EOE% %info: .+ has nothing to test%{2} tested libbaz/0.0.3 tested libfoo/0.0.1 EOE } : recursive : { $clone_cfg; $* libbaz --recursive 2>>~%EOE% %info: .+ has nothing to test%{3} tested libbaz/0.0.3 tested libfoo/0.0.1 tested libfix/0.0.1 EOE } : package-cwd : { $clone_cfg; $* libbaz --recursive --package-cwd -v 2>>/~%EOE% %(.+ test\('\./'\)|info: .+ has nothing to test)%{6} %tested .+%{3} EOE }