crew_test("crew_client() validate on an empty object", {
client <- crew_client(host = "127.0.0.1")
expect_silent(client$validate())
})
crew_test("crew_client() active bindings", {
client <- crew_client(
host = "127.0.0.1",
port = 123L,
seconds_interval = 123,
seconds_timeout = 456,
retry_tasks = FALSE
)
on.exit(client$terminate())
expect_equal(client$host, "127.0.0.1")
expect_equal(client$port, 123L)
expect_true(inherits(client$tls, "crew_class_tls"))
expect_equal(client$seconds_interval, 123)
expect_equal(client$seconds_timeout, 456)
expect_false(client$started)
expect_null(client$url)
expect_null(client$profile)
expect_null(client$client)
expect_null(client$dispatcher)
expect_silent(client$validate())
})
crew_test("crew_client() works", {
skip_on_cran()
skip_on_os("windows")
client <- crew_client(host = "127.0.0.1")
on.exit({
client$terminate()
rm(client)
crew_test_sleep()
})
expect_false(client$started)
expect_null(client$dispatcher)
expect_null(client$url)
expect_equal(client$resolved(), 0L)
expect_silent(client$start())
expect_silent(client$validate())
expect_true(client$started)
url <- client$url
expect_true(is.character(url) && length(url) == 1L)
expect_true(nzchar(url) && !anyNA(url))
expect_s3_class(client$client, "ps_handle")
expect_s3_class(client$dispatcher, "ps_handle")
expect_equal(length(client$dispatcher), 1L)
handle <- client$dispatcher
crew_retry(
~ps::ps_is_running(handle),
seconds_interval = 0.01,
seconds_timeout = 30
)
bin <- if_any(tolower(Sys.info()[["sysname"]]) == "windows", "R.exe", "R")
path <- file.path(R.home("bin"), bin)
call <- sprintf("mirai::daemon('%s', dispatcher = TRUE)", url)
px <- processx::process$new(command = path, args = c("-e", call))
crew_retry(
~{
identical(
as.integer(mirai::status(.compute = client$profile)$connections),
1L
)
},
seconds_interval = 0.5,
seconds_timeout = 60
)
task <- mirai::mirai(ps::ps_pid(), .compute = client$profile)
crew_retry(
~!nanonext::.unresolved(task),
seconds_interval = 0.5,
seconds_timeout = 10
)
expect_false(nanonext::.unresolved(task))
expect_true(is.numeric(task$data))
expect_true(abs(task$data - ps::ps_pid()) > 0.5)
expect_true(client$started)
expect_silent(client$start())
for (index in seq_len(2L)) {
expect_silent(client$terminate())
expect_false(client$started)
crew_retry(
~!ps::ps_is_running(handle),
seconds_interval = 0.01,
seconds_timeout = 30
)
}
px$signal(signal = crew_terminate_signal())
})
crew_test("crew_client() cover a line", {
client <- crew_client(host = "127.0.0.1")
private <- crew_private(client)
private$.started <- TRUE
private$.profile <- "abc"
expect_null(client$terminate())
})
crew_test("crew_client() deprecate tls_enable", {
expect_warning(
crew_client(host = "127.0.0.1", tls_enable = TRUE),
class = "crew_deprecate"
)
})
crew_test("crew_client() deprecate tls_config", {
expect_warning(
crew_client(host = "127.0.0.1", tls_config = list()),
class = "crew_deprecate"
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.