From 95676825adbb13ab2a0e24983780125218c17265 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 22 Nov 2022 10:41:39 +0100 Subject: [PATCH] gitlab-ci: do some basic testing on ubuntu1804-32bit For now we allow build warnings and only do some basic testing. We also ignore timestamp related problems, as well as some charset failures. Over time we should try to address the situation by not allowing warnings and verify if expected failures are harmless or not. But it's already much better then having no 32bit testing at all! Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Thu Nov 24 12:05:26 UTC 2022 on sn-devel-184 --- .gitlab-ci-main.yml | 9 +- bootstrap/.gitlab-ci.yml | 5 + bootstrap/config.py | 7 ++ bootstrap/generated-dists/Vagrantfile | 7 ++ .../ubuntu1804-32bit/Dockerfile | 29 +++++ .../ubuntu1804-32bit/bootstrap.sh | 114 +++++++++++++++++ .../ubuntu1804-32bit/locale.sh | 55 ++++++++ .../ubuntu1804-32bit/packages.yml | 99 +++++++++++++++ bootstrap/sha1sum.txt | 2 +- script/autobuild.py | 16 +++ selftest/knownfail-32bit | 117 ++++++++++++++++++ selftest/skip-32bit | 69 +++++++++++ selftest/wscript | 4 + 13 files changed, 531 insertions(+), 2 deletions(-) create mode 100644 bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile create mode 100755 bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh create mode 100755 bootstrap/generated-dists/ubuntu1804-32bit/locale.sh create mode 100644 bootstrap/generated-dists/ubuntu1804-32bit/packages.yml create mode 100644 selftest/knownfail-32bit create mode 100644 selftest/skip-32bit diff --git a/.gitlab-ci-main.yml b/.gitlab-ci-main.yml index 44ab4d1345d..8bc33ecfc4d 100644 --- a/.gitlab-ci-main.yml +++ b/.gitlab-ci-main.yml @@ -47,7 +47,7 @@ variables: # Set this to the contents of bootstrap/sha1sum.txt # which is generated by bootstrap/template.py --render # - SAMBA_CI_CONTAINER_TAG: a5335bb5004bdcba5ab7e064164d5e70b76bea0f + SAMBA_CI_CONTAINER_TAG: ae284a5a64fcff65729bf50b5b0cfdba16afc682 # # We use the ubuntu1804 image as default as # it matches what we have on sn-devel-184. @@ -59,6 +59,7 @@ variables: # We should run that for each available image # SAMBA_CI_CONTAINER_IMAGE_ubuntu1804: ubuntu1804 + SAMBA_CI_CONTAINER_IMAGE_ubuntu1804_32bit: ubuntu1804-32bit SAMBA_CI_CONTAINER_IMAGE_ubuntu2004: ubuntu2004 SAMBA_CI_CONTAINER_IMAGE_debian11: debian11 SAMBA_CI_CONTAINER_IMAGE_opensuse154: opensuse154 @@ -576,6 +577,12 @@ coverity: paths: - cov-int/*.txt +ubuntu1804-samba-32bit: + extends: .shared_template + variables: + AUTOBUILD_JOB_NAME: samba-32bit + SAMBA_CI_JOB_IMAGE: ${SAMBA_CI_CONTAINER_IMAGE_ubuntu1804_32bit} + # # We build samba-o3 on all supported distributions # diff --git a/bootstrap/.gitlab-ci.yml b/bootstrap/.gitlab-ci.yml index dff5cd2bf94..fee2861e6ea 100644 --- a/bootstrap/.gitlab-ci.yml +++ b/bootstrap/.gitlab-ci.yml @@ -91,6 +91,11 @@ ubuntu1804: extends: .build_image_template +ubuntu1804-32bit: + extends: .build_image_template + variables: + SAMBA_CI_TEST_JOB: "samba-32bit" + ubuntu2004: extends: .build_image_template diff --git a/bootstrap/config.py b/bootstrap/config.py index 79e19308fdb..bbcd45a044c 100644 --- a/bootstrap/config.py +++ b/bootstrap/config.py @@ -427,6 +427,13 @@ DEB_DISTS = { 'liburing-dev': '', # not available } }, + 'ubuntu1804-32bit': { + 'docker_image': 'registry-1.docker.io/i386/ubuntu:18.04', + 'vagrant_box': 'ubuntu/bionic32', + 'replace': { + 'liburing-dev': '', # not available + } + }, 'ubuntu2004': { 'docker_image': 'ubuntu:20.04', 'vagrant_box': 'ubuntu/focal64', diff --git a/bootstrap/generated-dists/Vagrantfile b/bootstrap/generated-dists/Vagrantfile index dad82c1e502..64ab54d2682 100644 --- a/bootstrap/generated-dists/Vagrantfile +++ b/bootstrap/generated-dists/Vagrantfile @@ -59,6 +59,13 @@ Vagrant.configure("2") do |config| v.vm.provision :shell, path: "ubuntu1804/locale.sh" end + config.vm.define "ubuntu1804-32bit" do |v| + v.vm.box = "ubuntu/bionic32" + v.vm.hostname = "ubuntu1804-32bit" + v.vm.provision :shell, path: "ubuntu1804-32bit/bootstrap.sh" + v.vm.provision :shell, path: "ubuntu1804-32bit/locale.sh" + end + config.vm.define "ubuntu2004" do |v| v.vm.box = "ubuntu/focal64" v.vm.hostname = "ubuntu2004" diff --git a/bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile b/bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile new file mode 100644 index 00000000000..3d0c21c1434 --- /dev/null +++ b/bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile @@ -0,0 +1,29 @@ +# +# This file is generated by 'bootstrap/template.py --render' +# See also bootstrap/config.py +# + +FROM registry-1.docker.io/i386/ubuntu:18.04 + +# pass in with --build-arg while build +ARG SHA1SUM +RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt + +ADD *.sh /tmp/ +# need root permission, do it before USER samba +RUN /tmp/bootstrap.sh && /tmp/locale.sh + +# if ld.gold exists, force link it to ld +RUN set -x; ! LD_GOLD=$(which ld.gold) || { LD=$(which ld) && ln -sf $LD_GOLD $LD && test -x $LD && echo "$LD is now $LD_GOLD"; } +# if ld.mold exists, force link it to ld (prefer mold over gold! ;-) +RUN set -x; ! LD_MOLD=$(which ld.mold) || { LD=$(which ld) && ln -sf $LD_MOLD $LD && test -x $LD && echo "$LD is now $LD_MOLD"; } + +# make test can not work with root, so we have to create a new user +RUN useradd -m -U -s /bin/bash samba && \ + mkdir -p /etc/sudoers.d && \ + echo "samba ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/samba + +USER samba +WORKDIR /home/samba +# samba tests rely on this +ENV USER=samba LC_ALL=en_US.utf8 LANG=en_US.utf8 \ No newline at end of file diff --git a/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh b/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh new file mode 100755 index 00000000000..56e7b805dfd --- /dev/null +++ b/bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh @@ -0,0 +1,114 @@ +#!/bin/bash + +# +# This file is generated by 'bootstrap/template.py --render' +# See also bootstrap/config.py +# + +set -xueo pipefail + +export DEBIAN_FRONTEND=noninteractive +apt-get -y update + +apt-get -y install \ + acl \ + apt-utils \ + attr \ + autoconf \ + bind9utils \ + binutils \ + bison \ + build-essential \ + ccache \ + chrpath \ + curl \ + debhelper \ + dnsutils \ + docbook-xml \ + docbook-xsl \ + flex \ + gcc \ + gdb \ + git \ + glusterfs-common \ + gzip \ + heimdal-multidev \ + hostname \ + htop \ + jq \ + krb5-config \ + krb5-kdc \ + krb5-user \ + language-pack-en \ + lcov \ + libacl1-dev \ + libarchive-dev \ + libattr1-dev \ + libavahi-common-dev \ + libblkid-dev \ + libbsd-dev \ + libcap-dev \ + libcephfs-dev \ + libcups2-dev \ + libdbus-1-dev \ + libglib2.0-dev \ + libgnutls28-dev \ + libgpgme11-dev \ + libicu-dev \ + libjansson-dev \ + libjs-jquery \ + libjson-perl \ + libkrb5-dev \ + libldap2-dev \ + liblmdb-dev \ + libncurses5-dev \ + libpam0g-dev \ + libparse-yapp-perl \ + libpcap-dev \ + libpopt-dev \ + libreadline-dev \ + libsystemd-dev \ + libtasn1-bin \ + libtasn1-dev \ + libtracker-sparql-2.0-dev \ + libunwind-dev \ + lmdb-utils \ + locales \ + lsb-release \ + make \ + mawk \ + mingw-w64 \ + patch \ + perl \ + perl-modules \ + pkg-config \ + procps \ + psmisc \ + python3 \ + python3-cryptography \ + python3-dbg \ + python3-dev \ + python3-dnspython \ + python3-gpg \ + python3-iso8601 \ + python3-markdown \ + python3-pexpect \ + python3-pyasn1 \ + python3-requests \ + python3-setproctitle \ + rng-tools \ + rsync \ + sed \ + sudo \ + tar \ + tree \ + uuid-dev \ + wget \ + xfslibs-dev \ + xsltproc \ + xz-utils \ + zlib1g-dev + +apt-get -y autoremove +apt-get -y autoclean +apt-get -y clean \ No newline at end of file diff --git a/bootstrap/generated-dists/ubuntu1804-32bit/locale.sh b/bootstrap/generated-dists/ubuntu1804-32bit/locale.sh new file mode 100755 index 00000000000..cc64e180483 --- /dev/null +++ b/bootstrap/generated-dists/ubuntu1804-32bit/locale.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +# +# This file is generated by 'bootstrap/template.py --render' +# See also bootstrap/config.py +# + +set -xueo pipefail + +# refer to /usr/share/i18n/locales +INPUTFILE=en_US +# refer to /usr/share/i18n/charmaps +CHARMAP=UTF-8 +# locale to generate in /usr/lib/locale +# glibc/localedef will normalize UTF-8 to utf8, follow the naming style +LOCALE=$INPUTFILE.utf8 + +# if locale is already correct, exit +( locale | grep LC_ALL | grep -i $LOCALE ) && exit 0 + +# if locale not available, generate locale into /usr/lib/locale +if ! ( locale --all-locales | grep -i $LOCALE ) +then + # no-archive means create its own dir + localedef --inputfile $INPUTFILE --charmap $CHARMAP --no-archive $LOCALE +fi + +# update locale conf and global env file +# set both LC_ALL and LANG for safe + +# update conf for Debian family +FILE=/etc/default/locale +if [ -f $FILE ] +then + echo LC_ALL="$LOCALE" > $FILE + echo LANG="$LOCALE" >> $FILE +fi + +# update conf for RedHat family +FILE=/etc/locale.conf +if [ -f $FILE ] +then + # LC_ALL is not valid in this file, set LANG only + echo LANG="$LOCALE" > $FILE +fi + +# update global env file +FILE=/etc/environment +if [ -f $FILE ] +then + # append LC_ALL if not exist + grep LC_ALL $FILE || echo LC_ALL="$LOCALE" >> $FILE + # append LANG if not exist + grep LANG $FILE || echo LANG="$LOCALE" >> $FILE +fi \ No newline at end of file diff --git a/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml b/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml new file mode 100644 index 00000000000..b42b4d05989 --- /dev/null +++ b/bootstrap/generated-dists/ubuntu1804-32bit/packages.yml @@ -0,0 +1,99 @@ +--- +packages: + - acl + - apt-utils + - attr + - autoconf + - bind9utils + - binutils + - bison + - build-essential + - ccache + - chrpath + - curl + - debhelper + - dnsutils + - docbook-xml + - docbook-xsl + - flex + - gcc + - gdb + - git + - glusterfs-common + - gzip + - heimdal-multidev + - hostname + - htop + - jq + - krb5-config + - krb5-kdc + - krb5-user + - language-pack-en + - lcov + - libacl1-dev + - libarchive-dev + - libattr1-dev + - libavahi-common-dev + - libblkid-dev + - libbsd-dev + - libcap-dev + - libcephfs-dev + - libcups2-dev + - libdbus-1-dev + - libglib2.0-dev + - libgnutls28-dev + - libgpgme11-dev + - libicu-dev + - libjansson-dev + - libjs-jquery + - libjson-perl + - libkrb5-dev + - libldap2-dev + - liblmdb-dev + - libncurses5-dev + - libpam0g-dev + - libparse-yapp-perl + - libpcap-dev + - libpopt-dev + - libreadline-dev + - libsystemd-dev + - libtasn1-bin + - libtasn1-dev + - libtracker-sparql-2.0-dev + - libunwind-dev + - lmdb-utils + - locales + - lsb-release + - make + - mawk + - mingw-w64 + - patch + - perl + - perl-modules + - pkg-config + - procps + - psmisc + - python3 + - python3-cryptography + - python3-dbg + - python3-dev + - python3-dnspython + - python3-gpg + - python3-iso8601 + - python3-markdown + - python3-pexpect + - python3-pyasn1 + - python3-requests + - python3-setproctitle + - rng-tools + - rsync + - sed + - sudo + - tar + - tree + - uuid-dev + - wget + - xfslibs-dev + - xsltproc + - xz-utils + - zlib1g-dev \ No newline at end of file diff --git a/bootstrap/sha1sum.txt b/bootstrap/sha1sum.txt index 7a78c020f24..1a76e376b75 100644 --- a/bootstrap/sha1sum.txt +++ b/bootstrap/sha1sum.txt @@ -1 +1 @@ -a5335bb5004bdcba5ab7e064164d5e70b76bea0f +ae284a5a64fcff65729bf50b5b0cfdba16afc682 diff --git a/script/autobuild.py b/script/autobuild.py index b7be54024f6..7b34c2d6b28 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -811,6 +811,20 @@ tasks = { ], }, + "samba-32bit": { + "sequence": [ + ("random-sleep", random_sleep(300, 900)), + ("configure", "./configure.developer --abi-check-disable --disable-warnings-as-errors" + samba_configure_params), + ("make", "make -j"), + ("nonetest", make_test(cmd='make test', TESTS="--exclude=selftest/slow-none", include_envs=["none"])), + ("quicktest", make_test(cmd='make quicktest', include_envs=["ad_dc", "ad_dc_smb1", "ad_dc_smb1_done"])), + ("ktest", make_test(cmd='make test', include_envs=["ktest"])), + ("install", "make install"), + ("check-clean-tree", CLEAN_SOURCE_TREE_CMD), + ("clean", "make clean"), + ], + }, + "samba-ctdb": { "sequence": [ ("random-sleep", random_sleep(900, 1500)), @@ -1165,6 +1179,8 @@ defaulttasks.remove("samba-addc-mit-1") defaulttasks.remove("samba-addc-mit-4a") defaulttasks.remove("samba-addc-mit-4b") +defaulttasks.remove("samba-32bit") + if os.environ.get("AUTOBUILD_SKIP_SAMBA_O3", "0") == "1": defaulttasks.remove("samba-o3") diff --git a/selftest/knownfail-32bit b/selftest/knownfail-32bit new file mode 100644 index 00000000000..2946f3e9936 --- /dev/null +++ b/selftest/knownfail-32bit @@ -0,0 +1,117 @@ +# +# [3(9)/257 at 5s] samba.tests.blackbox.ndrdump +# UNEXPECTED(failure): samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_upn_dns_info_ex(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/blackbox/ndrdump.py", line 106, in test_ndrdump_upn_dns_info_ex +# self.assertEqual(actual, expected.encode('utf-8')) +# AssertionError: b'pul[904 chars] : Wed Jan 22 10:55:33 PM 1975 UTC\n [19848 chars]OK\n' != b'pul[904 chars] : Thu Sep 14 02:48:05 AM 30828 UTC\n [19850 chars]OK\n' +# UNEXPECTED(failure): samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_upn_dns_info_ex_not_supported(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/blackbox/ndrdump.py", line 125, in test_ndrdump_upn_dns_info_ex_not_supported +# self.assertEqual(actual, expected.encode('utf-8')) +# AssertionError: b'pul[904 chars] : Wed Jan 22 10:55:33 PM 1975 UTC\n [19948 chars]OK\n' != b'pul[904 chars] : Thu Sep 14 02:48:05 AM 30828 UTC\n [19950 chars]OK\n' +# command: PYTHONPATH=$PYTHONPATH python3 -m samba.subunit.run $LOADLIST samba.tests.blackbox.ndrdump 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.blackbox.ndrdump." --suffix="(none)" +# expanded command: PYTHONPATH=/home/samba/samba.git/bin/python python3 -m samba.subunit.run $LOADLIST samba.tests.blackbox.ndrdump 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.blackbox.ndrdump." --suffix="(none)" +# ERROR: Testsuite[samba.tests.blackbox.ndrdump] +# REASON: Exit code was 1 +^samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_upn_dns_info_ex.none +^samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_upn_dns_info_ex_not_supported.none +# +# [25(244)/261 at 15s] samba.tests.s3passdb +# ... +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/s3passdb.py", line 92, in test_getuser +# self.assertEqual(9223372036854775807, user.kickoff_time) +# AssertionError: 9223372036854775807 != 2147483647 +^samba.tests.s3passdb.samba.tests.s3passdb.PassdbTestCase.test_getuser.none +# +# [53(610)/261 at 4m22s, 1 errors] samba.tests.glue +# UNEXPECTED(failure): samba.tests.glue.samba.tests.glue.GlueTests.test_nttime2float(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/glue.py", line 54, in test_nttime2float +# self.assertEqual(_glue.nttime2float(1), -11644473600.0) +# AssertionError: 1240428288.0 != -11644473600.0 +^samba.tests.glue.samba.tests.glue.GlueTests.test_nttime2float.none +# +# [95(849)/261 at 5m19s, 2 errors] samba3.smbtorture_s3.LOCAL-MEMCACHE +# UNEXPECTED(failure): samba3.smbtorture_s3.LOCAL-MEMCACHE.smbtorture(none) +# REASON: Exception: Exception: using seed 1669051619 +# host=foo share=bar user= myname=dc5 +# Running LOCAL-MEMCACHE +# Did not find k4, should not have been purged +# TEST LOCAL-MEMCACHE FAILED! +# LOCAL-MEMCACHE took 3.3e-05 secs +# command: /home/samba/samba.git/source3/script/tests/test_smbtorture_s3.sh LOCAL-MEMCACHE //foo/bar "" "" /home/samba/samba.git/bin/smbtorture3 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba3.smbtorture_s3.LOCAL-MEMCACHE." --suffix="(none)" +# expanded command: /home/samba/samba.git/source3/script/tests/test_smbtorture_s3.sh LOCAL-MEMCACHE //foo/bar "" "" /home/samba/samba.git/bin/smbtorture3 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba3.smbtorture_s3.LOCAL-MEMCACHE." --suffix="(none)" +# ERROR: Testsuite[samba3.smbtorture_s3.LOCAL-MEMCACHE] +# REASON: Exit code was 1 +^samba3.smbtorture_s3.LOCAL-MEMCACHE.smbtorture.none +# +# [152(1033)/261 at 5m54s, 3 errors] samba4.local.time +# UNEXPECTED(failure): samba4.local.time.normalize_timespec(none) +# REASON: Exception: Exception: ../../lib/util/tests/time.c:129: ts.tv_sec was -2 (0xFFFFFFFE), expected 2 (0x2): mismatch in tv_sec +# command: /home/samba/samba.git/bin/smbtorture $LOADLIST --configfile=$SMB_CONF_PATH --option='fss:sequence timeout=1' --maximum-runtime=$SELFTEST_MAXTIME --based +# ir=$SELFTEST_TMPDIR --format=subunit --option=torture:progress=no --target=samba4 ncalrpc:localhost local.time 2>&1 | python3 /home/samba/samba.git/selftest/filte +# r-subunit --fail-on-empty --prefix="samba4.local.time." --suffix="(none)" +# expanded command: /home/samba/samba.git/bin/smbtorture $LOADLIST --configfile=/home/samba/samba.git/st/client/client.conf --option='fss:sequence timeout=1' --max +# imum-runtime=1200 --basedir=/home/samba/samba.git/st/tmp --format=subunit --option=torture:progress=no --target=samba4 ncalrpc:localhost local.time 2>&1 | python3 +# /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.local.time." --suffix="(none)" +# ERROR: Testsuite[samba4.local.time] +# REASON: Exit code was 1 +^samba4.local.time.normalize_timespec.none + + +# +# [171(1386)/261 at 6m24s, 4 errors] samba4.local.charset +# UNEXPECTED(failure): samba4.local.charset.strcasecmp(none) +# REASON: Exception: Exception: ../../lib/util/charset/tests/charset.c:56: strcasecmp("foo", "bar") was 1 (0x1), expected 4 (0x4): different strings both lower +# UNEXPECTED(failure): samba4.local.charset.strcasecmp_m(none) +# REASON: Exception: Exception: ../../lib/util/charset/tests/charset.c:85: strcasecmp_m(file_iso8859_1, file_utf8) was 1 (0x1), expected 38 (0x26): file.{accented e} +# should differ +# UNEXPECTED(failure): samba4.local.charset.strncasecmp(none) +# REASON: Exception: Exception: ../../lib/util/charset/tests/charset.c:132: strncasecmp("foo", "bar", 3) was 1 (0x1), expected 4 (0x4): different strings both lower +# UNEXPECTED(failure): samba4.local.charset.strncasecmp_m(none) +# REASON: Exception: Exception: ../../lib/util/charset/tests/charset.c:167: strncasecmp_m(file_iso8859_1, file_utf8, 6) was 1 (0x1), expected 38 (0x26): file.{accent +# ed e} should differ +# command: /home/samba/samba.git/bin/smbtorture $LOADLIST --configfile=$SMB_CONF_PATH --option='fss:sequence timeout=1' --maximum-runtime=$SELFTEST_MAXTIME --based +# ir=$SELFTEST_TMPDIR --format=subunit --option=torture:progress=no --target=samba4 ncalrpc:localhost local.charset 2>&1 | python3 /home/samba/samba.git/selftest/fi +# lter-subunit --fail-on-empty --prefix="samba4.local.charset." --suffix="(none)" +# expanded command: /home/samba/samba.git/bin/smbtorture $LOADLIST --configfile=/home/samba/samba.git/st/client/client.conf --option='fss:sequence timeout=1' --max +# imum-runtime=1200 --basedir=/home/samba/samba.git/st/tmp --format=subunit --option=torture:progress=no --target=samba4 ncalrpc:localhost local.charset 2>&1 | pyth +# on3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.local.charset." --suffix="(none)" +# ERROR: Testsuite[samba4.local.charset] +# REASON: Exit code was 1 +^samba4.local.charset.strcasecmp.none +^samba4.local.charset.strcasecmp_m.none +^samba4.local.charset.strncasecmp.none +^samba4.local.charset.strncasecmp_m.none +# +# [229(2702)/261 at 8m44s, 5 errors] samba.tests.samba_tool.provision_lmdb_size +# UNEXPECTED(failure): samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_134217728b(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_tool/provision_lmdb_size.py", line 104, in test_134217728b +# self.assertEqual(0, result) +# AssertionError: 0 != 255 +# UNEXPECTED(failure): samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_1Gb(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_tool/provision_lmdb_size.py", line 97, in test_1Gb +# self.assertEqual(0, result) +# AssertionError: 0 != 255 +# UNEXPECTED(failure): samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_64Mb(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_tool/provision_lmdb_size.py", line 92, in test_64Mb +# self.assertEqual(0, result) +# AssertionError: 0 != 255 +# UNEXPECTED(failure): samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_default(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_tool/provision_lmdb_size.py", line 87, in test_default +# self.assertEqual(0, result) +# AssertionError: 0 != 255 +# command: PYTHONPATH=$PYTHONPATH python3 -m samba.subunit.run $LOADLIST samba.tests.samba_tool.provision_lmdb_size 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.samba_tool.provision_lmdb_size." --suffix="(none)" +# expanded command: PYTHONPATH=/home/samba/samba.git/bin/python python3 -m samba.subunit.run $LOADLIST samba.tests.samba_tool.provision_lmdb_size 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.samba_tool.provision_lmdb_size." --suffix="(none)" +# ERROR: Testsuite[samba.tests.samba_tool.provision_lmdb_size] +# REASON: Exit code was 1 +^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_134217728b.none +^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_1Gb.none +^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_64Mb.none +^samba.tests.samba_tool.provision_lmdb_size.samba.tests.samba_tool.provision_lmdb_size.ProvisionLmdbSizeTestCase.test_default.none diff --git a/selftest/skip-32bit b/selftest/skip-32bit new file mode 100644 index 00000000000..764bafa012d --- /dev/null +++ b/selftest/skip-32bit @@ -0,0 +1,69 @@ +# +# [231(2711)/261 at 9m10s, 6 errors] samba.tests.samba_upgradedns_lmdb +# UNEXPECTED(error): samba.tests.samba_upgradedns_lmdb.samba.tests.samba_upgradedns_lmdb.UpgradeDnsLmdbTestCase.test_lmdb_lock_files_linked_on_upgrade_to_bind9_dlz(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/bin/python/samba/tests/samba_upgradedns_lmdb.py", line 69, in test_lmdb_lock_files_linked_on_upgrade_to_bind9_dlz +# for filename in os.listdir(directory): +# FileNotFoundError: [Errno 2] No such file or directory: '/home/samba/samba.git/st/tmp/tmpku4ew0tv/samba/bind-dns/dns/sam.ldb.d' +# command: PYTHONPATH=$PYTHONPATH python3 -m samba.subunit.run $LOADLIST samba.tests.samba_upgradedns_lmdb 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.samba_upgradedns_lmdb." --suffix="(none)" +# expanded command: PYTHONPATH=/home/samba/samba.git/bin/python python3 -m samba.subunit.run $LOADLIST samba.tests.samba_upgradedns_lmdb 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.samba_upgradedns_lmdb." --suffix="(none)" +# ERROR: Testsuite[samba.tests.samba_upgradedns_lmdb] +# REASON: Exit code was 1 +^samba.tests.samba_upgradedns_lmdb +# +# [235(2761)/261 at 9m14s, 7 errors] samba.tests.blackbox.downgradedatabase +# UNEXPECTED(error): samba.tests.blackbox.downgradedatabase.samba.tests.blackbox.downgradedatabase.DowngradeTestMDB.test_undo_guid(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "bin/python/samba/tests/blackbox/downgradedatabase.py", line 43, in setUp +# self.check_run(prov_cmd, "Provisioning for downgrade") +# File "bin/python/samba/tests/__init__.py", line 421, in check_run +# self.check_exit_code(line, 0, msg=msg) +# File "bin/python/samba/tests/__init__.py", line 439, in check_exit_code +# msg) +# Traceback (most recent call last): +# File "bin/python/samba/tests/__init__.py", line 278, in _remove_tempdir +# self.assertEqual([], os.listdir(self.tempdir)) +# AssertionError: Lists differ: [] != ['private', 'bind-dns', 'etc', 'state'] +# +# Second list contains 4 additional elements. +# First extra element 0: +# 'private' +# +# - [] +# + ['private', 'bind-dns', 'etc', 'state'] +# command: python3 /home/samba/samba.git/source4/scripting/bin/subunitrun $LOADLIST samba.tests.blackbox.downgradedatabase 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.blackbox.downgradedatabase." --suffix="(none)" +# expanded command: python3 /home/samba/samba.git/source4/scripting/bin/subunitrun $LOADLIST samba.tests.blackbox.downgradedatabase 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba.tests.blackbox.downgradedatabase." --suffix="(none)" +# ERROR: Testsuite[samba.tests.blackbox.downgradedatabase] +# REASON: Exit code was 1 +^samba.tests.blackbox.downgradedatabase +# +# [236(2763)/261 at 9m46s, 8 errors] samba4.ldap.index.python +# Unable to find backend for 'mdb:///home/samba/samba.git/st/tmp/tmpshxaw8jv/indexedcomptest.ldb' - do you need to set LDB_MODULES_PATH? +# UNEXPECTED(error): samba4.ldap.index.python.__main__.LdbLMDBIndexedComparisonExpressions.test_comparison_expression(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/lib/ldb-samba/tests/index.py", line 186, in setUp +# super(LdbLMDBIndexedComparisonExpressions, self).setUp() +# File "/home/samba/samba.git/lib/ldb-samba/tests/index.py", line 87, in setUp +# self.l = _ldb.Ldb(self.url(), options=self.options()) +# _ldb.LdbError: (80, None) +# Unable to find backend for 'mdb:///home/samba/samba.git/st/tmp/tmpzyl07twx/indexedcomptest.ldb' - do you need to set LDB_MODULES_PATH? +# UNEXPECTED(error): samba4.ldap.index.python.__main__.LdbLMDBIndexedComparisonExpressions.test_comparison_expression_duplicates(none) +# REASON: Exception: Exception: Traceback (most recent call last): +# File "/home/samba/samba.git/lib/ldb-samba/tests/index.py", line 186, in setUp +# super(LdbLMDBIndexedComparisonExpressions, self).setUp() +# File "/home/samba/samba.git/lib/ldb-samba/tests/index.py", line 87, in setUp +# self.l = _ldb.Ldb(self.url(), options=self.options()) +# _ldb.LdbError: (80, None) +# command: python3 /home/samba/samba.git/lib/ldb-samba/tests/index.py 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.ldap.index.python." --suffix="(none)" +# expanded command: python3 /home/samba/samba.git/lib/ldb-samba/tests/index.py 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.ldap.index.python." --suffix="(none)" +# ERROR: Testsuite[samba4.ldap.index.python] +# REASON: Exit code was 1 +^samba4.ldap.index.python +# +# [247(2834)/261 at 11m47s, 9 errors] samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb +# sh: 1: /home/samba/samba.git/bin/test_encrypted_secrets_mdb: not found +# command: /home/samba/samba.git/bin/test_encrypted_secrets_mdb 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb." --suffix="(none)" +# expanded command: /home/samba/samba.git/bin/test_encrypted_secrets_mdb 2>&1 | python3 /home/samba/samba.git/selftest/filter-subunit --fail-on-empty --prefix="samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb." --suffix="(none)" +# ERROR: Testsuite[samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb] +# REASON: Exit code was 1 +^samba4.dsdb.samdb.ldb_modules.encrypted_secrets.mdb diff --git a/selftest/wscript b/selftest/wscript index 435f19ccc11..b4697b3c48b 100644 --- a/selftest/wscript +++ b/selftest/wscript @@ -276,6 +276,10 @@ def cmd_testonly(opt): env.FILTER_XFAIL += " --expected-failures=${srcdir}/selftest/"\ "knownfail_heimdal_kdc" + if CONFIG_GET(opt, 'SIZEOF_VOID_P') == 4: + env.FILTER_XFAIL += " --expected-failures=${srcdir}/selftest/knownfail-32bit" + env.OPTIONS += " --default-ldb-backend=tdb --exclude=${srcdir}/selftest/skip-32bit" + if not CONFIG_GET(opt, 'HAVE_GSS_KRB5_CRED_NO_CI_FLAGS_X'): # older MIT krb5 libraries (< 1.14) don't have # GSS_KRB5_CRED_NO_CI_FLAGS_X