annotate Mac/Lib/test/cmtest.py @ 4566:6403c94de50d legacy-trunk

Added safeguard against failure in __del__.
author Guido van Rossum <guido@python.org>
date Wed, 27 Nov 1996 19:39:58 +0000
parents 6a18c4cb68d8
children 42b2f1936254
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3282
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 """cmtest - List all components in the system"""
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
2
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3 import Cm
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
4 import Res
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5 import sys
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
6
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
7 def getstr255(r):
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
8 """Get string from str255 resource"""
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
9 if not r.data: return ''
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
10 len = ord(r.data[0])
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
11 return r.data[1:1+len]
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
12
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
13 def getinfo(c):
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
14 """Return (type, subtype, creator, fl1, fl2, name, description) for component"""
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
15 h1 = Res.Resource('')
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
16 h2 = Res.Resource('')
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
17 h3 = Res.Resource('')
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
18 type, subtype, creator, fl1, fl2 = c.GetComponentInfo(h1, h2, h3)
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
19 name = getstr255(h1)
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
20 description = getstr255(h2)
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
21 return type, subtype, creator, fl1, fl2, name, description
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
22
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
23 def getallcomponents():
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
24 """Return list with info for all components, sorted"""
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25 any = ('\0\0\0\0', '\0\0\0\0', '\0\0\0\0', 0, 0)
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
26 c = None
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
27 rv = []
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
28 while 1:
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29 try:
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30 c = Cm.FindNextComponent(c, any)
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
31 except Cm.Error:
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
32 break
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
33 rv.append(getinfo(c))
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
34 rv.sort()
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
35 return rv
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
36
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
37 def main():
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
38 """Print info for all components"""
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
39 info = getallcomponents()
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
40 for type, subtype, creator, f1, f2, name, description in info:
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
41 print '%4.4s %4.4s %4.4s %s 0x%x 0x%x'%(type, subtype, creator, name, f1, f2)
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
42 print ' ', description
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
43 sys.exit(1)
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
44
6a18c4cb68d8 Component mgr support
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
45 main()