]> git.saurik.com Git - apt.git/blobdiff - test/integration/framework
tests: deduplicate package creation framework code
[apt.git] / test / integration / framework
index cd8597f80f2f6db7c0634537361f3e33cb75ba4a..bebcbf342f6c02d4ee489a20921c60dee3875230 100644 (file)
@@ -191,7 +191,7 @@ aptitude() { runapt aptitude "$@"; }
 aptextracttemplates() { runapt apt-extracttemplates "$@"; }
 aptinternalsolver() { runapt "${APTINTERNALSOLVER}" "$@"; }
 aptdumpsolver() { runapt "${APTDUMPSOLVER}" "$@"; }
-aptinternalplaner() { runapt "${APTINTERNALPLANER}" "$@"; }
+aptinternalplanner() { runapt "${APTINTERNALPLANNER}" "$@"; }
 
 dpkg() {
        "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg" "$@"
@@ -290,7 +290,7 @@ setupenvironment() {
         APTWEBSERVERBINDIR="${APT_INTEGRATION_TESTS_WEBSERVER_BIN_DIR:-"${BUILDDIRECTORY}"}"
         APTINTERNALSOLVER="${APT_INTEGRATION_TESTS_INTERNAL_SOLVER:-"${BUILDDIRECTORY}/apt-internal-solver"}"
        APTDUMPSOLVER="${APT_INTEGRATION_TESTS_DUMP_SOLVER:-"${BUILDDIRECTORY}/apt-dump-solver"}"
-       APTINTERNALPLANER="${APT_INTEGRATION_TESTS_INTERNAL_PLANER:-"${BUILDDIRECTORY}/apt-internal-planer"}"
+       APTINTERNALPLANNER="${APT_INTEGRATION_TESTS_INTERNAL_PLANNER:-"${BUILDDIRECTORY}/apt-internal-planner"}"
        test -x "${BUILDDIRECTORY}/apt-get" || msgdie "You need to build tree first"
         # -----
 
@@ -304,13 +304,13 @@ setupenvironment() {
        mkdir -p usr/lib/apt
        ln -s "${METHODSDIR}" usr/lib/apt/methods
        if [ "$BUILDDIRECTORY" = "$LIBRARYPATH" ]; then
-               mkdir -p usr/lib/apt/solvers usr/lib/apt/planers
+               mkdir -p usr/lib/apt/solvers usr/lib/apt/planners
                ln -s "${BUILDDIRECTORY}/apt-dump-solver" usr/lib/apt/solvers/dump
-               ln -s "${BUILDDIRECTORY}/apt-dump-solver" usr/lib/apt/planers/dump
+               ln -s "${BUILDDIRECTORY}/apt-dump-solver" usr/lib/apt/planners/dump
                ln -s "${BUILDDIRECTORY}/apt-internal-solver" usr/lib/apt/solvers/apt
-               ln -s "${BUILDDIRECTORY}/apt-internal-planer" usr/lib/apt/planers/apt
+               ln -s "${BUILDDIRECTORY}/apt-internal-planner" usr/lib/apt/planners/apt
                echo "Dir::Bin::Solvers \"${TMPWORKINGDIRECTORY}/rootdir/usr/lib/apt/solvers\";" >> ../aptconfig.conf
-               echo "Dir::Bin::Planers \"${TMPWORKINGDIRECTORY}/rootdir/usr/lib/apt/planers\";" >> ../aptconfig.conf
+               echo "Dir::Bin::Planners \"${TMPWORKINGDIRECTORY}/rootdir/usr/lib/apt/planners\";" >> ../aptconfig.conf
        fi
         # use the autoremove from the BUILDDIRECTORY if its there, otherwise
         # system
@@ -347,6 +347,7 @@ setupenvironment() {
                echo 'Binary::gpgv::APT::Sandbox::User "root";' >> aptconfig.conf
                # same for the solver executables
                echo 'APT::Solver::RunAsUser "root";' >> aptconfig.conf
+               echo 'APT::Planner::RunAsUser "root";' >> aptconfig.conf
        fi
 
        cat > "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg" <<EOF
@@ -593,7 +594,7 @@ Dir::Bin::uncompressed \"/does/not/exist\";" > "$CONFFILE"
        done
 }
 
-setupsimplenativepackage() {
+_setupsimplenativepackage() {
        local NAME="$1"
        local ARCH="$2"
        local VERSION="$3"
@@ -602,62 +603,6 @@ setupsimplenativepackage() {
        local DESCRIPTION="${6:-"an autogenerated dummy ${NAME}=${VERSION}/${RELEASE}
  If you find such a package installed on your system,
  something went horribly wrong! They are autogenerated
- und used only by testcases and serve no other purposeā€¦"}"
-
-       local SECTION="${7:-others}"
-       local DISTSECTION
-       if [ "$SECTION" = "${SECTION#*/}" ]; then
-               DISTSECTION="main"
-       else
-               DISTSECTION="${SECTION%/*}"
-       fi
-       local BUILDDIR=incoming/${NAME}-${VERSION}
-       mkdir -p ${BUILDDIR}/debian/source
-       cd ${BUILDDIR}
-       echo "* most suckless software product ever" > FEATURES
-       test -e debian/copyright || echo "Copyleft by Joe Sixpack $(date -u +%Y)" > debian/copyright
-       test -e debian/changelog || echo "$NAME ($VERSION) $RELEASE; urgency=low
-
-  * Initial release
-
- -- Joe Sixpack <joe@example.org>  $(date -u -R)" > debian/changelog
-       test -e debian/control || echo "Source: $NAME
-Section: $SECTION
-Priority: optional
-Maintainer: Joe Sixpack <joe@example.org>
-Build-Depends: debhelper (>= 7)
-Standards-Version: 3.9.1
-
-Package: $NAME" > debian/control
-       if [ "$ARCH" = 'all' ]; then
-               echo "Architecture: all" >> debian/control
-       else
-               echo "Architecture: any" >> debian/control
-       fi
-       test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> debian/control
-       echo "Description: $DESCRIPTION" >> debian/control
-
-       test -e debian/compat || echo "7" > debian/compat
-       test -e debian/source/format || echo "3.0 (native)" > debian/source/format
-       test -e debian/rules || cp /usr/share/doc/debhelper/examples/rules.tiny debian/rules
-       cd - > /dev/null
-}
-
-buildsimplenativepackage() {
-       local NAME="$1"
-       local NM
-       if [ "$(echo "$NAME" | cut -c 1-3)" = 'lib' ]; then
-               NM="$(echo "$NAME" | cut -c 1-4)"
-       else
-               NM="$(echo "$NAME" | cut -c 1)"
-       fi
-       local ARCH="$2"
-       local VERSION="$3"
-       local RELEASE="${4:-unstable}"
-       local DEPENDENCIES="$5"
-       local DESCRIPTION="${6:-"an autogenerated dummy ${NAME}=${VERSION}/${RELEASE}
- If you find such a package installed on your system,
- something went horribly wrong! They are autogenerated
  und used only by testcases and serve no other purposeā€¦"}"
 
        local SECTION="${7:-others}"
@@ -672,7 +617,6 @@ buildsimplenativepackage() {
        fi
        local BUILDDIR="${TMPWORKINGDIRECTORY}/incoming/${NAME}-${VERSION}"
 
-       msgtest "Build source package in version ${VERSION} for ${RELEASE} in ${DISTSECTION}" "$NAME"
        mkdir -p "$BUILDDIR/debian/source"
        echo "* most suckless software product ever" > "${BUILDDIR}/FEATURES"
        echo "#!/bin/sh
@@ -708,6 +652,37 @@ Package: $NAME"
        } > "${BUILDDIR}/debian/control"
 
        echo '3.0 (native)' > "${BUILDDIR}/debian/source/format"
+}
+
+setupsimplenativepackage() {
+       _setupsimplenativepackage "$@"
+       local NAME="$1"
+       local VERSION="$3"
+       local BUILDDIR="${TMPWORKINGDIRECTORY}/incoming/${NAME}-${VERSION}"
+       test -e "${BUILDDIR}/debian/compat" || echo '7' > "${BUILDDIR}/debian/compat"
+       test -e  "${BUILDDIR}/debian/rules" || cp /usr/share/doc/debhelper/examples/rules.tiny "${BUILDDIR}/debian/rules"
+}
+
+buildsimplenativepackage() {
+       local NAME="$1"
+       local ARCH="$2"
+       local VERSION="$3"
+       local RELEASE="${4:-unstable}"
+       local DEPENDENCIES="$5"
+       local DESCRIPTION="$6"
+       local SECTION="${7:-others}"
+       local PRIORITY="${8:-optional}"
+       local FILE_TREE="$9"
+       local COMPRESS_TYPE="${10:-gzip}"
+       local DISTSECTION
+       if [ "$SECTION" = "${SECTION#*/}" ]; then
+               DISTSECTION="main"
+       else
+               DISTSECTION="${SECTION%/*}"
+       fi
+       local BUILDDIR="${TMPWORKINGDIRECTORY}/incoming/${NAME}-${VERSION}"
+       msgtest "Build source package in version ${VERSION} for ${RELEASE} in ${DISTSECTION}" "$NAME"
+       _setupsimplenativepackage "$@"
        cd "${BUILDDIR}/.."
        testsuccess --nomsg dpkg-source -b ${NAME}-${VERSION}
        cd - >/dev/null
@@ -741,6 +716,12 @@ Package: $NAME"
                echo "pool/${NAME}_${VERSION}_${arch}.deb" >> "${BUILDDIR}/../${RELEASE}.${DISTSECTION}.pkglist"
        done
 
+       local NM
+       if [ "$(echo "$NAME" | cut -c 1-3)" = 'lib' ]; then
+               NM="$(echo "$NAME" | cut -c 1-4)"
+       else
+               NM="$(echo "$NAME" | cut -c 1)"
+       fi
        local CHANGEPATH="${BUILDDIR}/../${DISTSECTION}/${NM}/${NAME}/${NAME}_${VERSION}"
        mkdir -p "$CHANGEPATH"
        cp "${BUILDDIR}/debian/changelog" "$CHANGEPATH"