diff options
Diffstat (limited to 'tests/rep-fetch.test')
-rw-r--r-- | tests/rep-fetch.test | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/tests/rep-fetch.test b/tests/rep-fetch.test new file mode 100644 index 0000000..e59ebf4 --- /dev/null +++ b/tests/rep-fetch.test @@ -0,0 +1,134 @@ +# file : tests/rep-fetch.test +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +.include common.test auth.test config.test remote.test + +# Source repository: +# +# rep-fetch +# |-- bar +# | |-- stable -> ../foo/stable (prerequisite) +# | | |-- libbar-1.0.0.tar.gz -> libfoo >= 1.0.0 +# | | `-- repositories +# | |-- testing -> stable (complement), +# | | | ../foo/testing (prerequisite) +# | | |-- libbar-1.1.0.tar.gz -> libfoo >= 1.1.0 +# | | `-- repositories +# | `-- unstable -> testing (complement), +# | | ../foo/testing (prerequisite) +# | |-- libbar-1.1.1.tar.gz -> libfoo >= 1.1.0 +# | `-- repositories +# |-- foo +# | |-- stable +# | | |-- libfoo-1.0.0.tar.gz +# | | `-- repositories +# | `-- testing -> stable (complement) +# | |-- libfoo-1.1.0.tar.gz +# | `-- repositories +# `-- hello +# |-- libhello-1.0.0.tar.gz +# `-- repositories + +# 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 + $rep_create --key $key $out/hello &$out/hello/packages &$out/hello/signature + + # Create 'foo/*' repositories. + # + cp -r $src/foo $out/foo + $rep_create $out/foo/stable &$out/foo/stable/packages + $rep_create $out/foo/testing &$out/foo/testing/packages + + # Create 'bar/*' repositories. + # + cp -r $src/bar $out/bar + $rep_create $out/bar/stable &$out/bar/stable/packages + $rep_create $out/bar/testing &$out/bar/testing/packages + $rep_create $out/bar/unstable &$out/bar/unstable/packages +end + +test.options += --auth all + +rep_add += -d cfg 2>- + +: no-repositories +: +$clone_cfg; +$* 2>>/EOE != 0 + error: configuration cfg/ has no repositories + info: use 'bpkg rep-add' to add a repository + EOE + +: hello +: +{ + $clone_cfg && $rep_add $rep/hello; + + $* --trust $cert_fp 2>>EOE &cfg/.bpkg/certs/***; + fetching build2.org/rep-fetch/hello + 1 package(s) in 1 repository(s) + EOE + + $* 2>>EOE + fetching build2.org/rep-fetch/hello + 1 package(s) in 1 repository(s) + EOE +} + +: bar-unstable +: +{ + $clone_cfg && $rep_add $rep/bar/unstable; + + $* --trust-yes 2>>EOE; + fetching build2.org/rep-fetch/bar/unstable + fetching build2.org/rep-fetch/foo/testing (prerequisite of build2.org/rep-fetch/bar/unstable) + fetching build2.org/rep-fetch/foo/stable (complements build2.org/rep-fetch/foo/testing) + fetching build2.org/rep-fetch/bar/testing (complements build2.org/rep-fetch/bar/unstable) + fetching build2.org/rep-fetch/bar/stable (complements build2.org/rep-fetch/bar/testing) + 5 package(s) in 5 repository(s) + EOE + + $* 2>>EOE + fetching build2.org/rep-fetch/bar/unstable + fetching build2.org/rep-fetch/foo/testing (prerequisite of build2.org/rep-fetch/bar/unstable) + fetching build2.org/rep-fetch/foo/stable (complements build2.org/rep-fetch/foo/testing) + fetching build2.org/rep-fetch/bar/testing (complements build2.org/rep-fetch/bar/unstable) + fetching build2.org/rep-fetch/bar/stable (complements build2.org/rep-fetch/bar/testing) + 5 package(s) in 5 repository(s) + EOE +} + +: both +: +{ + $clone_cfg && $rep_add $rep/hello && $rep_add $rep/bar/unstable; + + $* --trust-yes 2>>EOE &cfg/.bpkg/certs/***; + fetching build2.org/rep-fetch/bar/unstable + fetching build2.org/rep-fetch/foo/testing (prerequisite of build2.org/rep-fetch/bar/unstable) + fetching build2.org/rep-fetch/foo/stable (complements build2.org/rep-fetch/foo/testing) + fetching build2.org/rep-fetch/bar/testing (complements build2.org/rep-fetch/bar/unstable) + fetching build2.org/rep-fetch/bar/stable (complements build2.org/rep-fetch/bar/testing) + fetching build2.org/rep-fetch/hello + 6 package(s) in 6 repository(s) + EOE + + $* 2>>EOE + fetching build2.org/rep-fetch/bar/unstable + fetching build2.org/rep-fetch/foo/testing (prerequisite of build2.org/rep-fetch/bar/unstable) + fetching build2.org/rep-fetch/foo/stable (complements build2.org/rep-fetch/foo/testing) + fetching build2.org/rep-fetch/bar/testing (complements build2.org/rep-fetch/bar/unstable) + fetching build2.org/rep-fetch/bar/stable (complements build2.org/rep-fetch/bar/testing) + fetching build2.org/rep-fetch/hello + 6 package(s) in 6 repository(s) + EOE +} |