[SCM] Samba Shared Repository - branch master updated
David Mulder
dmulder at samba.org
Mon Feb 22 15:51:01 UTC 2021
The branch, master has been updated
via e49a0b444ab ldb: remove some 'if PY3's in tests
via bc7224fbc79 pytest/segfault: fix the rpc.echo test
via f154fe8d954 pytest/segfaults: drop a useless line
via 9e19b148f6c selftest: preforkrestartdc doesn't need gdb-backtraces
via 80faba100db pytest:segfault: avoid gdb_backtrace on knownfail
via 5b7c2c3b1ab selftest/gdb_backtrace: add an off switch
from 718f7b1a84f printing: use correct error out in get_correct_cversion() when openat_pathref_fsp() fails
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit e49a0b444ab5dfd5dc4a82fae2e5939cc9cfe5a4
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Feb 11 15:50:53 2021 +1300
ldb: remove some 'if PY3's in tests
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: David Mulder <dmulder at suse.com>
Autobuild-User(master): David Mulder <dmulder at samba.org>
Autobuild-Date(master): Mon Feb 22 15:50:55 UTC 2021 on sn-devel-184
commit bc7224fbc7902e68b104fb5938c8348a11647be5
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Feb 11 17:35:59 2021 +1300
pytest/segfault: fix the rpc.echo test
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: David Mulder <dmulder at suse.com>
commit f154fe8d95451e77da56d86c4b5895f2f942b936
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Feb 11 17:35:32 2021 +1300
pytest/segfaults: drop a useless line
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: David Mulder <dmulder at suse.com>
commit 9e19b148f6c9d0800b08fe221c7f88a5d3ecf52d
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Feb 11 22:19:31 2021 +1300
selftest: preforkrestartdc doesn't need gdb-backtraces
There are tests in this environment that kill processes with SEGV
signals, which causes a backtrace that is entirely spurious from a
debugging point of view.
We can turn that off, saving processor time and moments of developer
confusion.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: David Mulder <dmulder at suse.com>
commit 80faba100dbf12d706a63e1a27758aefefae7793
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Feb 11 22:16:33 2021 +1300
pytest:segfault: avoid gdb_backtrace on knownfail
We know that test_net_replicate_init__3() segfaults. It is a knownfail
and we don't need to see the gdb backtrace every time.
This saves nearly two minutes on `make test TESTS=segfault`.
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: David Mulder <dmulder at suse.com>
commit 5b7c2c3b1abbad5ae6550b99496e251061585c90
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu Feb 11 17:39:18 2021 +1300
selftest/gdb_backtrace: add an off switch
Sometime you know a test is going to crash and produce a LOT of
backtrace, and you already know what it will look like. For those
times you can set
PLEASE_NO_GDB_BACKTRACE=1
and there will be no backtrace, which can save quite a bit of time and
thousands of lines of log file. (In particular, backtraces of Python
programs can take over a minute to complete).
Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Reviewed-by: David Mulder <dmulder at suse.com>
-----------------------------------------------------------------------
Summary of changes:
lib/ldb/tests/python/api.py | 60 ++++++++++++------------------------------
lib/ldb/tests/python/index.py | 1 -
python/samba/tests/segfault.py | 14 ++++++++--
selftest/gdb_backtrace | 6 +++++
selftest/target/Samba4.pm | 5 ++++
5 files changed, 40 insertions(+), 46 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/ldb/tests/python/api.py b/lib/ldb/tests/python/api.py
index 1d3d765e607..5198f3fbbb5 100755
--- a/lib/ldb/tests/python/api.py
+++ b/lib/ldb/tests/python/api.py
@@ -10,7 +10,6 @@ import time
import ldb
import shutil
-PY3 = sys.version_info > (3, 0)
TDB_PREFIX = "tdb://"
MDB_PREFIX = "mdb://"
@@ -150,12 +149,9 @@ class SimpleLdb(LdbBaseTest):
except UnicodeDecodeError as e:
raise
except TypeError as te:
- if PY3:
- p3errors = ["argument 2 must be str, not bytes",
- "Can't convert 'bytes' object to str implicitly"]
- self.assertIn(str(te), p3errors)
- else:
- raise
+ p3errors = ["argument 2 must be str, not bytes",
+ "Can't convert 'bytes' object to str implicitly"]
+ self.assertIn(str(te), p3errors)
def test_search_attrs(self):
l = ldb.Ldb(self.url(), flags=self.flags())
@@ -3031,24 +3027,14 @@ class LdbMsgTests(TestCase):
def test_repr(self):
self.msg.dn = ldb.Dn(ldb.Ldb(), "dc=foo29")
self.msg["dc"] = b"foo"
- if PY3:
- self.assertIn(repr(self.msg), [
- "Message({'dn': Dn('dc=foo29'), 'dc': MessageElement([b'foo'])})",
- "Message({'dc': MessageElement([b'foo']), 'dn': Dn('dc=foo29')})",
- ])
- self.assertIn(repr(self.msg.text), [
- "Message({'dn': Dn('dc=foo29'), 'dc': MessageElement([b'foo'])}).text",
- "Message({'dc': MessageElement([b'foo']), 'dn': Dn('dc=foo29')}).text",
- ])
- else:
- self.assertIn(repr(self.msg), [
- "Message({'dn': Dn('dc=foo29'), 'dc': MessageElement(['foo'])})",
- "Message({'dc': MessageElement(['foo']), 'dn': Dn('dc=foo29')})",
- ])
- self.assertIn(repr(self.msg.text), [
- "Message({'dn': Dn('dc=foo29'), 'dc': MessageElement(['foo'])}).text",
- "Message({'dc': MessageElement(['foo']), 'dn': Dn('dc=foo29')}).text",
- ])
+ self.assertIn(repr(self.msg), [
+ "Message({'dn': Dn('dc=foo29'), 'dc': MessageElement([b'foo'])})",
+ "Message({'dc': MessageElement([b'foo']), 'dn': Dn('dc=foo29')})",
+ ])
+ self.assertIn(repr(self.msg.text), [
+ "Message({'dn': Dn('dc=foo29'), 'dc': MessageElement([b'foo'])}).text",
+ "Message({'dc': MessageElement([b'foo']), 'dn': Dn('dc=foo29')}).text",
+ ])
def test_len(self):
self.assertEqual(0, len(self.msg))
@@ -3288,20 +3274,12 @@ class MessageElementTests(TestCase):
def test_repr(self):
x = ldb.MessageElement([b"foo"])
- if PY3:
- self.assertEqual("MessageElement([b'foo'])", repr(x))
- self.assertEqual("MessageElement([b'foo']).text", repr(x.text))
- else:
- self.assertEqual("MessageElement(['foo'])", repr(x))
- self.assertEqual("MessageElement(['foo']).text", repr(x.text))
+ self.assertEqual("MessageElement([b'foo'])", repr(x))
+ self.assertEqual("MessageElement([b'foo']).text", repr(x.text))
x = ldb.MessageElement([b"foo", b"bla"])
self.assertEqual(2, len(x))
- if PY3:
- self.assertEqual("MessageElement([b'foo',b'bla'])", repr(x))
- self.assertEqual("MessageElement([b'foo',b'bla']).text", repr(x.text))
- else:
- self.assertEqual("MessageElement(['foo','bla'])", repr(x))
- self.assertEqual("MessageElement(['foo','bla']).text", repr(x.text))
+ self.assertEqual("MessageElement([b'foo',b'bla'])", repr(x))
+ self.assertEqual("MessageElement([b'foo',b'bla']).text", repr(x.text))
def test_get_item(self):
x = ldb.MessageElement([b"foo", b"bar"])
@@ -3332,12 +3310,8 @@ class MessageElementTests(TestCase):
def test_extended(self):
el = ldb.MessageElement([b"456"], ldb.FLAG_MOD_ADD, "bla")
- if PY3:
- self.assertEqual("MessageElement([b'456'])", repr(el))
- self.assertEqual("MessageElement([b'456']).text", repr(el.text))
- else:
- self.assertEqual("MessageElement(['456'])", repr(el))
- self.assertEqual("MessageElement(['456']).text", repr(el.text))
+ self.assertEqual("MessageElement([b'456'])", repr(el))
+ self.assertEqual("MessageElement([b'456']).text", repr(el.text))
def test_bad_text(self):
el = ldb.MessageElement(b'\xba\xdd')
diff --git a/lib/ldb/tests/python/index.py b/lib/ldb/tests/python/index.py
index f957087f01c..c1da76d67e2 100755
--- a/lib/ldb/tests/python/index.py
+++ b/lib/ldb/tests/python/index.py
@@ -30,7 +30,6 @@ import sys
import ldb
import shutil
-PY3 = sys.version_info > (3, 0)
TDB_PREFIX = "tdb://"
MDB_PREFIX = "mdb://"
diff --git a/python/samba/tests/segfault.py b/python/samba/tests/segfault.py
index 07e2d46d56a..c6e17ed6ead 100644
--- a/python/samba/tests/segfault.py
+++ b/python/samba/tests/segfault.py
@@ -49,7 +49,6 @@ def segfault_detector(f):
os._exit(0)
pid2, status = os.waitpid(pid, 0)
- signal = status & 255
if os.WIFSIGNALED(status):
signal = os.WTERMSIG(status)
raise AssertionError("Failed with signal %d" % signal)
@@ -57,6 +56,16 @@ def segfault_detector(f):
return wrapper
+def no_gdb_backtrace(f):
+ from os import environ
+ def w(*args, **kwargs):
+ environ['PLEASE_NO_GDB_BACKTRACE'] = '1'
+ f(*args, **kwargs)
+ del environ['PLEASE_NO_GDB_BACKTRACE']
+
+ return w
+
+
class SegfaultTests(samba.tests.TestCase):
def get_lp_et_al(self):
server = os.environ["SERVER"]
@@ -78,6 +87,7 @@ class SegfaultTests(samba.tests.TestCase):
net = Net(creds, lp, server=server)
net.replicate_init(42, lp, None, misc.GUID())
+ @no_gdb_backtrace
@segfault_detector
def test_net_replicate_init__3(self):
# third argument is also unchecked
@@ -155,7 +165,7 @@ class SegfaultTests(samba.tests.TestCase):
@segfault_detector
def test_rpcecho(self):
- from dcerpc import echo
+ from samba.dcerpc import echo
echo.rpcecho("")
@segfault_detector
diff --git a/selftest/gdb_backtrace b/selftest/gdb_backtrace
index 4fe5f57353a..307a4d1e122 100755
--- a/selftest/gdb_backtrace
+++ b/selftest/gdb_backtrace
@@ -9,6 +9,12 @@ if [ -n "$VALGRIND" -o -n "$SMBD_VALGRIND" ]; then
exit 1
fi
+if [ "x$PLEASE_NO_GDB_BACKTRACE" != "x" ]; then
+ echo "${BASENAME}: Not running debugger because PLEASE_NO_GDB_BACKTRACE is set"
+ exit 0
+fi
+
+
# we want everything on stderr, so the program is not disturbed
exec 1>&2
diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm
index 1ae9fb9d996..dff9d042be9 100755
--- a/selftest/target/Samba4.pm
+++ b/selftest/target/Samba4.pm
@@ -2743,6 +2743,11 @@ sub setup_preforkrestartdc
return undef;
}
+ # We treat processes in this environment cruelly, sometimes
+ # sending them SIGSEGV signals. We don't need gdb_backtrace
+ # dissecting these fake crashes in precise detail.
+ $env->{PLEASE_NO_GDB_BACKTRACE} = '1';
+
$env->{NSS_WRAPPER_MODULE_SO_PATH} = undef;
$env->{NSS_WRAPPER_MODULE_FN_PREFIX} = undef;
--
Samba Shared Repository
More information about the samba-cvs
mailing list