tests/testthat/test-system-hardware.R

# tests/testthat/test-system-hardware.R

library(Capsule)

test_that("capture_system_libraries returns valid structure", {
  skip_on_cran()

  temp_dir <- tempdir()
  output_file <- file.path(temp_dir, "sys_libs.json")

  result <- capture_system_libraries(output_file)

  expect_type(result, "list")
  expect_true(file.exists(output_file))
  expect_true("os" %in% names(result))
  expect_true("r_blas" %in% names(result))
  expect_true("r_lapack" %in% names(result))

  # Clean up
  unlink(output_file)
})

test_that("capture_system_libraries works without output file", {
  skip_on_cran()

  result <- capture_system_libraries()

  expect_type(result, "list")
  expect_true("timestamp" %in% names(result))
  expect_type(result$os, "character")
})

test_that("capture_hardware returns valid structure", {
  skip_on_cran()

  temp_dir <- tempdir()
  output_file <- file.path(temp_dir, "hardware.json")

  result <- capture_hardware(output_file)

  expect_type(result, "list")
  expect_true(file.exists(output_file))
  expect_true("hostname" %in% names(result))
  expect_true("os" %in% names(result))
  expect_true("cpu" %in% names(result))
  expect_true("memory" %in% names(result))

  # Clean up
  unlink(output_file)
})

test_that("capture_hardware works without output file", {
  skip_on_cran()

  result <- capture_hardware()

  expect_type(result, "list")
  expect_true("timestamp" %in% names(result))
  expect_type(result$hostname, "character")
})

test_that("capture_hardware handles GPU detection gracefully", {
  skip_on_cran()

  result <- capture_hardware()

  # GPU info should be present even if no GPU
  expect_true("gpu" %in% names(result))
  expect_type(result$gpu, "list")
})

Try the Capsule package in your browser

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

Capsule documentation built on Nov. 11, 2025, 5:14 p.m.