mirror of
https://github.com/samba-team/samba.git
synced 2025-01-25 06:04:04 +03:00
0c968d374a
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andreas Schneider <asn@samba.org>
45 lines
1.0 KiB
Python
45 lines
1.0 KiB
Python
#!/usr/bin/env python3
|
|
#
|
|
# Tests for crashing functions
|
|
|
|
import os
|
|
from unittest import TestCase
|
|
import sys
|
|
import traceback
|
|
sys.path.insert(0, "bin/python")
|
|
import ldb
|
|
|
|
|
|
def segfault_detector(f):
|
|
def wrapper(*args, **kwargs):
|
|
pid = os.fork()
|
|
if pid == 0:
|
|
# child, crashing?
|
|
try:
|
|
f(*args, **kwargs)
|
|
except Exception as e:
|
|
traceback.print_exc()
|
|
sys.stderr.flush()
|
|
sys.stdout.flush()
|
|
os._exit(0)
|
|
|
|
# parent, waiting
|
|
pid2, status = os.waitpid(pid, 0)
|
|
if os.WIFSIGNALED(status):
|
|
signal = os.WTERMSIG(status)
|
|
raise AssertionError("Failed with signal %d" % signal)
|
|
|
|
return wrapper
|
|
|
|
|
|
class LdbDnCrashTests(TestCase):
|
|
@segfault_detector
|
|
def test_ldb_dn_explode_crash(self):
|
|
for i in range(106, 150):
|
|
dn = ldb.Dn(ldb.Ldb(), "a=b%s,c= " % (' ' * i))
|
|
dn.validate()
|
|
|
|
if __name__ == '__main__':
|
|
import unittest
|
|
unittest.TestProgram()
|