Files
xbps/tests/xbps/libxbps/shell/scripts_test.sh
2014-11-06 11:21:32 +01:00

91 lines
1.8 KiB
Bash

#!/usr/bin/env atf-sh
#
# Tests to verify that INSTALL/REMOVE scripts in pkgs work as expected.
create_script() {
cat > "$1" <<_EOF
#!/bin/sh
ACTION="\$1"
PKGNAME="\$2"
VERSION="\$3"
UPDATE="\$4"
CONF_FILE="\$5"
ARCH="\$6"
echo "\$@" >&2
_EOF
chmod +x "$1"
}
atf_test_case script_nargs
script_nargs_head() {
atf_set "descr" "Tests for package scripts: number of arguments"
}
script_nargs_body() {
mkdir some_repo root
mkdir -p pkg_A/usr/bin
echo "A-1.0_1" > pkg_A/usr/bin/foo
create_script pkg_A/INSTALL
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-install -C empty.conf -r root --repository=$PWD/some_repo -y A
atf_check_equal $? 0
rval=0
xbps-reconfigure -C empty.conf -r root -f A 2>out
out="$(cat out)"
expected="post A 1.0_1 no no $(uname -m)"
if [ "$out" != "$expected" ]; then
echo "out: '$out'"
echo "expected: '$expected'"
rval=1
fi
atf_check_equal $rval 0
}
atf_test_case script_arch
script_arch_head() {
atf_set "descr" "Tests for package scripts: XBPS_ARCH overrides \$ARCH"
}
script_arch_body() {
mkdir some_repo root
mkdir -p pkg_A/usr/bin
echo "A-1.0_1" > pkg_A/usr/bin/foo
create_script pkg_A/INSTALL
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-install -C empty.conf -r root --repository=$PWD/some_repo -y A
atf_check_equal $? 0
# Check that XBPS_ARCH overrides $ARCH.
rval=0
XBPS_ARCH=foo xbps-reconfigure -C empty.conf -r root -f A 2>out
out="$(cat out)"
expected="post A 1.0_1 no no foo"
if [ "$out" != "$expected" ]; then
echo "out: '$out'"
echo "expected: '$expected'"
rval=1
fi
atf_check_equal $rval 0
}
atf_init_test_cases() {
atf_add_test_case script_nargs
atf_add_test_case script_arch
}