145 lines
3.5 KiB
Bash
145 lines
3.5 KiB
Bash
#!/bin/bash
|
|
|
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
|
|
BU_TMPDIR_PARENT="${BU_TMPDIR_PARENT:-/tmp}"
|
|
BU_TEST_USER="${BU_TEST_USER:-buUser}"
|
|
|
|
BU_SOURCE_DIR="${BU_SOURCE_DIR:-$(pwd)}"
|
|
|
|
|
|
function buEnterTestUser () {
|
|
username="${1:-$BU_TEST_USER}"
|
|
|
|
rlRun "userdel -r $username" 0,6
|
|
rlRun "useradd -m -d /home/$username $username"
|
|
}
|
|
|
|
|
|
function buExitTestUser () {
|
|
username="${1:-$BU_TEST_USER}"
|
|
|
|
rlRun "userdel -r $username"
|
|
}
|
|
|
|
|
|
function buTestHeader () {
|
|
_LD="$(which ld)"
|
|
_GCC="$(which gcc)"
|
|
_LD_PACKAGE="$(rpm --qf '%{name}\n' -qf "$_LD" | head -1)"
|
|
_GCC_PACKAGE="$(rpm --qf '%{name}\n' -qf "$_GCC" | head -1)"
|
|
|
|
export REQUIRES="${REQUIRES} ${_REQUIRES:-}"
|
|
|
|
rlLogInfo "PACKAGES=$PACKAGES"
|
|
rlLogInfo "REQUIRES=$REQUIRES"
|
|
rlLogInfo "COLLECTIONS=$COLLECTIONS"
|
|
rlLogInfo "TOOLSET=$TOOLSET"
|
|
rlLogInfo "COLLECTION_PACKAGES=$COLLECTION_PACKAGES"
|
|
rlLogInfo "LD=$_LD"
|
|
rlLogInfo "GCC=$_GCC"
|
|
rlLogInfo "ARCH=$(arch)"
|
|
rlLogInfo "BU_TMPDIR_PARENT=$BU_TMPDIR_PARENT"
|
|
rlLogInfo "BU_AS_TEST_USER=$BU_AS_TEST_USER"
|
|
|
|
rlShowRunningKernel
|
|
|
|
rlAssertRpm --all
|
|
|
|
if [ "$1" = "--system-is-active" ]; then
|
|
|
|
rlAssertEquals "active ld $_LD is owned by the given package" \
|
|
"$_LD_PACKAGE" \
|
|
"binutils"
|
|
|
|
rlAssertEquals "active gcc $_GCC is owned by the given package" \
|
|
"$_GCC_PACKAGE" \
|
|
"gcc"
|
|
|
|
else
|
|
|
|
rlAssertEquals "active ld $_LD is owned by the given package" \
|
|
"$_LD_PACKAGE" \
|
|
"$BINUTILS_PACKAGE"
|
|
|
|
rlAssertEquals "active gcc $_GCC is owned by the given package" \
|
|
"$_GCC_PACKAGE" \
|
|
"$GCC_PACKAGE"
|
|
|
|
fi
|
|
}
|
|
|
|
|
|
function buEnterTmpDir () {
|
|
rlRun "export TmpDir=$(mktemp -d -p "$BU_TMPDIR_PARENT")" 0 "Creating tmp directory"
|
|
|
|
if [ -n "$BU_AS_TEST_USER" ]; then
|
|
username="${1:-$BU_TEST_USER}"
|
|
|
|
buEnterTestUser "$username"
|
|
|
|
rlRun "chown -R $username $TmpDir"
|
|
fi
|
|
|
|
rlRun "pushd $TmpDir"
|
|
}
|
|
|
|
|
|
function buExitTmpDir () {
|
|
rlRun "popd"
|
|
|
|
if [ -z "$PRESERVE_TMPDIR" ]; then
|
|
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
fi
|
|
|
|
if [ -n "$BU_AS_TEST_USER" ]; then
|
|
username="${1:-$BU_TEST_USER}"
|
|
|
|
buExitTestUser "$username"
|
|
fi
|
|
}
|
|
|
|
|
|
function buPrepareSRPM () {
|
|
local installed_rpm="$1"
|
|
local builddep_options="${2:-}"
|
|
|
|
rlFetchSrcForInstalled "$installed_rpm"
|
|
|
|
rlRun "export SRPM=$(find . -name '*.src.rpm')"
|
|
rlRun "rpm -ivh --define=\"_topdir $TmpDir\" $SRPM"
|
|
|
|
rlRun "export SPECDIR=$(rpm --define="_topdir $TmpDir" --eval=%_specdir)"
|
|
rlRun "export SPECFILE=$(find "$SPECDIR/" -name '*.spec')"
|
|
|
|
rlRun "yum-builddep -y --define=\"_topdir $TmpDir\" $builddep_options $SPECFILE"
|
|
}
|
|
|
|
|
|
function buConfigureSRPM () {
|
|
if [ -n "$BU_AS_TEST_USER" ]; then
|
|
username="${1:-$BU_TEST_USER}"
|
|
|
|
rlRun "su - $username -c 'rpmbuild -bp --define=\"_topdir $TmpDir\" $SPECFILE'"
|
|
else
|
|
rlRun " rpmbuild -bp --define=\"_topdir $TmpDir\" $SPECFILE"
|
|
fi
|
|
}
|
|
|
|
|
|
function buBuildSRPM () {
|
|
if [ -n "$BU_AS_TEST_USER" ]; then
|
|
username="${1:-$BU_TEST_USER}"
|
|
|
|
rlRun "su - $username -c 'rpmbuild -bc --define=\"_topdir $TmpDir\" $SPECFILE'"
|
|
else
|
|
rlRun " rpmbuild -bc --define=\"_topdir $TmpDir\" $SPECFILE"
|
|
fi
|
|
}
|
|
|
|
|
|
function buCopyReproducers () {
|
|
for filename in $1; do
|
|
rlRun "cp $BU_SOURCE_DIR/$filename $TmpDir/"
|
|
done
|
|
}
|