1source("incl/start.R")
2stopCluster <- parallel::stopCluster
3
4message("*** Connections ...")
5
6con <- stdin()
7idx <- as.integer(con)
8id <- connectionId(con)
9valid <- isConnectionValid(con)
10stopifnot(inherits(con, "connection"), idx == 0L, id == 0L, isTRUE(valid))
11
12con <- stdout()
13idx <- as.integer(con)
14id <- connectionId(con)
15valid <- isConnectionValid(con)
16stopifnot(inherits(con, "connection"), idx == 1L, id == 1L, isTRUE(valid))
17
18con <- stderr()
19idx <- as.integer(con)
20id <- connectionId(con)
21valid <- isConnectionValid(con)
22stopifnot(inherits(con, "connection"), idx == 2L, id == 2L, isTRUE(valid))
23
24message("- Connections cannot be serialized")
25
26con <- file(tempfile(), open = "w")
27x <- list(value = 42, stderr = stderr(), con = con)
28y <- unserialize(serialize(x, connection = NULL))
29print(connectionId(x$stderr))
30print(connectionId(x$con))
31print(isConnectionValid(x$stderr))
32print(isConnectionValid(x$con))
33print(connectionId(y$stderr))
34print(connectionId(y$con))
35print(isConnectionValid(y$stderr))
36print(isConnectionValid(y$con))
37
38stopifnot(
39  identical(y$value, x$value),
40  connectionId(x$stderr) == 2L,
41  isConnectionValid(x$stderr),
42  isConnectionValid(y$stderr),
43  identical(connectionId(y$stderr), connectionId(x$stderr)),
44  connectionId(x$con) >= 3L,
45  isConnectionValid(x$con),
46  connectionId(y$con) == -1L,
47  !isConnectionValid(y$con)
48)
49close(con)
50
51message("*** Connections ... DONE")
52
53source("incl/end.R")
54