• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src/router/samba-3.5.8/source4/scripting/python/samba/torture/
1#!/usr/bin/python
2
3import sys, os
4import Tdb
5
6def fail(msg):
7    print 'FAILED:', msg
8    sys.exit(1)
9
10tdb_file = '/tmp/torture_tdb.tdb'
11
12# Create temporary tdb file
13
14t = Tdb.Tdb(tdb_file, flags = Tdb.CLEAR_IF_FIRST)
15
16# Check non-existent key throws KeyError exception
17
18try:
19    t['__none__']
20except KeyError:
21    pass
22else:
23    fail('non-existent key did not throw KeyError')
24
25# Check storing key
26
27t['bar'] = '1234'
28if t['bar'] != '1234':
29    fail('store key failed')
30
31# Check key exists
32
33if not t.has_key('bar'):
34    fail('has_key() failed for existing key')
35
36if t.has_key('__none__'):
37    fail('has_key() succeeded for non-existent key')
38
39# Delete key
40
41try:
42    del(t['__none__'])
43except KeyError:
44    pass
45else:
46    fail('delete of non-existent key did not throw KeyError')
47
48del t['bar']
49if t.has_key('bar'):
50    fail('delete of existing key did not delete key')
51
52# Clear all keys
53
54t.clear()
55if len(t) != 0:
56    fail('clear failed to remove all keys')
57
58# Other dict functions
59
60t['a'] = '1'
61t['ab'] = '12'
62t['abc'] = '123'
63
64if len(t) != 3:
65    fail('len method produced wrong value')
66
67keys = t.keys()
68values = t.values()
69items = t.items()
70
71if set(keys) != set(['a', 'ab', 'abc']):
72    fail('keys method produced wrong values')
73
74if set(values) != set(['1', '12', '123']):
75    fail('values method produced wrong values')
76
77if set(items) != set([('a', '1'), ('ab', '12'), ('abc', '123')]):
78    fail('values method produced wrong values')
79
80t.close()
81
82# Re-open read-only
83
84t = Tdb.Tdb(tdb_file, open_flags = os.O_RDONLY)
85t.keys()
86t.close()
87
88# Clean up
89
90os.unlink(tdb_file)
91