Nothing
test_that("read end first", {
skip_on_cran()
fifo <- tempfile()
on.exit(unlink(fifo), add = TRUE)
if (is_windows()) fifo <- basename(fifo)
reader <- conn_create_fifo(fifo)
expect_equal(
poll(list(reader), 10),
list("timeout")
)
expect_true(conn_is_incomplete(reader))
expect_true(ends_with(conn_file_name(reader), basename(fifo)))
writer <- conn_connect_fifo(fifo, write = TRUE)
expect_true(ends_with(conn_file_name(writer), basename(fifo)))
expect_equal(
conn_write(writer, "hello\nthere\n"),
raw(0)
)
expect_equal(
poll(list(reader), 1000),
list("ready")
)
# Windows might read nothing the first time
line <- conn_read_lines(reader, 1)
if (!length(line)) line <- conn_read_lines(reader, 1)
expect_equal(line, "hello")
rest <- conn_read_chars(reader)
expect_equal(rest, "there\n")
expect_true(conn_is_incomplete(reader))
expect_true(conn_is_incomplete(writer))
close(writer)
expect_equal(
conn_read_lines(reader),
character()
)
expect_false(conn_is_incomplete(reader))
})
test_that("write end first", {
skip_on_cran()
writer <- conn_create_fifo(write = TRUE)
# this currently fails on Windows if there is no reader attached
# we'll fix this eventually
if (is_windows()) {
expect_error(conn_write(writer, "testing\n"))
}
expect_true(conn_is_incomplete(writer))
reader <- conn_connect_fifo(conn_file_name(writer))
expect_equal(
poll(list(reader), 10),
list("timeout")
)
# Now we can write, on Windows as well
expect_equal(
conn_write(writer, "hello\nthere\n"),
raw(0)
)
expect_equal(
poll(list(reader), 1000),
list("ready")
)
# Windows might read nothing the first time
line <- conn_read_lines(reader, 1)
if (!length(line)) line <- conn_read_lines(reader, 1)
expect_equal(line, "hello")
rest <- conn_read_chars(reader)
expect_equal(rest, "there\n")
expect_true(conn_is_incomplete(reader))
expect_true(conn_is_incomplete(writer))
close(writer)
expect_equal(
conn_read_lines(reader),
character()
)
expect_false(conn_is_incomplete(reader))
})
test_that("write end first 2", {
skip_on_cran()
writer <- conn_create_fifo(write = TRUE)
reader <- conn_connect_fifo(conn_file_name(writer), read = TRUE)
expect_equal(
conn_write(writer, "hello\nthere\n"),
raw(0)
)
expect_equal(
poll(list(reader), 1000),
list("ready")
)
# Windows might read nothing the first time
line <- conn_read_lines(reader, 1)
if (!length(line)) line <- conn_read_lines(reader, 1)
expect_equal(line, "hello")
rest <- conn_read_chars(reader)
expect_equal(rest, "there\n")
expect_true(conn_is_incomplete(reader))
expect_true(conn_is_incomplete(writer))
close(writer)
expect_equal(
conn_read_lines(reader),
character()
)
expect_false(conn_is_incomplete(reader))
})
test_that("errors", {
skip_on_cran()
expect_error(
conn_create_fifo(read = TRUE, write= TRUE)
)
reader <- conn_create_fifo(read = TRUE)
on.exit(close(reader), add = TRUE)
expect_error(
conn_connect_fifo(read = TRUE, write = TRUE)
)
if (!is_windows()) {
expect_error(
conn_create_fifo(tempdir(), read = TRUE)
)
fifo <- tempfile()
expect_error(
conn_connect_fifo(fifo)
)
}
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.