aboutsummaryrefslogtreecommitdiff
path: root/tests/package-archive
diff options
context:
space:
mode:
Diffstat (limited to 'tests/package-archive')
-rw-r--r--tests/package-archive/buildfile8
-rw-r--r--tests/package-archive/driver.in20
-rw-r--r--tests/package-archive/libhello-0.1.0+1.tar.gzbin0 -> 3045 bytes
-rw-r--r--tests/package-archive/libhello-0.1.0.tar.gzbin0 -> 3033 bytes
-rw-r--r--tests/package-archive/testscript127
5 files changed, 155 insertions, 0 deletions
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
new file mode 100644
index 0000000..8d6bde9
--- /dev/null
+++ b/tests/package-archive/libhello-0.1.0+1.tar.gz
Binary files differ
diff --git a/tests/package-archive/libhello-0.1.0.tar.gz b/tests/package-archive/libhello-0.1.0.tar.gz
new file mode 100644
index 0000000..604a536
--- /dev/null
+++ b/tests/package-archive/libhello-0.1.0.tar.gz
Binary files differ
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
+ }
+}