clear_warnings <- function() last.warning <<- list() careless <- function(f) { function(...) { suppressWarnings(f(...)) } } fail_with <- function(expr, value) tryCatch(expr, error = function(cond) value) does_error <- function(expr) { didFail <- F tryCatch(expr, error = function(cond) didFail <<- T) didFail } count_warnings <- function(expr) { N <- 0 withCallingHandlers(expr, warning = function(cond) N <<- N + 1) N } record <- function(expr) { msgs <- c() rec <- function(cond) { msgs <<- c(msgs, cond$message); rlang::cnd_muffle(cond)} withCallingHandlers(expr, warning = rec, message = rec) msgs }