Rev 87961 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
## tests of options in system() and system2.options(warn = 1)opts <- list("", NULL, FALSE, TRUE, "o1.txt", "o2.txt")outs <- c("o1.txt", "o2.txt")tos <- c(0, 10)process <- function(res){unlink(outs)if(is.character(res)) {cat("value:\n")writeLines(res)}for(f in outs)if(file.exists(f)) {cat(f, ":\n", sep = "")writeLines(readLines(f))}}for(to in tos)for(out in opts)for(err in opts) {## skip this for the sake of Unix-alikesif(identical(err, TRUE) && !identical(out,TRUE)) nextcat(sprintf("\ntesting stdout = %s, stderr = %s\n",deparse(out), deparse(err)))process(system2("test-system2", stdout = out, stderr = err,timeout = to))}for(to in tos) {# timeout 0 uses different implementations from timeout 10# the outputs should be identicalprocess(system("test-system2", timeout = to))process(system("test-system2", ignore.stdout = TRUE, timeout = to))process(system("test-system2", ignore.stderr = TRUE, timeout = to))process(system("test-system2", ignore.stdout = TRUE, ignore.stderr = TRUE,timeout = to))process(system("test-system2", TRUE, timeout = to))process(system("test-system2", TRUE, ignore.stdout = TRUE, timeout = to))process(system("test-system2", TRUE, ignore.stdout = TRUE,ignore.stderr = TRUE, timeout = to))process(system2("test-system2", "1", input=letters[1:4], timeout = to))process(system2("test-system2", "1", input=letters[1:4], stdout = TRUE,timeout = to))process(system("test-system2 1", input=letters[1:4], timeout = to))process(system("test-system2 1", input=letters[1:4], intern = TRUE,timeout = to))tmp <- tempfile()writeLines(letters[5:7], tmp)process(system2("test-system2", "1", stdin = tmp, timeout = to))process(system2("test-system2", "1", stdin = tmp, stdout = TRUE,timeout = to))process(system2("test-system2", "1", stdin = tmp, stdout = TRUE,stderr = TRUE, timeout = to))process(system2("test-system2", "1", stdin = tmp, stdout = "o1.txt",stderr = "o1.txt", timeout = to))process(system2("test-system2", "1", stdin = tmp, stdout = "o1.txt",stderr = "o2.txt", timeout = to))unlink(c(tmp, outs))print(system("test-system2 5", timeout = to))system("test-system2 6", intern = TRUE, timeout = to)print(system2("test-system2", "7", timeout = to))system2("test-system2", "8", stdout=TRUE, timeout = to)}# tests that time out# (each runs for a second)system("./test-system2 sleep 10", timeout = 1)system("./test-system2 infinite_loop", timeout = 1)system("./test-system2 sleep 10", timeout = 1, intern = T)system("./test-system2 infinite_loop", timeout = 1, intern = T)## test results with timeout setstopifnot(identical(system("./test-system2 2", timeout = 1), 2L))stopifnot(identical(system("./test-system2 2", timeout = 1, intern = T),structure("stdout 1", status = 2L)))