]> git.saurik.com Git - apt.git/blobdiff - test/integration/framework
allow ratelimiting progress reporting for testcases
[apt.git] / test / integration / framework
index 7b03c09eff90fabef231cd7905e565436f0c2131..5d949009fc61e0f117459526e10e4ec8765ef986 100644 (file)
@@ -245,7 +245,7 @@ setupenvironment() {
        echo "Dir \"${TMPWORKINGDIRECTORY}/rootdir\";" > aptconfig.conf
        echo "Dir::state::status \"${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status\";" >> aptconfig.conf
        echo "APT::Get::Show-User-Simulation-Note \"false\";" >> aptconfig.conf
-       echo "Dir::Bin::Methods \"${METHODSDIR}\";" >> aptconfig.conf
+       echo "Dir::Bin::Methods \"${TMPWORKINGDIRECTORY}/rootdir/usr/lib/apt/methods\";" >> aptconfig.conf
        # store apt-key were we can access it, even if we run it as a different user
        # destroys coverage reporting though, so just do it for root for now
        if [ "$(id -u)" = '0' ]; then
@@ -273,16 +273,19 @@ EOF
        chmod +x "${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg"
        echo "Dir::Bin::dpkg \"${TMPWORKINGDIRECTORY}/rootdir/usr/bin/dpkg\";" > rootdir/etc/apt/apt.conf.d/99dpkg
 
-       if ! command dpkg --assert-multi-arch >/dev/null 2>&1; then
-               echo "DPKG::options:: \"--force-architecture\";" >> aptconfig.conf # Added to test multiarch before dpkg is ready for it…
-       fi
-       echo 'quiet::NoUpdate "true";' >> aptconfig.conf
-       echo 'quiet::NoStatistic "true";' >> aptconfig.conf
-       # too distracting for users, but helpful to detect changes
-       echo 'Acquire::Progress::Ignore::ShowErrorText "true";' >> aptconfig.conf
-       # in testcases, it can appear as if localhost has a rotation setup,
-       # hide this as we can't really deal with it properly
-       echo 'Acquire::Failure::ShowIP "false";' >> aptconfig.conf
+       {
+               if ! command dpkg --assert-multi-arch >/dev/null 2>&1; then
+                       echo "DPKG::options:: \"--force-architecture\";" # Added to test multiarch before dpkg is ready for it…
+               fi
+               echo 'quiet::NoUpdate "true";'
+               echo 'quiet::NoStatistic "true";'
+               # too distracting for users, but helpful to detect changes
+               echo 'Acquire::Progress::Ignore::ShowErrorText "true";'
+               echo 'Acquire::Progress::Diffpercent "true";'
+               # in testcases, it can appear as if localhost has a rotation setup,
+               # hide this as we can't really deal with it properly
+               echo 'Acquire::Failure::ShowIP "false";'
+       } >> aptconfig.conf
 
        cp "${TESTDIRECTORY}/apt.pem" "${TMPWORKINGDIRECTORY}/rootdir/etc/webserver.pem"
        if [ "$(id -u)" = '0' ]; then
@@ -520,6 +523,12 @@ Package: $NAME" > debian/control
 
 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}"
@@ -600,15 +609,15 @@ Package: $NAME" >> ${BUILDDIR}/debian/control
                (cd ${BUILDDIR}; dpkg-gencontrol -DArchitecture=$arch)
                (cd ${BUILDDIR}/debian/tmp; md5sum $(find usr/ -type f) > DEBIAN/md5sums)
                local LOG="${BUILDDIR}/../${NAME}_${VERSION}_${arch}.dpkg-deb.log"
-               # ensure the right permissions as dpkg-deb ensists
+               # ensure the right permissions as dpkg-deb insists
                chmod 755 ${BUILDDIR}/debian/tmp/DEBIAN
                testsuccess --nomsg dpkg-deb -Z${COMPRESS_TYPE} --build ${BUILDDIR}/debian/tmp ${BUILDDIR}/..
                echo "pool/${NAME}_${VERSION}_${arch}.deb" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.pkglist
        done
 
