aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-10-27 16:01:27 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-10-27 16:01:27 +0200
commit17151c3b72ad1cb001c45fcc0b236f6a893ef59e (patch)
tree0ea932a7f01104160697ef1eba4877350456bd49
parentd6effdb53b5145a160ae24f5b355e08f5a2b8b39 (diff)
Complete tests for all commands
-rw-r--r--bpkg/pkg-unpack.cxx2
-rw-r--r--tests/repository/1/common/not-a-package.tar.gzbin0 -> 259 bytes
-rwxr-xr-xtests/test.sh114
3 files changed, 93 insertions, 23 deletions
diff --git a/bpkg/pkg-unpack.cxx b/bpkg/pkg-unpack.cxx
index 5af8a10..604abdf 100644
--- a/bpkg/pkg-unpack.cxx
+++ b/bpkg/pkg-unpack.cxx
@@ -221,7 +221,7 @@ namespace bpkg
tracer trace ("pkg_unpack");
if (o.replace () && !o.existing ())
- fail << "-r|--replace can only be specified with -e|--existing";
+ fail << "--replace|-r can only be specified with --existing|-e";
const dir_path& c (o.directory ());
level4 ([&]{trace << "configuration: " << c;});
diff --git a/tests/repository/1/common/not-a-package.tar.gz b/tests/repository/1/common/not-a-package.tar.gz
new file mode 100644
index 0000000..aa10905
--- /dev/null
+++ b/tests/repository/1/common/not-a-package.tar.gz
Binary files differ
diff --git a/tests/test.sh b/tests/test.sh
index 18643cc..e3c613c 100755
--- a/tests/test.sh
+++ b/tests/test.sh
@@ -93,7 +93,9 @@ function test ()
local cmd=$1; shift
local ops=
- if [ "$cmd" != "rep-create" -a "$cmd" != "rep-info" ]; then
+ if [ "$cmd" != "rep-create" -a \
+ "$cmd" != "rep-info" -a \
+ "$cmd" != "pkg-verify" ]; then
ops="-d $cfg"
fi
@@ -116,7 +118,9 @@ function fail ()
local cmd=$1; shift
local ops=
- if [ "$cmd" != "rep-create" -a "$cmd" != "rep-info" ]; then
+ if [ "$cmd" != "rep-create" -a \
+ "$cmd" != "rep-info" -a \
+ "$cmd" != "pkg-verify" ]; then
ops="-d $cfg"
fi
@@ -155,11 +159,27 @@ function gone ()
#if false; then
+
##
-## rep-create
+## Low-level commands.
+##
+
+
##
+## pkg-verify
+##
+fail pkg-verify # archive expected
+fail pkg-verify ./no-such-file # archive does not exist
+fail pkg-verify repository/1/common/not-a-package.tar.gz
+fail pkg-verify --silent repository/1/common/not-a-package.tar.gz
+test pkg-verify repository/1/common/hello/libhello-1.0.0.tar.gz
+
-fail rep-create # no 'repositories' file
+##
+## rep-create
+##
+fail rep-create # no 'repositories' file
+fail rep-create repository/1/satisfy # unexpected files
test rep-create repository/1/common/hello
@@ -170,10 +190,10 @@ test rep-create repository/1/common/bar/stable
test rep-create repository/1/common/bar/testing
test rep-create repository/1/common/bar/unstable
+
##
## rep-info
##
-
fail rep-info # repository location expected
test rep-info $rep/common/foo/testing <<EOF
@@ -204,20 +224,20 @@ depends: libfoo >= 1.1.0
location: libbar-1.1.1.tar.gz
EOF
+
##
## cfg-create
##
-
test cfg-create --wipe cxx config.install.root=/tmp/install
stat libfoo unknown
test cfg-create --wipe config.install.root=/tmp/install cxx
stat libfoo unknown
+
##
## rep-add
##
-
test cfg-create --wipe
fail rep-add # repository location expected
@@ -239,10 +259,10 @@ fail rep-add /tmp/1/../1/foo/stable # duplicate
test rep-add http://pkg.example.org/1/testing
fail rep-add http://www.example.org/1/testing # duplicate
+
##
## rep-fetch
##
-
test cfg-create --wipe
fail rep-fetch # no repositories
@@ -269,10 +289,10 @@ test rep-add $rep/common/bar/unstable
test rep-fetch
test rep-fetch
+
##
## pkg-fetch
##
-
test rep-create repository/1/fetch/t1
test cfg-create --wipe
@@ -317,20 +337,33 @@ test cfg-create --wipe
test rep-add $rep/common/hello
test rep-fetch
test pkg-fetch libhello/1.0.0
-test pkg-unpack libhello
test pkg-purge libhello
+
##
## pkg-unpack
##
-
-# @@ TODO
-
-# replace
-#
test cfg-create --wipe
+fail pkg-unpack -r # replace only with existing
+fail pkg-unpack -e # package directory expected
+fail pkg-unpack # package name expected
+
test rep-add $rep/fetch/t1
test rep-fetch
+
+# existing
+#
+fail pkg-unpack -e ./no-such-dir # package directory does not exist
+fail pkg-unpack -e ./repository # not a package directory
+test pkg-fetch libfoo/1.0.0
+fail pkg-unpack -e repository/1/fetch/libfoo-1.1.0 # already exists
+test pkg-purge libfoo
+test pkg-unpack -e repository/1/fetch/libfoo-1.1.0
+stat libfoo/1.1.0 unpacked
+test pkg-purge libfoo
+
+# existing & replace
+#
test pkg-fetch libfoo/1.0.0
fail pkg-unpack -e repository/1/fetch/libfoo-1.1.0
test pkg-unpack -r -e repository/1/fetch/libfoo-1.1.0
@@ -343,10 +376,31 @@ test pkg-unpack -r -e repository/1/fetch/libfoo-1.1.0
stat libfoo/1.1.0 unpacked
test pkg-purge libfoo
+# package name
+#
+fail pkg-unpack libfoo # no such package in configuration
+test pkg-unpack -e repository/1/fetch/libfoo-1.1.0
+fail pkg-unpack libfoo # wrong package state
+test pkg-purge libfoo
+test pkg-fetch libfoo/1.0.0
+stat libfoo/1.0.0 fetched
+test pkg-unpack libfoo
+stat libfoo/1.0.0 unpacked
+test pkg-purge libfoo
+
+# hello
+#
+test cfg-create --wipe
+test rep-add $rep/common/hello
+test rep-fetch
+test pkg-fetch libhello/1.0.0
+test pkg-unpack libhello
+test pkg-purge libhello
+
+
##
## pkg-purge
##
-
test cfg-create --wipe
fail pkg-purge # missing package name
@@ -440,10 +494,10 @@ rm $cfg/libfoo-1.0.0.tar.gz
test pkg-purge -f libfoo
stat libfoo unknown
+
##
## pkg-configure/pkg-disfigure
##
-
test cfg-create --wipe
test rep-add $rep/common/hello
test rep-fetch
@@ -598,10 +652,10 @@ test pkg-disfigure libfoo
test pkg-purge libfoo
test pkg-purge libbar
+
##
-## pkg-status (also tested in pkg-{fetch,unpack,configure,disfigure,purge}
+## pkg-status (also tested in pkg-{fetch,unpack,configure,disfigure,purge})
##
-
test rep-create repository/1/status/stable
test rep-create repository/1/status/extra
test rep-create repository/1/status/testing
@@ -645,10 +699,10 @@ test pkg-purge libbar
test pkg-fetch libbar/2.0.0
stat libbar "fetched 2.0.0"
+
##
## pkg-update
##
-
test cfg-create --wipe
test rep-add $rep/common/hello
test rep-fetch
@@ -679,10 +733,10 @@ test pkg-update libhello
test pkg-disfigure libhello
test pkg-purge libhello
+
##
## pkg-clean
##
-
test cfg-create --wipe
test rep-add $rep/common/hello
test rep-fetch
@@ -715,10 +769,12 @@ test pkg-clean libhello
test pkg-disfigure libhello
test pkg-purge libhello
+
##
## Low-level command scenarios.
##
+
# build and clean package
#
test cfg-create --wipe cxx
@@ -732,15 +788,17 @@ test pkg-clean libhello
test pkg-disfigure libhello
test pkg-purge libhello
+
##
## High-level commands.
##
+
##
## build
##
-# 1
+# 1 (libfoo)
#
test rep-create repository/1/satisfy/t1
test cfg-create --wipe
@@ -1083,6 +1141,16 @@ build libfoo 1.0.0
build libbaz 1.1.0
EOF
+# actually build
+#
+test cfg-create --wipe
+test rep-add $rep/satisfy/t4c
+test rep-fetch
+test build -y libbaz
+stat libfoo/1.1.0 "configured"
+stat libbar/1.1.0 "configured"
+stat libbaz/1.1.0 "configured hold_package"
+
# hold
#
test cfg-create --wipe
@@ -1288,6 +1356,8 @@ drop libbar
drop libfox
EOF
+# actually drop
+#
test drop -y --drop-dependent libbar
stat libfox/1.0.0 "available"
stat libfoo/1.1.0 "unknown"