diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2020-09-23 13:13:05 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2020-09-24 19:09:39 +0300 |
commit | 15514b1013a22977a451c64b6df229414a9dde6b (patch) | |
tree | c15fe9a45fe06403944b642314bf80d8349b439d /tests | |
parent | 0d0d607e3f2582afb708642b98f2d75568b51326 (diff) |
Add package-archive.bash public module
Diffstat (limited to 'tests')
-rw-r--r-- | tests/.gitignore | 1 | ||||
-rw-r--r-- | tests/build/root.build | 6 | ||||
-rw-r--r-- | tests/buildfile | 4 | ||||
-rw-r--r-- | tests/package-archive/buildfile | 8 | ||||
-rw-r--r-- | tests/package-archive/driver.in | 20 | ||||
-rw-r--r-- | tests/package-archive/libhello-0.1.0+1.tar.gz | bin | 0 -> 3045 bytes | |||
-rw-r--r-- | tests/package-archive/libhello-0.1.0.tar.gz | bin | 0 -> 3033 bytes | |||
-rw-r--r-- | tests/package-archive/testscript | 127 | ||||
-rw-r--r-- | tests/publish/buildfile | 8 | ||||
-rw-r--r-- | tests/publish/testscript (renamed from tests/publish.testscript) | 2 |
10 files changed, 170 insertions, 6 deletions
diff --git a/tests/.gitignore b/tests/.gitignore index 35ec43f..2e508a9 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1,2 +1,3 @@ +driver test/ test-*/ diff --git a/tests/build/root.build b/tests/build/root.build index 1472384..c3d4252 100644 --- a/tests/build/root.build +++ b/tests/build/root.build @@ -1,6 +1,8 @@ # file : tests/build/root.build # license : MIT; see accompanying LICENSE file -# Setup the utilities that we are testing. +using bash + +# Every exe{} in this subproject is by default a test. # -import publish = bpkg-rep%exe{bpkg-rep-publish} +exe{*}: test = true diff --git a/tests/buildfile b/tests/buildfile index 0beb40f..556ed55 100644 --- a/tests/buildfile +++ b/tests/buildfile @@ -1,6 +1,4 @@ # file : tests/buildfile # license : MIT; see accompanying LICENSE file -./: testscript{*} $publish - -testscript{publish}@./: test = $publish +./: {*/ -build/} diff --git a/tests/package-archive/buildfile b/tests/package-archive/buildfile new file mode 100644 index 0000000..a8ff42b --- /dev/null +++ b/tests/package-archive/buildfile @@ -0,0 +1,8 @@ +# file : tests/package-archive/buildfile +# license : MIT; see accompanying LICENSE file + +import mods = bpkg-rep%bash{package-archive} + +./: exe{driver} file{*.tar.gz} + +exe{driver}: in{driver} $mods testscript diff --git a/tests/package-archive/driver.in b/tests/package-archive/driver.in new file mode 100644 index 0000000..d760a1e --- /dev/null +++ b/tests/package-archive/driver.in @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +# file : tests/package-archive/driver.in +# license : MIT; see accompanying LICENSE file + +# bpkg utility path. +# +bpkg_rep_bpkg=bpkg + +trap "{ exit 1; }" ERR +set -o errtrace # Trap ERR in functions. + +@import bpkg-rep/package-archive@ + +# Call the function passed on the command line. +# +# Note that we reset IFS to make sure that the function being tested is not +# affected by its value set by the caller. +# +IFS= "$@" diff --git a/tests/package-archive/libhello-0.1.0+1.tar.gz b/tests/package-archive/libhello-0.1.0+1.tar.gz Binary files differnew file mode 100644 index 0000000..8d6bde9 --- /dev/null +++ b/tests/package-archive/libhello-0.1.0+1.tar.gz diff --git a/tests/package-archive/libhello-0.1.0.tar.gz b/tests/package-archive/libhello-0.1.0.tar.gz Binary files differnew file mode 100644 index 0000000..604a536 --- /dev/null +++ b/tests/package-archive/libhello-0.1.0.tar.gz diff --git a/tests/package-archive/testscript b/tests/package-archive/testscript new file mode 100644 index 0000000..6124d4a --- /dev/null +++ b/tests/package-archive/testscript @@ -0,0 +1,127 @@ +# file : tests/package-archive/testscript +# license : MIT; see accompanying LICENSE file + +# Note that searching for packages directly in $src_base is a bad idea, since +# removing testscript working directories while testing in source makes the +# find utility to fail with the 'no such file or directory' error. Thus, we +# clone the archives into the test working directories and search there. +# +clone_arcs = \ + cp $src_base/libhello-0.1.0.tar.gz $src_base/libhello-0.1.0+1.tar.gz ./ + +: pkg-verify-archive +: +{ + test.arguments += bpkg_rep_pkg_verify_archive + + : non-existing-archive + : + $* libhello-0.1.0.tar.gz 2>>EOE != 0 + error: archive file 'libhello-0.1.0.tar.gz' does not exist + EOE + + : success + : + $* $src_base/libhello-0.1.0.tar.gz >:'libhello 0.1.0 hello' +} + +: pkg-find-archives +: +{ + test.arguments += bpkg_rep_pkg_find_archives + + : none + : + { + $clone_arcs; + + $* 'libhello' '0.2.0' $~ + } + + : package + : + { + $clone_arcs; + + $* 'libhello' '*' $~ >>:/~"%EOO%" + %\( + $~/libhello-0.1.0.tar.gz + $~/libhello-0.1.0+1.tar.gz + %| + $~/libhello-0.1.0+1.tar.gz + $~/libhello-0.1.0.tar.gz + %\) + EOO + } + + : package-version + : + { + $clone_arcs; + + $* 'libhello' '0.1.0' $~ >:/"$~/libhello-0.1.0.tar.gz" + } + + : package-revision + : + { + $clone_arcs; + + $* 'libhello' '0.1.0+1' $~ >:/"$~/libhello-0.1.0+1.tar.gz" + } + + : package-revisions1 + : + { + $clone_arcs; + + $* 'libhello' '0.1.0*' $~ >>:/~"%EOO%" + %\( + $~/libhello-0.1.0.tar.gz + $~/libhello-0.1.0+1.tar.gz + %| + $~/libhello-0.1.0+1.tar.gz + $~/libhello-0.1.0.tar.gz + %\) + EOO + } + + : package-revisions2 + : + { + $clone_arcs; + + $* 'libhello' '0.1.0+2*' $~ >>:/~"%EOO%" + %\( + $~/libhello-0.1.0.tar.gz + $~/libhello-0.1.0+1.tar.gz + %| + $~/libhello-0.1.0+1.tar.gz + $~/libhello-0.1.0.tar.gz + %\) + EOO + } +} + +: pkg-find-archive +: +{ + test.arguments += bpkg_rep_pkg_find_archive + + : non-existent + : + $* 'libhello-0.1.0.*' $~ + + : existing + : + { + $clone_arcs; + + $* 'libhello-0.1.0.*' $~ >>:/"EOO" + libhello + 0.1.0 + hello + $~/libhello-0.1.0.tar.gz + EOO + } +} diff --git a/tests/publish/buildfile b/tests/publish/buildfile new file mode 100644 index 0000000..4cc1bd0 --- /dev/null +++ b/tests/publish/buildfile @@ -0,0 +1,8 @@ +# file : tests/publish/buildfile +# license : MIT; see accompanying LICENSE file + +import publish = bpkg-rep%exe{bpkg-rep-publish} + +./: testscript $publish + +testscript@./: test = $publish diff --git a/tests/publish.testscript b/tests/publish/testscript index f11a171..2d3fb4c 100644 --- a/tests/publish.testscript +++ b/tests/publish/testscript @@ -1,4 +1,4 @@ -# file : tests/publish.testscript +# file : tests/publish/testscript # license : MIT; see accompanying LICENSE file : args |