-       mkdir -p ${BUILDDIR}/../${NAME}_${VERSION}
-       cp ${BUILDDIR}/debian/changelog ${BUILDDIR}/../${NAME}_${VERSION}/
-       cp ${BUILDDIR}/debian/changelog ${BUILDDIR}/../${NAME}_${VERSION}.changelog
+       local CHANGEPATH="${BUILDDIR}/../${DISTSECTION}/${NM}/${NAME}/${NAME}_${VERSION}"
+       mkdir -p $CHANGEPATH
+       cp ${BUILDDIR}/debian/changelog $CHANGEPATH
        rm -rf "${BUILDDIR}"
        msgdone "info"
 }
@@ -780,6 +789,8 @@ insertsource() {
        local SPATH="aptarchive/dists/${RELEASE}/main/source"
        mkdir -p $SPATH
        local FILE="${SPATH}/Sources"
+       local DSCFILE="${NAME}_${VERSION}.dsc"
+       local TARFILE="${NAME}_${VERSION}.tar.gz"
        echo "Package: $NAME
 Binary: $NAME
 Version: $VERSION
@@ -787,8 +798,8 @@ Maintainer: Joe Sixpack <joe@example.org>
 Architecture: $ARCH" >> $FILE
        test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> $FILE
        echo "Files:
- d41d8cd98f00b204e9800998ecf8427e 0 ${NAME}_${VERSION}.dsc
- d41d8cd98f00b204e9800998ecf8427e 0 ${NAME}_${VERSION}.tar.gz
+ $(echo -n "$DSCFILE" | md5sum | cut -d' ' -f 1) $(echo -n "$DSCFILE" | wc -c) $DSCFILE
+ $(echo -n "$TARFILE" | md5sum | cut -d' ' -f 1) $(echo -n "$TARFILE" | wc -c) $TARFILE
 " >> $FILE
 }
 
@@ -876,6 +887,7 @@ getcodenamefromsuite() {
 }
 getreleaseversionfromsuite() { true; }
 getlabelfromsuite() { true; }
+getoriginfromsuite() { true; }
 
 generatereleasefiles() {
        # $1 is the Date header and $2 is the ValidUntil header to be set
@@ -887,16 +899,21 @@ generatereleasefiles() {
                        local CODENAME="$(getcodenamefromsuite $SUITE)"
                        local VERSION="$(getreleaseversionfromsuite $SUITE)"
                        local LABEL="$(getlabelfromsuite $SUITE)"
+                       local ORIGIN="$(getoriginfromsuite $SUITE)"
                        if [ -n "$VERSION" ]; then
                                VERSION="-o APT::FTPArchive::Release::Version=${VERSION}"
                        fi
                        if [ -n "$LABEL" ]; then
                                LABEL="-o APT::FTPArchive::Release::Label=${LABEL}"
                        fi
+                       if [ -n "$ORIGIN" ]; then
+                               ORIGIN="-o APT::FTPArchive::Release::Origin=${ORIGIN}"
+                       fi
                        aptftparchive -qq release $dir \
                                -o APT::FTPArchive::Release::Suite="${SUITE}" \
                                -o APT::FTPArchive::Release::Codename="${CODENAME}" \
                                ${LABEL} \
+                               ${ORIGIN} \
                                ${VERSION} \
                                        | sed -e '/0 Release$/ d' > $dir/Release # remove the self reference
                        if [ "$SUITE" = "experimental" -o "$SUITE" = "experimental2" ]; then
@@ -1450,9 +1467,9 @@ testfilestats() {
                msgpass
        else
                echo >&2
-               ls -ld >&2 "$1"
+               ls -ld >&2 "$1" || true
                echo -n >&2 "stat(1) reports for $2: "
-               stat --format "$2" "$1"
+               stat --format "$2" "$1" || true
                msgfail
        fi
 }