rooibos-roku 5.5.2 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/framework/{unused/CodeCoverage.brs → CodeCoverage.brs} +2 -2
- package/dist/lib/framework/Coverage.bs +101 -47
- package/dist/lib/framework/Rooibos.bs +1 -1
- package/dist/lib/framework/TestRunner.bs +11 -9
- package/dist/lib/rooibos/Annotation.js +5 -5
- package/dist/lib/rooibos/Annotation.js.map +1 -1
- package/dist/lib/rooibos/CodeCoverageProcessor.js +145 -97
- package/dist/lib/rooibos/CodeCoverageProcessor.js.map +1 -1
- package/dist/lib/rooibos/CodeCoverageProcessor.spec.js +385 -61
- package/dist/lib/rooibos/CodeCoverageProcessor.spec.js.map +1 -1
- package/dist/lib/rooibos/FileFactory.js +24 -4
- package/dist/lib/rooibos/FileFactory.js.map +1 -1
- package/dist/lib/rooibos/RawCodeExpression.js +22 -0
- package/dist/lib/rooibos/RawCodeExpression.js.map +1 -0
- package/dist/lib/rooibos/RooibosSession.js +7 -7
- package/dist/lib/rooibos/RooibosSession.js.map +1 -1
- package/dist/lib/rooibos/TestCase.js +1 -1
- package/dist/lib/rooibos/TestCase.js.map +1 -1
- package/dist/lib/rooibos/TestGroup.js +24 -23
- package/dist/lib/rooibos/TestGroup.js.map +1 -1
- package/dist/lib/rooibos/TestSuite.js +4 -4
- package/dist/lib/rooibos/TestSuite.js.map +1 -1
- package/dist/lib/rooibos/TestSuiteBuilder.js +22 -19
- package/dist/lib/rooibos/TestSuiteBuilder.js.map +1 -1
- package/dist/lib/rooibos/TestSuiteBuilder.spec.js +169 -169
- package/dist/lib/rooibos/TestSuiteBuilder.spec.js.map +1 -1
- package/dist/lib/rooibos/Utils.js +1 -1
- package/dist/lib/rooibos/Utils.js.map +1 -1
- package/dist/plugin.js +30 -7
- package/dist/plugin.js.map +1 -1
- package/package.json +9 -2
- /package/dist/lib/framework/{unused/CodeCoverage.xml → CodeCoverage.xml} +0 -0
- /package/dist/lib/framework/{unused/CodeCoverageSupport.brs → CodeCoverageSupport.brs} +0 -0
|
@@ -6,11 +6,11 @@ function init()
|
|
|
6
6
|
end function
|
|
7
7
|
|
|
8
8
|
function setExpectedMap()
|
|
9
|
-
m.top.expectedMap =
|
|
9
|
+
m.top.expectedMap = #EXPECTED_MAP#
|
|
10
10
|
end function
|
|
11
11
|
|
|
12
12
|
function setFilePathMap()
|
|
13
|
-
m.top.filePathMap =
|
|
13
|
+
m.top.filePathMap = #FILE_PATH_MAP#
|
|
14
14
|
end function
|
|
15
15
|
|
|
16
16
|
function onEntryChange()
|
|
@@ -1,51 +1,105 @@
|
|
|
1
1
|
namespace rooibos.Coverage
|
|
2
|
+
function reportCodeCoverage() as void
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
4
|
+
if m.global._rbs_ccn = invalid
|
|
5
|
+
? "There was no rooibos code coverage component - not generating coverage report"
|
|
6
|
+
return
|
|
7
|
+
end if
|
|
8
|
+
? ""
|
|
9
|
+
? "...Generating code coverage report"
|
|
10
|
+
? ""
|
|
11
|
+
m.global._rbs_ccn.save = true
|
|
12
|
+
cc = m.global._rbs_ccn
|
|
13
|
+
hitFiles = []
|
|
14
|
+
missFiles = []
|
|
15
|
+
allLinesCount = 0
|
|
16
|
+
allLinesHit = 0
|
|
17
|
+
for each key in cc.expectedMap
|
|
18
|
+
filename = cc.filePathMap[key]
|
|
19
|
+
expectedCount = cc.expectedMap[key].count()
|
|
20
|
+
allLinesCount += expectedCount
|
|
21
|
+
if expectedCount > 0
|
|
22
|
+
if cc.resolvedMap[key] <> invalid
|
|
23
|
+
resolvedCount = cc.resolvedMap[key].count()
|
|
24
|
+
allLinesHit += resolvedCount
|
|
25
|
+
resolvedPercent = (resolvedCount / expectedCount) * 100
|
|
26
|
+
hitFiles.push({ percent: resolvedPercent, text: filename + ": " + str(resolvedPercent).trim() + "% (" + stri(resolvedCount).trim() + "/" + stri(expectedCount).trim() + ")" })
|
|
27
|
+
else
|
|
28
|
+
missFiles.push(filename + ": MISS!")
|
|
29
|
+
end if
|
|
30
|
+
end if
|
|
31
|
+
end for
|
|
32
|
+
allLinesPercent = (allLinesHit / allLinesCount) * 100
|
|
33
|
+
? ""
|
|
34
|
+
? ""
|
|
35
|
+
? "+++++++++++++++++++++++++++++++++++++++++++"
|
|
36
|
+
? "Code Coverage Report"
|
|
37
|
+
? "+++++++++++++++++++++++++++++++++++++++++++"
|
|
38
|
+
? ""
|
|
39
|
+
? "Total Coverage: " ; str(allLinesPercent).trim() ; "% (" ; stri(allLinesHit).trim() ; "/" + stri(allLinesCount).trim() ; ")"
|
|
40
|
+
? "Files: " ; cc.resolvedMap.count(); "/" ; cc.expectedMap.count()
|
|
41
|
+
? ""
|
|
42
|
+
? "HIT FILES"
|
|
43
|
+
? "---------"
|
|
44
|
+
hitFiles.SortBy("percent")
|
|
45
|
+
for i = 0 to hitFiles.count() - 1
|
|
46
|
+
? hitFiles[i].text
|
|
47
|
+
end for
|
|
48
|
+
? ""
|
|
49
|
+
? "MISSED FILES"
|
|
50
|
+
? "------------"
|
|
51
|
+
for i = 0 to missFiles.count() - 1
|
|
52
|
+
? missFiles[i]
|
|
53
|
+
end for
|
|
54
|
+
|
|
55
|
+
end function
|
|
56
|
+
|
|
57
|
+
function createLCovOutput()
|
|
58
|
+
? "Generating lcov.info file..."
|
|
59
|
+
|
|
60
|
+
cc = m.global._rbs_ccn
|
|
61
|
+
expectedMap = cc.expectedMap
|
|
62
|
+
filePathMap = cc.filePathMap
|
|
63
|
+
resolvedMap = cc.resolvedMap
|
|
64
|
+
|
|
65
|
+
buffer = ""
|
|
66
|
+
|
|
67
|
+
for each module in filePathMap.items()
|
|
68
|
+
moduleNumber = module.key
|
|
69
|
+
filePath = module.value
|
|
70
|
+
packageName = "."
|
|
71
|
+
|
|
72
|
+
relativePath = filePath.replace("pkg:", packageName)
|
|
73
|
+
sanitizedPath = relativePath.replace("\\", "/")
|
|
74
|
+
|
|
75
|
+
buffer = buffer + "TN:" + chr(10)
|
|
76
|
+
buffer = buffer + "SF:" + sanitizedPath + chr(10)
|
|
77
|
+
|
|
78
|
+
for each expected in expectedMap[moduleNumber]
|
|
79
|
+
lineNumber = expected[0]
|
|
80
|
+
SHIFT = 1
|
|
81
|
+
|
|
82
|
+
if resolvedMap[moduleNumber] <> invalid and resolvedMap[moduleNumber].doesExist(str(lineNumber))
|
|
83
|
+
buffer = buffer + "DA:" + str(lineNumber + SHIFT) + ",1" + chr(10)
|
|
84
|
+
else
|
|
85
|
+
buffer = buffer + "DA:" + str(lineNumber + SHIFT) + ",0" + chr(10)
|
|
86
|
+
end if
|
|
87
|
+
end for
|
|
88
|
+
|
|
89
|
+
buffer = buffer + "end_of_record" + chr(10)
|
|
90
|
+
end for
|
|
91
|
+
return buffer
|
|
92
|
+
end function
|
|
93
|
+
|
|
94
|
+
function printLCovInfo()
|
|
95
|
+
?
|
|
96
|
+
? "+++++++++++++++++++++++++++++++++++++++++++"
|
|
97
|
+
? "LCOV.INFO FILE"
|
|
98
|
+
? "+++++++++++++++++++++++++++++++++++++++++++"
|
|
99
|
+
?
|
|
100
|
+
? "+-=-coverage:start"
|
|
101
|
+
? rooibos.coverage.createLCovOutput()
|
|
102
|
+
? "+-=-coverage:end"
|
|
103
|
+
end function
|
|
50
104
|
|
|
51
105
|
end namespace
|
|
@@ -18,7 +18,7 @@ namespace rooibos
|
|
|
18
18
|
screen.show()
|
|
19
19
|
|
|
20
20
|
m.global = screen.getGlobalNode()
|
|
21
|
-
m.global.addFields({ "
|
|
21
|
+
m.global.addFields({ "testsScene": scene })
|
|
22
22
|
|
|
23
23
|
if scene.hasField("isReadyToStartTests") and scene.isReadyToStartTests = false
|
|
24
24
|
? "The scene is not ready yet - waiting for it to set isReadyToStartTests to true"
|
|
@@ -106,15 +106,17 @@ namespace rooibos
|
|
|
106
106
|
}
|
|
107
107
|
m.nodeContext.global.testsScene.rooibosTestResult = rooibosResult
|
|
108
108
|
|
|
109
|
-
'
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
109
|
+
'bs:disable-next-line
|
|
110
|
+
if Rooibos.Common.isFunction(rooibos.Coverage.reportCodeCoverage)
|
|
111
|
+
'bs:disable-next-line
|
|
112
|
+
rooibos.Coverage.reportCodeCoverage()
|
|
113
|
+
|
|
114
|
+
if m.config.printLcov = true
|
|
115
|
+
rooibos.Coverage.printLCovInfo()
|
|
116
|
+
end if
|
|
117
|
+
else
|
|
118
|
+
? "rooibos.Coverage.reportCodeCoverage is not a function"
|
|
119
|
+
end if
|
|
118
120
|
if m.config.sendHomeOnFinish <> false
|
|
119
121
|
m.sendHomeKeypress()
|
|
120
122
|
end if
|
|
@@ -92,7 +92,7 @@ class RooibosAnnotation {
|
|
|
92
92
|
let describeAnnotations = statement.annotations.filter((a) => getAnnotationType(a.name) === AnnotationType.Describe);
|
|
93
93
|
if (describeAnnotations.length > 1) {
|
|
94
94
|
for (let a of describeAnnotations) {
|
|
95
|
-
Diagnostics_1.diagnosticMultipleDescribeAnnotations(file, a);
|
|
95
|
+
(0, Diagnostics_1.diagnosticMultipleDescribeAnnotations)(file, a);
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
for (let annotation of statement.annotations) {
|
|
@@ -142,13 +142,13 @@ class RooibosAnnotation {
|
|
|
142
142
|
case AnnotationType.It:
|
|
143
143
|
const testName = annotation.getArguments()[0];
|
|
144
144
|
if (!testName || testName.trim() === '') {
|
|
145
|
-
Diagnostics_1.diagnosticNoTestNameDefined(file, annotation);
|
|
145
|
+
(0, Diagnostics_1.diagnosticNoTestNameDefined)(file, annotation);
|
|
146
146
|
}
|
|
147
147
|
let newAnnotation = new RooibosAnnotation(file, annotation, annotationType, annotation.name, testName, isIgnore, isSolo, undefined, undefined, tags, noCatch);
|
|
148
148
|
newAnnotation.isAsync = async;
|
|
149
149
|
newAnnotation.asyncTimeout = asyncTimeout === -1 ? 2000 : asyncTimeout;
|
|
150
150
|
if (testAnnotation) {
|
|
151
|
-
Diagnostics_1.diagnosticMultipleTestOnFunctionDefined(file, newAnnotation.annotation);
|
|
151
|
+
(0, Diagnostics_1.diagnosticMultipleTestOnFunctionDefined)(file, newAnnotation.annotation);
|
|
152
152
|
}
|
|
153
153
|
else {
|
|
154
154
|
testAnnotation = newAnnotation;
|
|
@@ -188,11 +188,11 @@ class RooibosAnnotation {
|
|
|
188
188
|
this.params.push(new AnnotationParams(annotation, rawParams, annotation.range.start.line, annotation.getArguments(), isIgnore, isSolo, noCatch));
|
|
189
189
|
}
|
|
190
190
|
else {
|
|
191
|
-
Diagnostics_1.diagnosticIllegalParams(file, annotation);
|
|
191
|
+
(0, Diagnostics_1.diagnosticIllegalParams)(file, annotation);
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
catch (e) {
|
|
195
|
-
Diagnostics_1.diagnosticIllegalParams(file, annotation);
|
|
195
|
+
(0, Diagnostics_1.diagnosticIllegalParams)(file, annotation);
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Annotation.js","sourceRoot":"","sources":["../../../src/lib/rooibos/Annotation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Annotation.js","sourceRoot":"","sources":["../../../src/lib/rooibos/Annotation.ts"],"names":[],"mappings":";;;AACA,sDAA4K;AAE5K,IAAY,cAmBX;AAnBD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,2BAAS,CAAA;IACT,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,qCAAmB,CAAA;IACnB,iCAAe,CAAA;IACf,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;IACjB,+CAA6B,CAAA;IAC7B,2CAAyB,CAAA;IACzB,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,qCAAmB,CAAA;IACnB,6CAA2B,CAAA;AAC/B,CAAC,EAnBW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAmBzB;AAED,IAAI,gBAAgB,GAAG;IACnB,KAAK,EAAE,cAAc,CAAC,SAAS;IAC/B,QAAQ,EAAE,cAAc,CAAC,QAAQ;IACjC,EAAE,EAAE,cAAc,CAAC,EAAE;IACrB,MAAM,EAAE,cAAc,CAAC,MAAM;IAC7B,IAAI,EAAE,cAAc,CAAC,IAAI;IACzB,MAAM,EAAE,cAAc,CAAC,QAAQ;IAC/B,KAAK,EAAE,cAAc,CAAC,KAAK;IAC3B,QAAQ,EAAE,cAAc,CAAC,QAAQ;IACjC,UAAU,EAAE,cAAc,CAAC,UAAU;IACrC,SAAS,EAAE,cAAc,CAAC,SAAS;IACnC,MAAM,EAAE,cAAc,CAAC,MAAM;IAC7B,YAAY,EAAE,cAAc,CAAC,YAAY;IACzC,UAAU,EAAE,cAAc,CAAC,UAAU;IACrC,KAAK,EAAE,cAAc,CAAC,KAAK;IAC3B,IAAI,EAAE,cAAc,CAAC,IAAI;IACzB,OAAO,EAAE,cAAc,CAAC,OAAO;IAC/B,WAAW,EAAE,cAAc,CAAC,WAAW;CAC1C,CAAC;AAOF,MAAa,gBAAgB;IAEzB,YACW,UAAgC,EAChC,IAAY,EACZ,UAAkB,EAClB,MAAa,EACb,WAAW,KAAK,EAChB,SAAS,KAAK,EACd,UAAU,KAAK,EACf,cAAc,KAAK;QAPnB,eAAU,GAAV,UAAU,CAAsB;QAChC,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAO;QACb,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAQ;IAG9B,CAAC;CACJ;AAdD,4CAcC;AACD,MAAa,iBAAiB;IAI1B;;;OAGG;IACH,YACW,IAAa,EACb,UAAgC,EAChC,cAA8B,EAC9B,IAAY,EACZ,IAAY,EACZ,WAAW,KAAK,EAChB,SAAS,KAAK,EACd,SAA6B,EAAE,EAC/B,QAAiB,EACxB,UAAoB,EAAE,EACf,UAAU,KAAK,EACf,cAAc,KAAK;QAXnB,SAAI,GAAJ,IAAI,CAAS;QACb,eAAU,GAAV,UAAU,CAAsB;QAChC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAyB;QAC/B,aAAQ,GAAR,QAAQ,CAAS;QAEjB,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAQ;QAKvB,kBAAa,GAAG,KAAK,CAAC;QAHzB,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAS,OAAO,CAAC,CAAC;IACzC,CAAC;IAIM,MAAM,CAAC,aAAa,CAAC,IAAa,EAAE,SAAoB;;QAE3D,sDAAsD;QACtD,IAAI,eAAkC,CAAC;QACvC,IAAI,cAAiC,CAAC;QACtC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,GAAG,EAAc,CAAC;QAC1B,IAAI,MAAA,SAAS,CAAC,WAAW,0CAAE,MAAM,EAAE;YAC/B,IAAI,mBAAmB,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,CAAC;YACrH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,KAAK,IAAI,CAAC,IAAI,mBAAmB,EAAE;oBAC/B,IAAA,mDAAqC,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAClD;aACJ;YACD,KAAK,IAAI,UAAU,IAAI,SAAS,CAAC,WAAW,EAAE;gBAC1C,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC1D,QAAQ,cAAc,EAAE;oBACpB,KAAK,cAAc,CAAC,WAAW;wBAC3B,WAAW,GAAG,IAAI,CAAC;wBACnB,MAAM;oBACV,KAAK,cAAc,CAAC,KAAK;wBACrB,KAAK,GAAG,IAAI,CAAC;wBACb,kDAAkD;wBAClD,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC3G,MAAM;oBACV,KAAK,cAAc,CAAC,OAAO;wBACvB,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;oBACV,KAAK,cAAc,CAAC,IAAI;wBACpB,MAAM,GAAG,IAAI,CAAC;wBACd,MAAM;oBACV,KAAK,cAAc,CAAC,QAAQ;wBACxB,QAAQ,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAW,CAAC;wBAClD,MAAM;oBACV,KAAK,cAAc,CAAC,IAAI;wBACpB,IAAI,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC1D,MAAM;oBACV,KAAK,cAAc,CAAC,MAAM;wBACtB,QAAQ,GAAG,IAAI,CAAC;wBAChB,MAAM;oBACV,KAAK,cAAc,CAAC,UAAU,CAAC;oBAC/B,KAAK,cAAc,CAAC,SAAS,CAAC;oBAC9B,KAAK,cAAc,CAAC,KAAK,CAAC;oBAC1B,KAAK,cAAc,CAAC,QAAQ;wBACxB,cAAc,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;wBAC3G,MAAM;oBACV,KAAK,cAAc,CAAC,QAAQ,CAAC;oBAC7B,KAAK,cAAc,CAAC,SAAS;wBACzB,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAW,CAAC;wBACzD,eAAe,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBACpK,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;wBAChC,eAAe,CAAC,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;wBAC1E,QAAQ,GAAG,IAAI,CAAC;wBAChB,MAAM,GAAG,KAAK,CAAC;wBACf,QAAQ,GAAG,KAAK,CAAC;wBACjB,KAAK,GAAG,KAAK,CAAC;wBACd,YAAY,GAAG,CAAC,CAAC,CAAC;wBAClB,MAAM;oBACV,KAAK,cAAc,CAAC,EAAE;wBAClB,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAW,CAAC;wBACxD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;4BACrC,IAAA,yCAA2B,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;yBACjD;wBACD,IAAI,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;wBAC9J,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;wBAC9B,aAAa,CAAC,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;wBACvE,IAAI,cAAc,EAAE;4BAChB,IAAA,qDAAuC,EAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;yBAC3E;6BAAM;4BACH,cAAc,GAAG,aAAa,CAAC;yBAClC;wBACD,MAAM,GAAG,KAAK,CAAC;wBACf,QAAQ,GAAG,KAAK,CAAC;wBACjB,KAAK,GAAG,KAAK,CAAC;wBACd,YAAY,GAAG,CAAC,CAAC,CAAC;wBAClB,MAAM;oBACV,KAAK,cAAc,CAAC,MAAM,CAAC;oBAC3B,KAAK,cAAc,CAAC,UAAU,CAAC;oBAC/B,KAAK,cAAc,CAAC,YAAY;wBAC5B,IAAI,cAAc,EAAE;4BAChB,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;yBACzE;6BAAM;4BACH,OAAO;yBACV;wBACD,MAAM;oBACV,KAAK,cAAc,CAAC,IAAI,CAAC;oBACzB;wBACI,SAAS;iBAChB;aACJ;SACJ;QACD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;IAChF,CAAC;IAEM,WAAW,CAAC,IAAa,EAAE,UAAgC,EAAE,cAA8B,EAAE,OAAgB;QAChH,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;QAC1D,IAAI,MAAM,GAAG,cAAc,KAAK,cAAc,CAAC,UAAU,CAAC;QAC1D,IAAI,QAAQ,GAAG,cAAc,KAAK,cAAc,CAAC,YAAY,CAAC;QAC9D,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;QACD,IAAI;YACA,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;aAC3J;iBAAM;gBACH,IAAA,qCAAuB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;aAC7C;SACJ;QAAC,OAAO,CAAC,EAAE;YACR,IAAA,qCAAuB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAC7C;IACL,CAAC;CAEJ;AAjJD,8CAiJC;AAED,SAAgB,iBAAiB,CAAC,IAAY;IAC1C,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC;AACvE,CAAC;AAFD,8CAEC"}
|
|
@@ -1,114 +1,162 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CodeCoverageProcessor = void 0;
|
|
3
|
+
exports.CodeCoverageProcessor = exports.CodeCoverageLineType = void 0;
|
|
4
|
+
const brighterscript_1 = require("brighterscript");
|
|
5
|
+
const brighterscript = require("brighterscript");
|
|
6
|
+
const RawCodeStatement_1 = require("./RawCodeStatement");
|
|
7
|
+
const BrsTranspileState_1 = require("brighterscript/dist/parser/BrsTranspileState");
|
|
8
|
+
const vscode_languageserver_types_1 = require("vscode-languageserver-types");
|
|
9
|
+
const RawCodeExpression_1 = require("./RawCodeExpression");
|
|
10
|
+
var CodeCoverageLineType;
|
|
11
|
+
(function (CodeCoverageLineType) {
|
|
12
|
+
CodeCoverageLineType[CodeCoverageLineType["noCode"] = 0] = "noCode";
|
|
13
|
+
CodeCoverageLineType[CodeCoverageLineType["code"] = 1] = "code";
|
|
14
|
+
CodeCoverageLineType[CodeCoverageLineType["condition"] = 2] = "condition";
|
|
15
|
+
CodeCoverageLineType[CodeCoverageLineType["branch"] = 3] = "branch";
|
|
16
|
+
})(CodeCoverageLineType = exports.CodeCoverageLineType || (exports.CodeCoverageLineType = {}));
|
|
4
17
|
class CodeCoverageProcessor {
|
|
5
|
-
constructor(builder) {
|
|
6
|
-
this.
|
|
7
|
-
|
|
18
|
+
constructor(builder, fileFactory) {
|
|
19
|
+
this.coverageBrsTemplate = `
|
|
20
|
+
function RBS_CC_#ID#_reportLine(lineNumber, reportType = 1)
|
|
21
|
+
if m.global = invalid
|
|
22
|
+
'? "global is not available in this scope!! it is not possible to record coverage: #FILE_PATH#(lineNumber)"
|
|
23
|
+
return true
|
|
24
|
+
else
|
|
25
|
+
if m._rbs_ccn = invalid
|
|
26
|
+
'? "Coverage maps are not created - creating now"
|
|
27
|
+
if m.global._rbs_ccn = invalid
|
|
28
|
+
'? "Coverage maps are not created - creating now"
|
|
29
|
+
m.global.addFields({
|
|
30
|
+
"_rbs_ccn": createObject("roSGNode", "CodeCoverage")
|
|
31
|
+
})
|
|
32
|
+
end if
|
|
33
|
+
m._rbs_ccn = m.global._rbs_ccn
|
|
34
|
+
end if
|
|
35
|
+
end if
|
|
36
|
+
|
|
37
|
+
m._rbs_ccn.entry = {"f":"#ID#", "l":stri(lineNumber), "r":reportType}
|
|
38
|
+
return true
|
|
39
|
+
end function
|
|
40
|
+
`;
|
|
41
|
+
this.config = builder.options.rooibos || {};
|
|
42
|
+
this.expectedCoverageMap = {};
|
|
43
|
+
this.filePathMap = {};
|
|
44
|
+
this.fileId = 0;
|
|
45
|
+
this.fileFactory = fileFactory;
|
|
8
46
|
try {
|
|
9
|
-
// this._coverageBrsTemplate = fs.readFileSync(path.join(__dirname, './CodeCoverageTemplate.brs'), 'utf8');
|
|
10
|
-
// this._coverageComponentBrsTemplate = fs.readFileSync(path.join(__dirname, './CodeCoverage.brs'), 'utf8');
|
|
11
|
-
// this._coverageComponentXmlTemplate = fs.readFileSync(path.join(__dirname, './CodeCoverage.xml'), 'utf8');
|
|
12
|
-
// this._coverageSupportTemplate = fs.readFileSync(path.join(__dirname, './CodeCoverageSupport.brs'), 'utf8');
|
|
13
47
|
}
|
|
14
48
|
catch (e) {
|
|
15
|
-
|
|
49
|
+
console.log('Error:', e.stack);
|
|
16
50
|
}
|
|
17
51
|
}
|
|
18
|
-
generateMetadata() {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
52
|
+
generateMetadata(isUsingCoverage, program) {
|
|
53
|
+
if (isUsingCoverage) {
|
|
54
|
+
this.fileFactory.createCoverageComponent(program, this.expectedCoverageMap, this.filePathMap);
|
|
55
|
+
}
|
|
22
56
|
}
|
|
23
|
-
addCodeCoverage(file) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this._processFile();
|
|
57
|
+
addCodeCoverage(file, astEditor) {
|
|
58
|
+
if (this.config.isRecordingCodeCoverage) {
|
|
59
|
+
this.transpileState = new BrsTranspileState_1.BrsTranspileState(file);
|
|
60
|
+
this._processFile(file, astEditor);
|
|
28
61
|
}
|
|
29
|
-
//if matches glob
|
|
30
|
-
// this._processFile(file);
|
|
31
|
-
//
|
|
32
62
|
}
|
|
33
|
-
_processFile() {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
63
|
+
_processFile(file, astEditor) {
|
|
64
|
+
this.fileId++;
|
|
65
|
+
this.coverageMap = new Map();
|
|
66
|
+
this.executableLines = new Map();
|
|
67
|
+
this.processedStatements = new Set();
|
|
68
|
+
this.astEditor = astEditor;
|
|
69
|
+
file.ast.walk((0, brighterscript_1.createVisitor)({
|
|
70
|
+
ForStatement: (ds, parent, owner, key) => {
|
|
71
|
+
this.addStatement(ds);
|
|
72
|
+
ds.forToken.text = `${this.getFuncCallText(ds.range.start.line, CodeCoverageLineType.code)}: for`;
|
|
73
|
+
},
|
|
74
|
+
IfStatement: (ds, parent, owner, key) => {
|
|
75
|
+
var _a;
|
|
76
|
+
let ifStatement = ds;
|
|
77
|
+
while ((0, brighterscript_1.isIfStatement)(ifStatement)) {
|
|
78
|
+
this.addStatement(ds);
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
80
|
+
ifStatement.condition = new brighterscript.BinaryExpression(new RawCodeExpression_1.RawCodeExpression(this.getFuncCallText(ds.condition.range.start.line, CodeCoverageLineType.branch)), brighterscript.createToken(brighterscript.TokenKind.And), ifStatement.condition);
|
|
81
|
+
ifStatement = ifStatement.elseBranch;
|
|
82
|
+
}
|
|
83
|
+
let blockStatements = (_a = ifStatement === null || ifStatement === void 0 ? void 0 : ifStatement.statements) !== null && _a !== void 0 ? _a : [];
|
|
84
|
+
if ((blockStatements === null || blockStatements === void 0 ? void 0 : blockStatements.length) > 0) {
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
86
|
+
let coverageStatement = new RawCodeStatement_1.RawCodeStatement(this.getFuncCallText(ifStatement.range.start.line - 1, CodeCoverageLineType.branch));
|
|
87
|
+
blockStatements.splice(0, 0, coverageStatement);
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
GotoStatement: (ds, parent, owner, key) => {
|
|
91
|
+
this.addStatement(ds);
|
|
92
|
+
this.convertStatementToCoverageStatement(ds, CodeCoverageLineType.code, owner, key);
|
|
93
|
+
},
|
|
94
|
+
WhileStatement: (ds, parent, owner, key) => {
|
|
95
|
+
ds.tokens.while.text = `${this.getFuncCallText(ds.range.start.line, CodeCoverageLineType.code)}: while`;
|
|
96
|
+
},
|
|
97
|
+
ReturnStatement: (ds, parent, owner, key) => {
|
|
98
|
+
this.addStatement(ds);
|
|
99
|
+
this.convertStatementToCoverageStatement(ds, CodeCoverageLineType.code, owner, key);
|
|
100
|
+
},
|
|
101
|
+
ForEachStatement: (ds, parent, owner, key) => {
|
|
102
|
+
this.addStatement(ds);
|
|
103
|
+
ds.tokens.forEach.text = `${this.getFuncCallText(ds.range.start.line, CodeCoverageLineType.code)}: for each`;
|
|
104
|
+
},
|
|
105
|
+
ExitWhileStatement: (ds, parent, owner, key) => {
|
|
106
|
+
},
|
|
107
|
+
PrintStatement: (ds, parent, owner, key) => {
|
|
108
|
+
this.addStatement(ds);
|
|
109
|
+
this.convertStatementToCoverageStatement(ds, CodeCoverageLineType.code, owner, key);
|
|
110
|
+
},
|
|
111
|
+
DottedSetStatement: (ds, parent, owner, key) => {
|
|
112
|
+
this.addStatement(ds);
|
|
113
|
+
this.convertStatementToCoverageStatement(ds, CodeCoverageLineType.code, owner, key);
|
|
114
|
+
},
|
|
115
|
+
IndexedSetStatement: (ds, parent, owner, key) => {
|
|
116
|
+
this.addStatement(ds);
|
|
117
|
+
this.convertStatementToCoverageStatement(ds, CodeCoverageLineType.code, owner, key);
|
|
118
|
+
},
|
|
119
|
+
IncrementStatement: (ds, parent, owner, key) => {
|
|
120
|
+
this.addStatement(ds);
|
|
121
|
+
this.convertStatementToCoverageStatement(ds, CodeCoverageLineType.code, owner, key);
|
|
122
|
+
},
|
|
123
|
+
AssignmentStatement: (ds, parent, owner, key) => {
|
|
124
|
+
if (!brighterscript.isForStatement(parent)) {
|
|
125
|
+
this.addStatement(ds);
|
|
126
|
+
this.convertStatementToCoverageStatement(ds, CodeCoverageLineType.code, owner, key);
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
ExpressionStatement: (ds, parent, owner, key) => {
|
|
130
|
+
this.addStatement(ds);
|
|
131
|
+
this.convertStatementToCoverageStatement(ds, CodeCoverageLineType.code, owner, key);
|
|
132
|
+
}
|
|
133
|
+
}), { walkMode: brighterscript_1.WalkMode.visitAllRecursive });
|
|
134
|
+
this.expectedCoverageMap[this.fileId.toString().trim()] = Array.from(this.coverageMap);
|
|
135
|
+
this.filePathMap[this.fileId] = file.pkgPath;
|
|
136
|
+
this.addBrsAPIText(file);
|
|
137
|
+
}
|
|
138
|
+
convertStatementToCoverageStatement(statement, coverageType, owner, key) {
|
|
139
|
+
if (this.processedStatements.has(statement)) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const lineNumber = statement.range.start.line;
|
|
143
|
+
this.coverageMap.set(lineNumber, coverageType);
|
|
144
|
+
const parsed = brighterscript_1.Parser.parse(this.getFuncCallText(lineNumber, coverageType)).ast.statements[0];
|
|
145
|
+
this.astEditor.arraySplice(owner, key, 0, parsed);
|
|
146
|
+
// store the statement in a set to avoid handling again after inserting statement above
|
|
147
|
+
this.processedStatements.add(statement);
|
|
85
148
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
149
|
+
addBrsAPIText(file) {
|
|
150
|
+
const func = new RawCodeStatement_1.RawCodeStatement(this.coverageBrsTemplate.replace(/\#ID\#/g, this.fileId.toString().trim()), file, vscode_languageserver_types_1.Range.create(brighterscript_1.Position.create(1, 1), brighterscript_1.Position.create(1, 1)));
|
|
151
|
+
file.ast.statements.push(func);
|
|
89
152
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
// file.setFileContents(this._coverageComponentXmlTemplate);
|
|
95
|
-
//`Writing to ${file.fullPath}`);
|
|
96
|
-
// file.saveFileContents();
|
|
97
|
-
// file = new File(path.resolve(path.join(targetPath, 'components')), 'components', 'CodeCoverage.brs', '.brs');
|
|
98
|
-
// let template = this._coverageComponentBrsTemplate;
|
|
99
|
-
// template = template.replace(/\#EXPECTED_MAP\#/g, JSON.stringify(this._expectedCoverageMap));
|
|
100
|
-
// template = template.replace(/\#FILE_PATH_MAP\#/g, JSON.stringify(this._filePathMap));
|
|
101
|
-
// file.setFileContents(template);
|
|
102
|
-
//`Writing to ${file.fullPath}`);
|
|
103
|
-
// file.saveFileContents();
|
|
153
|
+
addStatement(statement, lineNumber) {
|
|
154
|
+
if (!this.executableLines.has(lineNumber)) {
|
|
155
|
+
this.executableLines.set(lineNumber, statement);
|
|
156
|
+
}
|
|
104
157
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
// let targetPath = path.resolve(this._program.options.rootDir);
|
|
108
|
-
// let file = new File(path.resolve(path.join(targetPath), 'source'), 'source', 'CodeCoverageSupport.brs', '.brs');
|
|
109
|
-
// file.setFileContents(this._coverageSupportTemplate);
|
|
110
|
-
//`Writing to ${file.fullPath}`);
|
|
111
|
-
// file.saveFileContents();
|
|
158
|
+
getFuncCallText(lineNumber, lineType) {
|
|
159
|
+
return `RBS_CC_${this.fileId}_reportLine(${lineNumber.toString().trim()}, ${lineType.toString().trim()})`;
|
|
112
160
|
}
|
|
113
161
|
}
|
|
114
162
|
exports.CodeCoverageProcessor = CodeCoverageProcessor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeCoverageProcessor.js","sourceRoot":"","sources":["../../../src/lib/rooibos/CodeCoverageProcessor.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"CodeCoverageProcessor.js","sourceRoot":"","sources":["../../../src/lib/rooibos/CodeCoverageProcessor.ts"],"names":[],"mappings":"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"}
|