xbps/tests/xbps/xbps-checkvers/checkvers_test.sh

483 lines
12 KiB
Bash
Executable File

#! /usr/bin/env atf-sh
atf_test_case srcpkg_older
srcpkg_older_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg contains an older version"
}
srcpkg_older_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
touch pkg_A/file00
cat > void-packages/srcpkgs/A/template <<EOF
pkgname=A
version=1.0
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.1_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" ""
}
atf_test_case srcpkg_older_with_refs
srcpkg_older_with_refs_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg contains an older version with refs"
}
srcpkg_older_with_refs_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
touch pkg_A/file00
cat > void-packages/srcpkgs/A/template <<EOF
_mypkgname=A
_myversion=1
pkgname=\${_mypkgname}
version=\${_myversion}.0
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.1_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" ""
}
atf_test_case srcpkg_newer
srcpkg_newer_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg contains a newer version"
}
srcpkg_newer_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
touch pkg_A/file00
cat > void-packages/srcpkgs/A/template <<EOF
pkgname=A
version=1.1
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" "A 1.0_1 1.1_1 A $PWD/some_repo"
}
atf_test_case srcpkg_newer_with_refs
srcpkg_newer_with_refs_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg contains a newer version with refs"
}
srcpkg_newer_with_refs_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
touch pkg_A/file00
cat > void-packages/srcpkgs/A/template <<EOF
_mypkgname="A"
_myversion="1"
pkgname=\${_mypkgname}
version=\${_myversion}.1
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" "A 1.0_1 1.1_1 A $PWD/some_repo"
}
atf_test_case srcpkg_newer_with_refs_and_source
srcpkg_newer_with_refs_and_source_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg contains a newer version with refs and file sourcing"
}
srcpkg_newer_with_refs_and_source_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
touch pkg_A/file00
cat > void-packages/srcpkgs/A/template <<EOF
. ./source/a/file
_mypkgname="A"
_myversion="1"
pkgname=\${_mypkgname}
version=\${_myversion}.1
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" "A 1.0_1 1.1_1 A $PWD/some_repo"
}
atf_test_case srcpkg_missing_pkgname
srcpkg_missing_pkgname_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg does not set pkgname"
}
srcpkg_missing_pkgname_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
cat > void-packages/srcpkgs/A/template <<EOF
#pkgname=A
version=1.1
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages 2>out
atf_check_equal $? 1
atf_check_equal "$(cat out)" "ERROR: 'A/template': missing required variable (pkgname, version or revision)!"
}
atf_test_case srcpkg_missing_version
srcpkg_missing_version_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg does not set version"
}
srcpkg_missing_version_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
cat > void-packages/srcpkgs/A/template <<EOF
pkgname=A
#version=1.1
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages 2>out
atf_check_equal $? 1
atf_check_equal "$(cat out)" "ERROR: 'A/template': missing required variable (pkgname, version or revision)!"
}
atf_test_case srcpkg_missing_revision
srcpkg_missing_revision_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg does not set revision"
}
srcpkg_missing_revision_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
cat > void-packages/srcpkgs/A/template <<EOF
pkgname=A
version=1.1
#revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages 2>out
atf_check_equal $? 1
atf_check_equal "$(cat out)" "ERROR: 'A/template': missing required variable (pkgname, version or revision)!"
}
atf_test_case srcpkg_missing_pkgver
srcpkg_missing_pkgver_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg does not set pkgname/version"
}
srcpkg_missing_pkgver_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
cat > void-packages/srcpkgs/A/template <<EOF
#pkgname=A
#version=1.1
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages 2>out
atf_check_equal $? 1
atf_check_equal "$(cat out)" "ERROR: 'A/template': missing required variable (pkgname, version or revision)!"
}
atf_test_case srcpkg_missing_pkgverrev
srcpkg_missing_pkgverrev_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg does not set pkgname/version/revision"
}
srcpkg_missing_pkgverrev_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
cat > void-packages/srcpkgs/A/template <<EOF
#pkgname=A
#version=1.1
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages 2>out
atf_check_equal $? 1
atf_check_equal "$(cat out)" "ERROR: 'A/template': missing required variable (pkgname, version or revision)!"
}
atf_test_case srcpkg_with_a_ref
srcpkg_with_a_ref_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg does set a ref in pkgname/version/revision"
}
srcpkg_with_a_ref_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/foo
cat > void-packages/srcpkgs/foo/template <<EOF
_var=foo
pkgname=\${_var}
version=1.1
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n foo-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages >out
atf_check_equal $? 0
atf_check_equal "$(cat out)" "foo 1.0_1 1.1_1 foo $PWD/some_repo"
}
atf_test_case srcpkg_with_a_ref_and_comment
srcpkg_with_a_ref_and_comment_head() {
atf_set "descr" "xbps-checkvers(1): test when srcpkg does set a ref in pkgname/version/revision with a comment"
}
srcpkg_with_a_ref_and_comment_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/foo
cat > void-packages/srcpkgs/foo/template <<EOF
pkgname=foo #kajskajskajskajskajskjaksjaksjaks
version=1.1
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n foo-1.0_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages >out
atf_check_equal $? 0
atf_check_equal "$(cat out)" "foo 1.0_1 1.1_1 foo $PWD/some_repo"
}
atf_test_case reverts
reverts_head() {
atf_set "descr" "xbps-checkvers(1): test with reverts"
}
reverts_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
touch pkg_A/file00
cat > void-packages/srcpkgs/A/template <<EOF
pkgname=A
reverts="1.1_1"
version=1.0
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.1_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" "A 1.1_1 1.0_1 A $PWD/some_repo"
}
atf_test_case reverts_alpha
reverts_alpha_head() {
atf_set "descr" "xbps-checkvers(1): test with reverts containing an alphanumeric character"
}
reverts_alpha_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/fs-utils
touch pkg_A/file00
cat > void-packages/srcpkgs/fs-utils/template <<EOF
pkgname=fs-utils
reverts=v1.10_1
version=1.10
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n fs-utils-1.10_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" ""
}
atf_test_case reverts_many
reverts_many_head() {
atf_set "descr" "xbps-checkvers(1): test with multiple reverts"
}
reverts_many_body() {
mkdir -p some_repo pkg_A void-packages/srcpkgs/A
touch pkg_A/file00
cat > void-packages/srcpkgs/A/template <<EOF
pkgname=A
reverts="1.1_1 1.2_1 1.3_1 1.3_2 1.3_3 1.3_4"
version=1.0
revision=1
do_install() {
:
}
EOF
cd some_repo
xbps-create -A noarch -n A-1.2_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" "A 1.2_1 1.0_1 A $PWD/some_repo"
cd some_repo
rm *.xbps
xbps-rindex -c .
atf_check_equal $? 0
xbps-create -A noarch -n A-1.1_1 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" "A 1.1_1 1.0_1 A $PWD/some_repo"
cd some_repo
rm *.xbps
xbps-rindex -c .
atf_check_equal $? 0
xbps-create -A noarch -n A-1.3_4 -s "A pkg" ../pkg_A
atf_check_equal $? 0
xbps-rindex -d -a $PWD/*.xbps
atf_check_equal $? 0
cd ..
out=$(xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages)
atf_check_equal $? 0
atf_check_equal "$out" "A 1.3_4 1.0_1 A $PWD/some_repo"
}
atf_test_case manual_mode
manual_mode_head() {
atf_set "descr" "xbps-checkvers(1): test manual mode"
}
manual_mode_body() {
mkdir -p void-packages/srcpkgs/do-not-process void-packages/srcpkgs/process
cat > void-packages/srcpkgs/do-not-process/template <<EOF
pkgname=do-not-process
#version=1
revision=1
EOF
cat > void-packages/srcpkgs/process/template <<EOF
pkgname=process
version=1
revision=1
EOF
out=$(xbps-checkvers -D $PWD/void-packages -ms srcpkgs/process/template)
atf_check_equal $? 0
atf_check_equal "$out" "process ? 1_1 process ?"
}
atf_init_test_cases() {
atf_add_test_case srcpkg_newer
atf_add_test_case srcpkg_newer_with_refs
atf_add_test_case srcpkg_newer_with_refs_and_source
atf_add_test_case srcpkg_older
atf_add_test_case srcpkg_older_with_refs
atf_add_test_case srcpkg_missing_pkgname
atf_add_test_case srcpkg_missing_version
atf_add_test_case srcpkg_missing_revision
atf_add_test_case srcpkg_missing_pkgver
atf_add_test_case srcpkg_missing_pkgverrev
atf_add_test_case srcpkg_with_a_ref
atf_add_test_case srcpkg_with_a_ref_and_comment
atf_add_test_case reverts
atf_add_test_case reverts_alpha
atf_add_test_case reverts_many
atf_add_test_case manual_mode
}