summaryrefslogtreecommitdiffstats
path: root/tests/basic/rpm.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basic/rpm.t')
-rwxr-xr-xtests/basic/rpm.t145
1 files changed, 0 insertions, 145 deletions
diff --git a/tests/basic/rpm.t b/tests/basic/rpm.t
deleted file mode 100755
index e5da49bb7e0..00000000000
--- a/tests/basic/rpm.t
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/bin/bash
-#
-# This test will run mock and rebuild the srpm for the latest two EPEL version.
-# By default, the results and the chroots are deleted.
-#
-# When debugging is needed, make sure to set DEBUG=1 in the environment or this
-# script. When debugging is enabled, the resulting log files and chroots are
-# kept. With debugging enabled, this test will fail the regression test, and
-# all output is saved to rpmbuild-mock.log. Tests are run in parallel, so the
-# logfile may be difficult to read.
-#
-# chroots are configured in /etc/mock/*.cfg, with site-defaults.cfg as main
-# configuration file. The default for chroots is /var/lib/mock, but this
-# depends on the 'basedir' configuration option set in the mentioned files.
-#
-
-. $(dirname $0)/../include.rc
-
-case $OSTYPE in
-Linux)
- ;;
-*)
- echo "Skip test using mock, which requires Linux" >&2
- SKIP_TESTS
- exit 0
- ;;
-esac
-
-# enable some extra debugging
-if [ -n "${DEBUG}" -a "${DEBUG}" != "0" ]
-then
- exec &> rpmbuild-mock.log
- set -x
- MOCK_CLEANUP='--no-cleanup-after'
-else
- MOCK_CLEANUP='--cleanup-after'
-fi
-
-# detect the branch we're based off
-if [ -n "${BRANCH}" ] ; then
- # $BRANCH is set in the environment (by Jenkins or other)
- GIT_PARENT="origin/${BRANCH}"
-else
- # get a reference to the latest clean tree
- GIT_PARENT=$(git describe --abbrev=0)
-fi
-
-# Filter out everything and what remains needs to be built
-BUILD_FILES=$(git diff --name-status ${GIT_PARENT} | grep -Ev '^M.*\.(c|h|py)' | awk {'print $2'})
-SELFTEST=$(grep -e 'tests/basic/rpm.t' <<< "${BUILD_FILES}")
-BUILD_FILES=$(grep -Ev '^tests/' <<< "${BUILD_FILES}")
-if [ -z "${BUILD_FILES}" -a -z "${SELFTEST}" ]
-then
- # nothing affecting packaging changed, no need to retest rpmbuild
- SKIP_TESTS
- cleanup
- exit 0
-fi
-
-# checkout the sources to a new directory to execute ./configure and all
-REPO=${PWD}
-COMMIT=$(git describe)
-
-# make sure to cleanup in case DEBUG was enabled in a previous run
-[ -d rpmbuild-mock.d ] && rm -rf rpmbuild-mock.d
-mkdir rpmbuild-mock.d
-pushd rpmbuild-mock.d 2>/dev/null
-
-function git_quiet() {
- git ${@} 2>&1 > /dev/null
-}
-
-TEST git_quiet clone -s file://${REPO} .
-TEST git_quiet checkout -b rpm-test ${COMMIT}
-
-# build the glusterfs-*.tar.gz
-function build_srpm_from_tgz() {
- rpmbuild -ts $1 \
- --define "_srcrpmdir ${PWD}" \
- --define '_source_payload w9.gzdio' \
- --define '_source_filedigest_algorithm 1'
-}
-
-TEST ./autogen.sh
-TEST ./configure
-TEST make dist
-
-# build the glusterfs src.rpm
-TEST build_srpm_from_tgz ${PWD}/*.tar.gz
-
-# even though the last two Fedora EPEL releases are x86_64 only, we allow other arches to build
-for MOCK_CONF in $(ls -x1 /etc/mock/*.cfg | egrep -e 'epel-[0-9]+-'`uname -i`'.cfg$' | tail -n2)
-do
- EPEL_RELEASE=$(basename ${MOCK_CONF} .cfg)
- mkdir -p "${PWD}/mock.d/${EPEL_RELEASE}"
- chgrp mock "${PWD}/mock.d/${EPEL_RELEASE}"
- chmod 0775 "${PWD}/mock.d/${EPEL_RELEASE}"
- MOCK_RESULTDIR="--resultdir ${PWD}/mock.d/${EPEL_RELEASE}"
- # expand the mock command line
- MOCK_CMD="/usr/bin/mock ${MOCK_CLEANUP} \
- ${MOCK_RESULTDIR} \
- -r ${EPEL_RELEASE} --rebuild ${PWD}/*.src.rpm"
-
- # write the mock command to a file, so that its easier to execute
- cat << EOF > mock-${EPEL_RELEASE}.sh
-#!/bin/sh
-${MOCK_CMD}
-EOF
- chmod +x mock-${EPEL_RELEASE}.sh
-
- # root can not run 'mock', it needs to drop privileges
- if (groups | grep -q mock)
- then
- # the current user is in group 'mock'
- ${PWD}/mock-${EPEL_RELEASE}.sh &
- else
- # "su" might not work, using sudo instead
- sudo -u mock -E ${PWD}/mock-${EPEL_RELEASE}.sh &
- fi
- sleep 5
-done
-
-# TAP and Prove aren't smart about loops
-TESTS_EXPECTED_IN_LOOP=2
-for mockjob in $(jobs -p)
-do
- TEST_IN_LOOP wait ${mockjob}
-done
-
-# we could build for the last two Fedora releases too, but that is not
-# possible on EPEL-5/6 installations, Fedora 17 and newer have unmet
-# dependencies on the build-server :-/
-
-# logs are archived by Jenkins
-if [ -d '/build/install/var' ]
-then
- LOGS=$(find mock.d -type f -name '*.log')
- [ -n "${LOGS}" ] && xargs cp --parents ${LOGS} /build/install/var/
-fi
-
-popd 2>/dev/null
-# only remove rpmbuild-mock.d if we're not debugging
-[ "${DEBUG}" = "0" ] && rm -rf rpmbuild-mock.d
-
-cleanup