X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/eab57e0807c08fe8d3a5dcf02809c830f99fd972..d27daedb6a0bf672508072100f20233d08ccf0e0:/test/integration/framework?ds=inline diff --git a/test/integration/framework b/test/integration/framework index 292a7b958..8ea1e1c0d 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -370,6 +370,8 @@ EOF # 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";' + # fakeroot can't fake everything, so disabled in production but good for tests + echo 'APT::Sandbox::Verify "true";' } >> aptconfig.conf cp "${TESTDIRECTORY}/apt.pem" "${TMPWORKINGDIRECTORY}/rootdir/etc/webserver.pem" @@ -475,6 +477,7 @@ configdpkgnoopchroot() { #include #include #include +#include static char * chrootdir = NULL; @@ -491,13 +494,11 @@ int execvp(const char *file, char *const argv[]) { if (chrootdir == NULL || strncmp(file, "/var/lib/dpkg/", strlen("/var/lib/dpkg/")) != 0) return func_execvp(file, argv); printf("REWRITE execvp call %s into %s\n", file, chrootdir); - char newfile[strlen(chrootdir) + strlen(file)]; - strcpy(newfile, chrootdir); - strcat(newfile, file); + char newfile[PATH_MAX]; + snprintf(newfile, sizeof(newfile), "%s/%s", chrootdir, file); char const * const baseadmindir = "/var/lib/dpkg"; - char admindir[strlen(chrootdir) + strlen(baseadmindir)]; - strcpy(admindir, chrootdir); - strcat(admindir, baseadmindir); + char admindir[PATH_MAX]; + snprintf(admindir, sizeof(admindir), "%s/%s", chrootdir, baseadmindir); setenv("DPKG_ADMINDIR", admindir, 1); return func_execvp(newfile, argv); } @@ -572,7 +573,7 @@ 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 surf no other propose…"}" + und used only by testcases and serve no other purpose…"}" local SECTION="${7:-others}" local DISTSECTION @@ -628,7 +629,7 @@ buildsimplenativepackage() { 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 surf no other propose…"}" + und used only by testcases and serve no other purpose…"}" local SECTION="${7:-others}" local PRIORITY="${8:-optional}" @@ -810,7 +811,7 @@ insertpackage() { local DESCRIPTION="${7:-"an autogenerated dummy ${NAME}=${VERSION}/${RELEASES} If you find such a package installed on your system, something went horribly wrong! They are autogenerated - und used only by testcases and surf no other propose…"}" + und used only by testcases and serve no other purpose…"}" local ARCHS="" for RELEASE in $(printf '%s' "$RELEASES" | tr ',' '\n'); do if [ "$RELEASE" = 'installed' ]; then @@ -889,7 +890,7 @@ insertinstalledpackage() { local DESCRIPTION="${7:-"an autogenerated dummy ${NAME}=${VERSION}/installed If you find such a package installed on your system, something went horribly wrong! They are autogenerated - und used only by testcases and surf no other propose…"}" + und used only by testcases and serve no other purpose…"}" local FILE='rootdir/var/lib/dpkg/status' local INFO='rootdir/var/lib/dpkg/info' @@ -1195,7 +1196,7 @@ changetowebserver() { fi cd - > /dev/null else - msgdie 'You have to build aptwerbserver or install a webserver' + msgdie 'You have to build apt from source to have test/interactive-helper/aptwebserver available for tests requiring a webserver' fi if [ "$REWRTE" != 'yes' ]; then rewritesourceslist "http://localhost:${APTHTTPPORT}/" @@ -1203,7 +1204,7 @@ changetowebserver() { } changetohttpswebserver() { - if ! which stunnel4 >/dev/null; then + if ! command -v stunnel4 >/dev/null 2>&1; then msgdie 'You need to install stunnel4 for https testcases' fi if [ ! -e "${TMPWORKINGDIRECTORY}/aptarchive/aptwebserver.pid" ]; then @@ -1418,6 +1419,19 @@ testnopackage() { fi msggroup } +testnosrcpackage() { + msggroup 'testnosrcpackage' + msgtest "Test for non-existent source packages" "apt-cache showsrc $*" + local SHOWPKG="$(aptcache showsrc "$@" 2>&1 | grep '^Package: ')" + if [ -n "$SHOWPKG" ]; then + local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testnosrcpackage.output" + echo "$SHOWPKG" >"$OUTPUT" + msgfailoutput '' "$OUTPUT" + else + msgpass + fi + msggroup +} testdpkgstatus() { msggroup 'testdpkgstatus' @@ -1495,7 +1509,10 @@ msgfailoutput() { if expr match "$1" "$FILEFLAGS" >/dev/null; then echo "#### stat(2) of file: $2 ####" stat "$2" || true - if test -e "$2"; then + if test -d "$2"; then + echo "#### The directory contains: $2 ####" + ls >&2 "$2" || true + elif test -e "$2"; then echo "#### Complete file: $2 ####" cat >&2 "$2" || true fi