ctdb-daemon: Use ctdb_parse_node_address() in ctdbd
[samba4-gss.git] / lib / ldb / tests / python / crash.py
blob32839814552afa678a6b8374fe42f85972bcf67d
1 #!/usr/bin/env python3
3 # Tests for crashing functions
5 import os
6 from unittest import TestCase
7 import os
8 import sys
9 import traceback
11 import ldb
14 def segfault_detector(f):
15 def wrapper(*args, **kwargs):
16 pid = os.fork()
17 if pid == 0:
18 # child, crashing?
19 try:
20 f(*args, **kwargs)
21 except Exception as e:
22 traceback.print_exc()
23 sys.stderr.flush()
24 sys.stdout.flush()
25 os._exit(0)
27 # parent, waiting
28 pid2, status = os.waitpid(pid, 0)
29 if os.WIFSIGNALED(status):
30 signal = os.WTERMSIG(status)
31 raise AssertionError("Failed with signal %d" % signal)
33 return wrapper
36 class LdbDnCrashTests(TestCase):
37 @segfault_detector
38 def test_ldb_dn_explode_crash(self):
39 for i in range(106, 150):
40 dn = ldb.Dn(ldb.Ldb(), "a=b%s,c= " % (' ' * i))
41 dn.validate()
43 if __name__ == '__main__':
44 import unittest
45 unittest.TestProgram()