aboutsummaryrefslogtreecommitdiff
path: root/spec/03_contrib_spec.sh
diff options
context:
space:
mode:
Diffstat (limited to 'spec/03_contrib_spec.sh')
-rw-r--r--spec/03_contrib_spec.sh122
1 files changed, 122 insertions, 0 deletions
diff --git a/spec/03_contrib_spec.sh b/spec/03_contrib_spec.sh
new file mode 100644
index 0000000..9c7589b
--- /dev/null
+++ b/spec/03_contrib_spec.sh
@@ -0,0 +1,122 @@
+Describe 'contrib scripts'
+ export PATH=$PWD/src:$PWD/contrib:$PATH
+ export CPT_ROOT=$PWD/tests/03
+ export CPT_PATH=$PWD/tests/repository
+ export CPT_COMPRESS=''
+ install_tmp() {
+ CPT_HOOK='' ./src/cpt b -y contrib-dummy-pkg >/dev/null 2>&1
+ CPT_HOOK='' ./src/cpt-install -y contrib-dummy-pkg >/dev/null 2>&1
+ mkdir -p "$CPT_ROOT/tmp"
+ }
+ remove_tmp() { rm -rf "${CPT_ROOT:?}/var" "$CPT_ROOT/tmp" ;}
+ BeforeAll install_tmp
+ AfterAll remove_tmp
+
+ Describe 'cpt-cat'
+ firstpkg=$(getfirstpkg)
+ It 'outputs the file contents in the given package directory'
+ When run script ./contrib/cpt-cat "$firstpkg"
+ The stdout should not eq ""
+ The line 1 of stderr should eq "$(printf '\033[1mbuild:\033[m\n')"
+ End
+ It "uses the current directory for the package name if none is supplied (contrib-dummy-pkg)"
+ cd "$CPT_PATH/contrib-dummy-pkg" || return 1
+ When run script "$(command -v cpt-cat)"
+ The stdout should not eq ""
+ The line 1 of stderr should eq "$(printf '\033[1mbuild:\033[m\n')"
+ End
+ It "exits with error if the package isn't installed"
+ When run script ./contrib/cpt-cat somerandompackage
+ The stderr should eq "-> somerandompackage not installed"
+ The status should be failure
+ End
+ It "prints usage information when called with --help"
+ When run script ./contrib/cpt-cat --help
+ The word 1 of stdout should eq "usage:"
+ The status should be success
+ End
+ Parameters
+ build
+ checksums
+ manifest
+ version
+ End
+ It "outputs the given file contents in the given package directory ($1)"
+ When run script ./contrib/cpt-cat "$firstpkg" "$1"
+ The stdout should eq "$(cat "$CPT_ROOT/var/db/cpt/installed/$firstpkg/$1")"
+ The stderr should eq "$(printf '\033[1m%s:\033[m\n' "$1")"
+ End
+ It "outputs the given file contents for the name of the current directory (contrib-dummy-pkg - $1)"
+ cd "$CPT_PATH/contrib-dummy-pkg" || return 1
+ When run script "$(command -v cpt-cat)" "" "$1"
+ The stdout should eq "$(cat "$CPT_ROOT/var/db/cpt/installed/${PWD##*/}/$1")"
+ The stderr should eq "$(printf '\033[1m%s:\033[m\n' "$1")"
+ End
+ End
+ Describe 'cpt-depends'
+ firstpkg=$(getfirstpkg)
+ It "outputs the dependencies of the given package"
+ When run script ./contrib/cpt-depends "$firstpkg"
+ The stdout should eq "$(cat "$CPT_ROOT/var/db/cpt/installed/$firstpkg/depends" 2>/dev/null ||:)"
+ The status should be success
+ End
+ It "uses the current directory for the package name if none is supplied (contrib-dummy-pkg)"
+ cd "$CPT_PATH/contrib-dummy-pkg" || return 1
+ When run script "$(command -v cpt-depends)"
+ The stdout should eq "$(cat "$CPT_ROOT/var/db/cpt/installed/contrib-dummy-pkg/depends" 2>/dev/null ||:)"
+ The status should be success
+ End
+ It "prints usage information when called with --help"
+ When run script ./contrib/cpt-depends --help
+ The word 1 of stdout should eq usage:
+ End
+ End
+ Describe 'cpt-export'
+ chtmp() { cd "$CPT_ROOT/tmp" || return 1 ;}
+ cleanpkg() { rm -f "$CPT_PATH/contrib-dummy-pkg/contrib-dummy-pkg#1-1.tar.gz" ;}
+ Before chtmp
+ AfterAll cleanpkg
+ firstpkg=$(getfirstpkg)
+ It "exports a tarball of the given package"
+ When run script "$(command -v cpt-export)" contrib-dummy-pkg
+ The stdout should eq "tarball created in $CPT_ROOT/tmp/contrib-dummy-pkg#1-1.tar.gz"
+ End
+ It "exports the package of the current directory when called without arguments"
+ cd "$CPT_PATH/contrib-dummy-pkg" || return 1
+ When run script "$(command -v cpt-export)"
+ The stdout should eq "tarball created in $CPT_PATH/contrib-dummy-pkg/contrib-dummy-pkg#1-1.tar.gz"
+ End
+ It "prints usage information when called with --help"
+ When run script "$(command -v cpt-export)" --help
+ The word 1 of stdout should eq usage:
+ End
+ It "fallbacks to gz when CPT_COMPRESS has a typo"
+ export CPT_COMPRESS=typo
+ When run script "$(command -v cpt-export)" contrib-dummy-pkg
+ The stdout should eq "tarball created in $CPT_ROOT/tmp/contrib-dummy-pkg#1-1.tar.gz"
+ End
+ Parameters
+ bz2 bzip2
+ gz gzip
+ xz xz
+ zst zstd
+ End
+ Mock bzip2
+ cat
+ End
+ Mock gzip
+ cat
+ End
+ Mock xz
+ cat
+ End
+ Mock zstd
+ cat
+ End
+ It "uses the given CPT_COMPRESS value ($1)"
+ export "CPT_COMPRESS=$1"
+ When run script "$(command -v cpt-export)" contrib-dummy-pkg
+ The stdout should eq "tarball created in $CPT_ROOT/tmp/contrib-dummy-pkg#1-1.tar.$1"
+ End
+ End
+End