Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F100629286
index.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Feb 1, 07:35
Size
2 KB
Mime Type
text/x-c++
Expires
Mon, Feb 3, 07:35 (2 d)
Engine
blob
Format
Raw Data
Handle
24002862
Attached To
rOACCT Open Access Compliance Check Tool (OACCT)
index.js
View Options
/*
Copyright 2012-2015, Yahoo Inc.
Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
*/
'use strict'
;
const
{
ReportBase
}
=
require
(
'istanbul-lib-report'
);
class
LcovOnlyReport
extends
ReportBase
{
constructor
(
opts
)
{
super
();
opts
=
opts
||
{};
this
.
file
=
opts
.
file
||
'lcov.info'
;
this
.
projectRoot
=
opts
.
projectRoot
||
process
.
cwd
();
this
.
contentWriter
=
null
;
}
onStart
(
root
,
context
)
{
this
.
contentWriter
=
context
.
writer
.
writeFile
(
this
.
file
);
}
onDetail
(
node
)
{
const
fc
=
node
.
getFileCoverage
();
const
writer
=
this
.
contentWriter
;
const
functions
=
fc
.
f
;
const
functionMap
=
fc
.
fnMap
;
const
lines
=
fc
.
getLineCoverage
();
const
branches
=
fc
.
b
;
const
branchMap
=
fc
.
branchMap
;
const
summary
=
node
.
getCoverageSummary
();
const
path
=
require
(
'path'
);
writer
.
println
(
'TN:'
);
const
fileName
=
path
.
relative
(
this
.
projectRoot
,
fc
.
path
);
writer
.
println
(
'SF:'
+
fileName
);
Object
.
values
(
functionMap
).
forEach
(
meta
=>
{
// Some versions of the instrumenter in the wild populate 'loc'
// but not 'decl':
const
decl
=
meta
.
decl
||
meta
.
loc
;
writer
.
println
(
'FN:'
+
[
decl
.
start
.
line
,
meta
.
name
].
join
(
','
));
});
writer
.
println
(
'FNF:'
+
summary
.
functions
.
total
);
writer
.
println
(
'FNH:'
+
summary
.
functions
.
covered
);
Object
.
entries
(
functionMap
).
forEach
(([
key
,
meta
])
=>
{
const
stats
=
functions
[
key
];
writer
.
println
(
'FNDA:'
+
[
stats
,
meta
.
name
].
join
(
','
));
});
Object
.
entries
(
lines
).
forEach
(
entry
=>
{
writer
.
println
(
'DA:'
+
entry
.
join
(
','
));
});
writer
.
println
(
'LF:'
+
summary
.
lines
.
total
);
writer
.
println
(
'LH:'
+
summary
.
lines
.
covered
);
Object
.
entries
(
branches
).
forEach
(([
key
,
branchArray
])
=>
{
const
meta
=
branchMap
[
key
];
if
(
meta
)
{
const
{
line
}
=
meta
.
loc
.
start
;
branchArray
.
forEach
((
b
,
i
)
=>
{
writer
.
println
(
'BRDA:'
+
[
line
,
key
,
i
,
b
].
join
(
','
));
});
}
else
{
console
.
warn
(
'Missing coverage entries in'
,
fileName
,
key
);
}
});
writer
.
println
(
'BRF:'
+
summary
.
branches
.
total
);
writer
.
println
(
'BRH:'
+
summary
.
branches
.
covered
);
writer
.
println
(
'end_of_record'
);
}
onEnd
()
{
this
.
contentWriter
.
close
();
}
}
module
.
exports
=
LcovOnlyReport
;
Event Timeline
Log In to Comment