tests/testthat/test-threads.R

test_that("parallel requests", {
  url <- httpbin$url("/delay/0.5")
  p <- curl::new_pool()
  handles <- replicate(3, curl::new_handle(url = url, http_version = 2))
  resps <- list()
  for (handle in handles) {
    curl::multi_add(
      handle,
      done = function(x) resps <<- c(resps, list(x)),
      fail = stop,
      pool = p
    )
  }
  st <- system.time(curl::multi_run(timeout = 5, pool = p))
  expect_true(st[["elapsed"]] >= 0.5)
  expect_true(st[["elapsed"]] < 1.5)
  expect_equal(resps[[1]]$status_code, 200L)
  expect_equal(resps[[2]]$status_code, 200L)
  expect_equal(resps[[3]]$status_code, 200L)
})

Try the webfakes package in your browser

Any scripts or data that you put into this service are public.

webfakes documentation built on June 25, 2025, 1:07 a.m.