gitlab-ci: do some basic testing on ubuntu1804-32bit
authorStefan Metzmacher <metze@samba.org>
Tue, 22 Nov 2022 09:41:39 +0000 (10:41 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 24 Nov 2022 12:05:26 +0000 (12:05 +0000)
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 <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Thu Nov 24 12:05:26 UTC 2022 on sn-devel-184

13 files changed:
.gitlab-ci-main.yml
bootstrap/.gitlab-ci.yml
bootstrap/config.py
bootstrap/generated-dists/Vagrantfile
bootstrap/generated-dists/ubuntu1804-32bit/Dockerfile [new file with mode: 0644]
bootstrap/generated-dists/ubuntu1804-32bit/bootstrap.sh [new file with mode: 0755]
bootstrap/generated-dists/ubuntu1804-32bit/locale.sh [new file with mode: 0755]
bootstrap/generated-dists/ubuntu1804-32bit/packages.yml [new file with mode: 0644]
bootstrap/sha1sum.txt
script/autobuild.py
selftest/knownfail-32bit [new file with mode: 0644]
selftest/skip-32bit [new file with mode: 0644]
selftest/wscript

index 44ab4d1345db7a2752f366128024bf316755eda2..8bc33ecfc4d4b34c53ca846320aff23c8b78f5c6 100644 (file)
@@ -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
 #
index dff5cd2bf945e6b62c9bc9469e431d5b4afaa908..fee2861e6ea755651b4a2fe719465fc489d8fe63 100644 (file)
 ubuntu1804:
   extends: .build_image_template
 
+ubuntu1804-32bit:
+  extends: .build_image_template
+  variables:
+    SAMBA_CI_TEST_JOB: "samba-32bit"
+
 ubuntu2004:
   extends: .build_image_template
 
index 79e19308fdba24a662132da4d89f2d82181f1703..bbcd45a044cf1bf799d2094db57caff647146b74 100644 (file)
@@ -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',
index dad82c1e5029f0c54953b9dfad856b91e2fa8886..64ab54d2682b29ee5d50f28d880442217b8faf19 100644 (file)
@@ -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 (file)
index 0000000..3d0c21c
--- /dev/null
@@ -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 (executable)
index 0000000..56e7b80
--- /dev/null
@@ -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 (executable)
index 0000000..cc64e18
--- /dev/null
@@ -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 (file)
index 0000000..b42b4d0
--- /dev/null
@@ -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
index 7a78c020f24878349c73375594caaedd806f27ba..1a76e376b753e50428bc5a374635ac4ca9401819 100644 (file)
@@ -1 +1 @@
-a5335bb5004bdcba5ab7e064164d5e70b76bea0f
+ae284a5a64fcff65729bf50b5b0cfdba16afc682
index b7be54024f6e5b7f89292200ed372cff40b7d6d2..7b34c2d6b2875d5010e3dcbec3914c93b9a25069 100755 (executable)
@@ -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 (file)
index 0000000..2946f3e
--- /dev/null
@@ -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 (file)
index 0000000..764bafa
--- /dev/null
@@ -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
index 435f19ccc11cb4dd97220c78888bd255250a10bc..b4697b3c48b7e54773837efebfed1479ee290bd6 100644 (file)
@@ -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