Skip to content

Commit 66fcd52

Browse files
committed
Add a gcov_flush() function
1 parent 7c93517 commit 66fcd52

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@
77
/src/broken.dSYM
88
/src/broken
99
/src/Makevars
10+
/.dev

R/nanoparquet-package.R

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,7 @@ NULL
3434
#' @seealso [write_parquet()] on how to select a non-default encoding when
3535
#' writing Parquet files.
3636
NULL
37+
38+
gcov_flush <- function() {
39+
.Call(np_gcov_flush)
40+
}

src/rwrapper.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,23 @@ SEXP is_ubsan_() {
125125
#endif
126126
}
127127

128+
// A function to flush test coverate data to disk
129+
#ifdef GCOV_COMPILE
130+
void __gcov_dump();
131+
void __gcov_reset();
132+
SEXP np_gcov_flush() {
133+
REprintf("Flushing coverage info\n");
134+
__gcov_dump();
135+
__gcov_reset();
136+
return R_NilValue;
137+
}
138+
#else
139+
SEXP np_gcov_flush(void) {
140+
return R_NilValue;
141+
}
142+
#endif
143+
144+
128145
// R native routine registration
129146
#define CALLDEF(name, n) \
130147
{ #name, (DL_FUNC)&name, n }
@@ -172,6 +189,8 @@ static const R_CallMethodDef R_CallDef[] = {
172189

173190
CALLDEF(is_asan_, 0),
174191
CALLDEF(is_ubsan_, 0),
192+
CALLDEF(np_gcov_flush, 0),
193+
175194
{NULL, NULL, 0}
176195
};
177196

0 commit comments

Comments
 (0)