failing-tests 3.07 KB
Newer Older
Matthias Klose's avatar
Matthias Klose committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
#!/bin/sh

set -e

if [ "$(whoami)" = root ]; then
  if [ -n "$SUDO_USER" ] && getent passwd "$SUDO_USER" > /dev/null; then
    su_user="$SUDO_USER"
  else
    su_user=nobody
  fi

  if [ -e /etc/default/apport ]; then
    # stop apport
    service apport stop 2>/dev/null || true
    sed -i '/^enabled=/s/=.*/=0/' /etc/default/apport 2>/dev/null
  fi
fi

tmphome=$ADTTMP/home
mkdir -p $tmphome
if [ -n "$su_user" ]; then
  chmod go+rx $ADTTMP
  chown $su_user:nogroup $tmphome
fi
ls -la $ADTTMP

# no root access needed after this point

debian_dir=$(dirname $(dirname $0))

export LOCPATH=$(pwd)/locales
sh $debian_dir/locale-gen

export LANG=C

arch=$(dpkg --print-architecture)
vendor=$(dpkg-vendor --query Vendor)

TESTPYTHON="python2.7 -E -Wd -3 -tt /usr/lib/python2.7/test/regrtest.py"
TESTOPTS="-w -uall,-network,-urlfetch,-gui,-xpickle"
TESTEXCLUSIONS=

# test_cpickle: starts to fail with 2.7.11, see http://bugs.python.org/issue25698
TESTEXCLUSIONS="$TESTEXCLUSIONS test_cpickle"

# test_curses: error: copywin() returned ERR
TESTEXCLUSIONS="$TESTEXCLUSIONS test_curses"

# test_distutils: failing tests test_parse_makefile_base, test_parse_makefile_literal_dollar
TESTEXCLUSIONS="$TESTEXCLUSIONS test_distutils"

# test_gdb: not run for the optimized build
TESTEXCLUSIONS="$TESTEXCLUSIONS test_gdb"

# test_threading_local: fails in the Debian CI environment, but even
# succeeds there when re-run. See
# http://ci.debian.net/data/packages/unstable/amd64/p/python2.7/20141121_061940.autopkgtest.log.gz
case "$vendor" in Debian)
  TESTEXCLUSIONS="$TESTEXCLUSIONS test_threading_local"
esac

# test_zipfile: Issue 17753, requires write access to test and email.test
TESTEXCLUSIONS="$TESTEXCLUSIONS test_zipfile"

# for some reason, this fails on s390x only, starting in 2.7.14rc1 ...
case "$(uname -m)" in s390*)
  TESTEXCLUSIONS="$TESTEXCLUSIONS test_regrtest"
esac

# testsuite not ready for OpenSSL 1.2 ...
case "$vendor" in Debian)
  TESTEXCLUSIONS="$TESTEXCLUSIONS test_ftplib test_ssl"
esac

75 76 77
# test_site: site-/dist-packages mismatches
TESTEXCLUSIONS="$TESTEXCLUSIONS test_site"

Matthias Klose's avatar
Matthias Klose committed
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
if [ "$su_user" = nobody ]; then
  log=/dev/null
else
  log=testsuite.log
fi

# run some tests separately in it's own run. These succeed locally,
# but fail on the test setup.
SEPARATE_TESTS=
case "$arch" in
    amd64)
	;;
    i386)
	SEPARATE_TESTS="$SEPARATE_TESTS test_io"
	;;
esac

script=$debian_dir/script.py

echo "Running the failing tests with the standard interpreter:"
progressions=
for tst in $TESTEXCLUSIONS; do
  if [ -f "$script" ]; then
    cmd="HOME=$tmphome python2.7 $script \"$log\" \"$TESTPYTHON $TESTOPTS $tst\""
  else
    cmd="HOME=$tmphome $TESTPYTHON $TESTOPTS $tst"
  fi

  echo "Running $tst ..."
  if [ "$(whoami)" = root ]; then
    echo "su -s /bin/sh -c $cmd $su_user"
    if su -s /bin/sh -c "$cmd" $su_user; then
      progressions="$progressions $tst"
    else
      :
    fi
  else
    echo "$cmd"
    if eval $cmd; then
      progressions="$progressions $tst"
    else
      :
    fi
  fi
done

if [ -n "$progressions" ]; then
  echo "Tests run: $TESTEXCLUSIONS"
  echo "Progressions:$progressions"
fi

exit 0