ยปCore Development>Code coverage>Mac/Modules/launch/launchscan.py

Python code coverage for Mac/Modules/launch/launchscan.py

#countcontent
1n/a# Scan an Apple header file, generating a Python file of generator calls.
2n/a
3n/aimport sys
4n/afrom bgenlocations import TOOLBOXDIR, BGENDIR
5n/asys.path.append(BGENDIR)
6n/afrom scantools import Scanner
7n/a
8n/aLONG = "LaunchServices"
9n/aSHORT = "launch"
10n/aOBJECT = "NOTUSED"
11n/a
12n/adef main():
13n/a input = LONG + ".h"
14n/a output = SHORT + "gen.py"
15n/a defsoutput = TOOLBOXDIR + LONG + ".py"
16n/a scanner = MyScanner(input, output, defsoutput)
17n/a scanner.scan()
18n/a scanner.close()
19n/a scanner.gentypetest(SHORT+"typetest.py")
20n/a print "=== Testing definitions output code ==="
21n/a execfile(defsoutput, {}, {})
22n/a print "=== Done scanning and generating, now importing the generated code... ==="
23n/a exec "import " + SHORT + "support"
24n/a print "=== Done. It's up to you to compile it now! ==="
25n/a
26n/aclass MyScanner(Scanner):
27n/a
28n/a def destination(self, type, name, arglist):
29n/a classname = "Function"
30n/a listname = "functions"
31n/a if arglist:
32n/a t, n, m = arglist[0]
33n/a # This is non-functional today
34n/a if t == OBJECT and m == "InMode":
35n/a classname = "Method"
36n/a listname = "methods"
37n/a return classname, listname
38n/a
39n/a def writeinitialdefs(self):
40n/a self.defsfile.write("def FOUR_CHAR_CODE(x): return x\n")
41n/a self.defsfile.write("from Carbon.Files import *\n")
42n/a self.defsfile.write("kLSRequestAllInfo = -1\n")
43n/a self.defsfile.write("kLSRolesAll = -1\n")
44n/a self.defsfile.write("kLSUnknownType = FOUR_CHAR_CODE('\\0\\0\\0\\0')\n")
45n/a self.defsfile.write("kLSUnknownCreator = FOUR_CHAR_CODE('\\0\\0\\0\\0')\n")
46n/a self.defsfile.write("kLSInvalidExtensionIndex = -1\n")
47n/a
48n/a def makeblacklistnames(self):
49n/a return [
50n/a "LSInit",
51n/a "LSTerm",
52n/a "kLSRequestAllInfo",
53n/a "kLSRolesAll",
54n/a "kLSInvalidExtensionIndex",
55n/a "kLSUnknownType",
56n/a "kLSUnknownCreator"
57n/a ]
58n/a
59n/a def makeblacklisttypes(self):
60n/a return [
61n/a "LSLaunchFSRefSpec_ptr",
62n/a "LSLaunchURLSpec_ptr",
63n/a ]
64n/a
65n/a def makerepairinstructions(self):
66n/a return [
67n/a # LSGetApplicationForInfo
68n/a ([('CFStringRef', 'inExtension', 'InMode')],
69n/a [('OptCFStringRef', 'inExtension', 'InMode')]),
70n/a
71n/a # LSFindApplicationForInfo
72n/a ([('CFStringRef', 'inBundleID', 'InMode')],
73n/a [('OptCFStringRef', 'inBundleID', 'InMode')]),
74n/a ([('CFStringRef', 'inName', 'InMode')],
75n/a [('OptCFStringRef', 'inName', 'InMode')]),
76n/a
77n/a # Unicode filenames passed as length, buffer. LSGetExtensionInfo
78n/a ([('UniCharCount', '*', 'InMode'),
79n/a ('UniChar_ptr', '*', 'InMode')],
80n/a [('UnicodeReverseInBuffer', '*', 'InMode')]
81n/a ),
82n/a ]
83n/a
84n/aif __name__ == "__main__":
85n/a main()