ยปCore Development>Code coverage>Mac/Modules/res/resscan.py

Python code coverage for Mac/Modules/res/resscan.py

#countcontent
1n/a# Scan Resources.h header file, generate resgen.py and Resources.py files.
2n/a# Then run ressupport to generate Resmodule.c.
3n/a# (Should learn how to tell the compiler to compile it as well.)
4n/a
5n/aimport sys
6n/aimport MacOS
7n/a
8n/afrom bgenlocations import TOOLBOXDIR, BGENDIR
9n/asys.path.append(BGENDIR)
10n/a
11n/afrom scantools import Scanner
12n/a
13n/adef main():
14n/a input = "Resources.h"
15n/a output = "resgen.py"
16n/a defsoutput = TOOLBOXDIR + "Resources.py"
17n/a scanner = ResourcesScanner(input, output, defsoutput)
18n/a scanner.scan()
19n/a scanner.close()
20n/a print "=== Testing definitions output code ==="
21n/a execfile(defsoutput, {}, {})
22n/a print "=== Done scanning and generating, now doing 'import ressupport' ==="
23n/a import ressupport
24n/a print "=== Done 'import ressupport'. It's up to you to compile Resmodule.c ==="
25n/a
26n/aclass ResourcesScanner(Scanner):
27n/a
28n/a def destination(self, type, name, arglist):
29n/a classname = "ResFunction"
30n/a listname = "functions"
31n/a if arglist:
32n/a t, n, m = arglist[0]
33n/a if t == "Handle" and m == "InMode":
34n/a classname = "ResMethod"
35n/a listname = "resmethods"
36n/a return classname, listname
37n/a
38n/a def makeblacklistnames(self):
39n/a return [
40n/a "ReadPartialResource",
41n/a "WritePartialResource",
42n/a "TempInsertROMMap",
43n/a## "RmveResource", # RemoveResource
44n/a## "SizeResource", # GetResourceSizeOnDisk
45n/a## "MaxSizeRsrc", # GetMaxResourceSize
46n/a # OS8 only
47n/a 'RGetResource',
48n/a 'OpenResFile',
49n/a 'CreateResFile',
50n/a 'RsrcZoneInit',
51n/a 'InitResources',
52n/a 'RsrcMapEntry',
53n/a ]
54n/a
55n/a def makeblacklisttypes(self):
56n/a return [
57n/a ]
58n/a
59n/a def makerepairinstructions(self):
60n/a return [
61n/a ([("Str255", "*", "InMode")],
62n/a [("*", "*", "OutMode")]),
63n/a
64n/a ([("void_ptr", "*", "InMode"), ("long", "*", "InMode")],
65n/a [("InBuffer", "*", "*")]),
66n/a
67n/a ([("void", "*", "OutMode"), ("long", "*", "InMode")],
68n/a [("InOutBuffer", "*", "*")]),
69n/a
70n/a ([("void", "*", "OutMode"), ("long", "*", "InMode"),
71n/a ("long", "*", "OutMode")],
72n/a [("OutBuffer", "*", "InOutMode")]),
73n/a
74n/a ([("SInt8", "*", "*")],
75n/a [("SignedByte", "*", "*")]),
76n/a
77n/a
78n/a ([("UniCharCount", "*", "InMode"), ("UniChar_ptr", "*", "InMode")],
79n/a [("UnicodeReverseInBuffer", "*", "*")]),
80n/a ]
81n/a
82n/aif __name__ == "__main__":
83n/a main()