R Under development (unstable) (2014-11-11 r66959) -- "Unsuffered Consequences"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> ## 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")
> 
> 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(out in opts)
+     for(err in opts) {
+         ## skip this for the sake of Unix-alikes
+         if(identical(err, TRUE) && !identical(out,TRUE)) next
+         cat(sprintf("\ntesting stdout = %s, stderr = %s\n",
+             deparse(out), deparse(err)))
+         process(system2("test-system2", stdout = out, stderr = err))
+     }

testing stdout = "", stderr = ""
stdout 1
stderr 1

testing stdout = "", stderr = NULL
stdout 1

testing stdout = "", stderr = FALSE
stdout 1

testing stdout = "", stderr = "o1.txt"
stdout 1
o1.txt:
stderr 1

testing stdout = "", stderr = "o2.txt"
stdout 1
o2.txt:
stderr 1

testing stdout = NULL, stderr = ""
stderr 1

testing stdout = NULL, stderr = NULL

testing stdout = NULL, stderr = FALSE

testing stdout = NULL, stderr = "o1.txt"
o1.txt:
stderr 1

testing stdout = NULL, stderr = "o2.txt"
o2.txt:
stderr 1

testing stdout = FALSE, stderr = ""
stderr 1

testing stdout = FALSE, stderr = NULL

testing stdout = FALSE, stderr = FALSE

testing stdout = FALSE, stderr = "o1.txt"
o1.txt:
stderr 1

testing stdout = FALSE, stderr = "o2.txt"
o2.txt:
stderr 1

testing stdout = TRUE, stderr = ""
stderr 1
value:
stdout 1

testing stdout = TRUE, stderr = NULL
value:
stdout 1

testing stdout = TRUE, stderr = FALSE
value:
stdout 1

testing stdout = TRUE, stderr = TRUE
value:
stdout 1
stderr 1

testing stdout = TRUE, stderr = "o1.txt"
value:
stdout 1
o1.txt:
stderr 1

testing stdout = TRUE, stderr = "o2.txt"
value:
stdout 1
o2.txt:
stderr 1

testing stdout = "o1.txt", stderr = ""
stderr 1
o1.txt:
stdout 1

testing stdout = "o1.txt", stderr = NULL
o1.txt:
stdout 1

testing stdout = "o1.txt", stderr = FALSE
o1.txt:
stdout 1

testing stdout = "o1.txt", stderr = "o1.txt"
o1.txt:
stdout 1
stderr 1

testing stdout = "o1.txt", stderr = "o2.txt"
o1.txt:
stdout 1
o2.txt:
stderr 1

testing stdout = "o2.txt", stderr = ""
stderr 1
o2.txt:
stdout 1

testing stdout = "o2.txt", stderr = NULL
o2.txt:
stdout 1

testing stdout = "o2.txt", stderr = FALSE
o2.txt:
stdout 1

testing stdout = "o2.txt", stderr = "o1.txt"
o1.txt:
stderr 1
o2.txt:
stdout 1

testing stdout = "o2.txt", stderr = "o2.txt"
o2.txt:
stdout 1
stderr 1
> 
> 
> process(system("test-system2"))
stdout 1
stderr 1
> process(system("test-system2", ignore.stdout = TRUE))
stderr 1
> process(system("test-system2", ignore.stderr = TRUE))
stdout 1
> process(system("test-system2", ignore.stdout = TRUE, ignore.stderr = TRUE))
> 
> process(system("test-system2", TRUE))
stderr 1
value:
stdout 1
> process(system("test-system2", TRUE, ignore.stdout = TRUE))
stderr 1
value:
> process(system("test-system2", TRUE, ignore.stdout = TRUE, ignore.stderr = TRUE))
value:
> 
> process(system2("test-system2", "1", input=letters[1:4]))
stdout 1
stderr 1
stdin: a
stdin: b
stdin: c
stdin: d
> process(system2("test-system2", "1", input=letters[1:4], stdout = TRUE))
stderr 1
value:
stdout 1
stdin: a
stdin: b
stdin: c
stdin: d
> 
> process(system("test-system2 1", input=letters[1:4]))
stdout 1
stderr 1
stdin: a
stdin: b
stdin: c
stdin: d
> process(system("test-system2 1", input=letters[1:4], intern = TRUE))
stderr 1
value:
stdout 1
stdin: a
stdin: b
stdin: c
stdin: d
> 
> tmp <- tempfile()
> writeLines(letters[5:7], tmp)
> process(system2("test-system2", "1", stdin = tmp))
stdout 1
stderr 1
stdin: e
stdin: f
stdin: g
> process(system2("test-system2", "1", stdin = tmp, stdout = TRUE))
stderr 1
value:
stdout 1
stdin: e
stdin: f
stdin: g
> process(system2("test-system2", "1", stdin = tmp, stdout = TRUE, stderr = TRUE))
value:
stdout 1
stderr 1
stdin: e
stdin: f
stdin: g
> process(system2("test-system2", "1", stdin = tmp, stdout = "o1.txt", stderr = "o1.txt"))
o1.txt:
stdout 1
stderr 1
stdin: e
stdin: f
stdin: g
> process(system2("test-system2", "1", stdin = tmp, stdout = "o1.txt", stderr = "o2.txt"))
o1.txt:
stdout 1
stdin: e
stdin: f
stdin: g
o2.txt:
stderr 1
> 
> unlink(c(tmp, outs))
> 
> print(system("test-system2 5"))
stdout 1
stderr 1
[1] 5
> system("test-system2 6", intern = TRUE)
stderr 1
Warning: running command 'test-system2 6' had status 6
[1] "stdout 1"
attr(,"status")
[1] 6
> print(system2("test-system2", "7"))
stdout 1
stderr 1
[1] 7
> system2("test-system2", "8", stdout=TRUE)
stderr 1
Warning: running command ''test-system2' 8' had status 8
[1] "stdout 1"
attr(,"status")
[1] 8
>