Running ‘testthat.R’ [146s/186s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > 
  > library(testthat)
  > library(renv)
  
  Attaching package: 'renv'
  
  The following object is masked from 'package:stats':
  
      update
  
  The following objects are masked from 'package:utils':
  
      history, upgrade
  
  The following objects are masked from 'package:base':
  
      load, remove
  
  > 
  > renv:::renv_tests_init()
  > renv:::renv_tests_diagnostics()
  The following R libraries are set:
  
  	- /tmp/RtmppVaG3l/working_dir/RtmpE0aiWC/renv-library-398110aa5939
  	- /tmp/RtmppVaG3l/working_dir/RtmpE0aiWC/renv-system-library
  
  The following repositories are set:
  
  	CRAN: file:///tmp/RtmppVaG3l/working_dir/RtmpE0aiWC/renv-repos-39815ffd1427
  
  The following renv root directory is being used:
  
  	- /tmp/RtmppVaG3l/working_dir/RtmpE0aiWC/renv-root-3981c8b20f4
  
  The following renv cache directory is being used:
  
  	- /tmp/RtmppVaG3l/working_dir/RtmpE0aiWC/renv-root-3981c8b20f4/cache/v5/R-4.0/i386-pc-solaris2.10
  
  The following packages are available in the test repositories:
  
  	bread, breakfast, brunch, egg, halloween, oatmeal, packrat,
  	renv, toast, unixonly
  
  The following PATH is set:
  
  	- .
  	- /home/ripley/bin
  	- /usr/local/bin
  	- /opt/developerstudio12.5/bin
  	- /usr/xpg4/bin
  	- /usr/ccs/bin
  	- /usr/bin/X11
  	- /usr/openwin/bin
  	- /opt/jdk1.7.0_65//bin
  	- /bin
  	- /usr/bin
  	- /usr/sbin
  	- /sbin
  	- /opt/csw/bin
  	- /usr/sfw/bin
  	- /usr/local/texlive/current/bin/i386-solaris
  	- /opt/SUNWhpc/HPC8.2.1c/sun/bin
  	- /opt/csw/gcc4/bin
  
  The following environment variables of interest are set:
  
  	HOME        : "/home/ripley"
  	R_ARCH      : ""
  	R_HOME      : "/home/ripley/R/cc"
  	R_LIBS      : "/tmp/RtmppVaG3l/RLIBS_17bc7fa71117"
  	R_LIBS_SITE : "no_such_dir"
  	R_LIBS_USER : ""
  	R_USER      : <NA>
  	R_ZIPCMD    : "/bin/zip"
  	TAR         : "/opt/csw/bin/gtar"
  	TEMP        : <NA>
  	TMP         : <NA>
  	TMPDIR      : "/tmp/RtmppVaG3l/working_dir"
  
  > 
  > reporter <- renv:::renv_tests_reporter()
  > test_check("renv", reporter = reporter)
  ── test-aaa.R ──────────────────────────────────────────────────────────────────
  
  ── test-actions.R ──────────────────────────────────────────────────────────────
  ● we can query actions for a sample project ..................... [PASS /   19s]
  ● we can query actions when no lockfile has yet been  <...> ..... [PASS / 0.13s]
  
  ── test-activate.R ─────────────────────────────────────────────────────────────
  ── Skip (test-activate.R:6:3): renv can bootstrap itself if not installed ──────
  Reason: On CRAN
  
  ● renv can bootstrap itself if not installed .................... [SKIP / <0.1s]
  
  ── test-archive.R ──────────────────────────────────────────────────────────────
  ● renv reports errors when decompressing invalid archives ....... [PASS / 0.14s]
  ● we can successfully compress / decompress some samp <...> ..... [PASS / 0.25s]
  
  ── test-authentication.R ───────────────────────────────────────────────────────
  ── ERROR (test-authentication.R:11:5): renv.auth is respected in various context
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─base::eval(...)
    2.   └─base::eval(...)
    3.     ├─base::local(...) test-authentication.R:11:4
    4.     │ └─base::eval.parent(substitute(eval(quote(expr), envir)))
    5.     │   └─base::eval(expr, p)
    6.     │     └─base::eval(expr, p)
    7.     └─base::eval(...)
    8.       └─base::eval(...)
    9.         └─testthat::expect_true(Sys.getenv("GITHUB_PAT") == "<pat>") test-authentication.R:13:6
   10.           └─testthat:::expect_waldo_constant(act, TRUE, info = info)
   11.             └─testthat:::waldo_compare(...)
   12.               └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
   13.                 └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
   14.                   └─waldo:::compare_logical(x, y, paths)
   15.                     └─waldo:::diff_element(...)
   16.                       └─waldo:::ses_context(x, y)
   17.                         └─waldo:::ses(x, y)
   18.                           └─diffobj::ses
   19.                             └─base::getExportedValue(pkg, name)
   20.                               └─base::asNamespace(ns)
   21.                                 └─base::getNamespace(ns)
   22.                                   └─base::loadNamespace(name)
   23.                                     └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   24.                                       └─base:::withOneRestart(expr, restarts[[1L]])
   25.                                         └─base:::doWithOneRestart(return(expr), restart)
  
  ● renv.auth is respected in various contexts .................... [FAIL / <0.1s]
  
  ── test-available-packages.R ───────────────────────────────────────────────────
  ── Skip (test-available-packages.R:5:3): renv_available_packages() errs on incor
  Reason: On CRAN
  
  ● renv_available_packages() errs on incorrect repository ........ [SKIP / <0.1s]
  ── Skip (test-available-packages.R:17:3): renv handles multiple available source
  Reason: On CRAN
  
  ● renv handles multiple available source packages ............... [SKIP / <0.1s]
  ── Skip (test-available-packages.R:41:3): renv_available_packages() succeeds wit
  Reason: On CRAN
  
  ● renv_available_packages() succeeds with unnamed rep <...> ..... [SKIP / <0.1s]
  ── Skip (test-available-packages.R:58:3): renv_available_packages_latest() respe
  Reason: On CRAN
  
  ● renv_available_packages_latest() respects pkgType option ...... [SKIP / <0.1s]
  
  ── test-base64.R ───────────────────────────────────────────────────────────────
  ● some sample strings can be base64-encoded ..................... [PASS / <0.1s]
  ● some random base64 strings can be round-tripped ............... [PASS / 0.86s]
  
  ── test-bioconductor.R ─────────────────────────────────────────────────────────
  ── Skip (test-bioconductor.R:6:3): packages can be installed, restored from Bioc
  Reason: On CRAN
  
  ● packages can be installed, restored from Bioconductor ......... [SKIP / <0.1s]
  
  ── test-bootstrap.R ────────────────────────────────────────────────────────────
  ── ERROR (test-bootstrap.R:11:3): we can bootstrap the current version of renv ─
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(renv_package_version("renv") == "1.0.0")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● we can bootstrap the current version of renv .................. [FAIL /  4.5s]
  ── ERROR (test-bootstrap.R:22:3): we can bootstrap an archived version of renv ─
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(renv_package_version("renv") == "0.1.0")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● we can bootstrap an archived version of renv .................. [FAIL /  4.3s]
  ── Skip (test-bootstrap.R:27:3): we can install a version of renv from GitHub ──
  Reason: On CRAN
  
  ● we can install a version of renv from GitHub .................. [SKIP / <0.1s]
  
  ── test-cache.R ────────────────────────────────────────────────────────────────
  ── Skip (test-cache.R:5:3): issues within the cache are reported ───────────────
  Reason: On CRAN
  
  ● issues within the cache are reported .......................... [SKIP / <0.1s]
  ● use.cache project setting is honored .......................... [PASS / 0.34s]
  ── ERROR (test-cache.R:75:3): package installation does not fail with non-writab
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(records$bread$Package == "bread")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● package installation does not fail with non-writabl <...> ..... [FAIL /  5.0s]
  ── ERROR (test-cache.R:96:3): the cache is used even if RENV_PATHS_LIBRARY is no
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(renv_file_type(bread) == "symlink")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● the cache is used even if RENV_PATHS_LIBRARY is non <...> ..... [FAIL / 0.18s]
  
  ── test-clean.R ────────────────────────────────────────────────────────────────
  ── ERROR (test-clean.R:30:3): clean removes stale lockfiles ────────────────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_false(file.exists(tmpdir))
    2.   └─testthat:::expect_waldo_constant(act, FALSE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● clean removes stale lockfiles ................................. [FAIL / 0.21s]
  
  ── test-config.R ───────────────────────────────────────────────────────────────
  ● config variables read from appropriate scope .................. [PASS / <0.1s]
  ● invalid configuration options are reported .................... [PASS / 0.11s]
  ● values are coerced as appropriate ............................. [PASS / <0.1s]
  ● functions are returned as-is for '*' types .................... [PASS / <0.1s]
  ● we can query options without warnings ......................... [PASS / <0.1s]
  ● invalid configuration options trigger a warning ............... [PASS / 0.16s]
  ── Skip (test-config.R:74:1): we can query the default configuration values with
  Reason: empty test
  
  ● we can query the default configuration values witho <...> ..... [SKIP / <0.1s]
  
  ── test-consent.R ──────────────────────────────────────────────────────────────
  ● init fails if no consent has been provided .................... [PASS / <0.1s]
  
  ── test-defer.R ────────────────────────────────────────────────────────────────
  ● defer evaluates in appropriate environment .................... [PASS / <0.1s]
  ● defer captures arguments properly ............................. [PASS / <0.1s]
  ● defer works with arbitrary expressions ........................ [PASS / <0.1s]
  
  ── test-dependencies.R ─────────────────────────────────────────────────────────
  ● .Rproj files requesting devtools is handled ................... [PASS / <0.1s]
  ● usages of library, etc. are properly handled .................. [PASS / <0.1s]
  ● parse errors are okay in .Rmd documents ....................... [PASS /  1.5s]
  ● inline chunks are parsed for dependencies ..................... [PASS / <0.1s]
  ── ERROR (test-dependencies.R:43:3): usages of S4 tools are discovered ─────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(deps$Package == "methods") test-dependencies.R:43:2
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● usages of S4 tools are discovered ............................. [FAIL / <0.1s]
  ● the package name is validated when inferring dependencies ..... [PASS / <0.1s]
  ● empty chunks don't cause issues during dependency r <...> ..... [PASS / <0.1s]
  ● pacman::p_load() usages are understood ........................ [PASS / <0.1s]
  ● import:: usages are understood ................................ [PASS / <0.1s]
  ● renv warns when large number of files found ................... [PASS / <0.1s]
  ● evil knitr chunks are handled ................................. [PASS / <0.1s]
  ● renv_dependencies_requires warns once ......................... [PASS / <0.1s]
  ● the presence of an rsconnect folder forces dependen <...> ..... [PASS / <0.1s]
  ● dependencies can accept multiple files ........................ [PASS / <0.1s]
  ● dependencies can infer the root directory ..................... [PASS / <0.1s]
  ● no warnings are produced when crawling dependencies ........... [PASS /  1.6s]
  ── ERROR (test-dependencies.R:159:3): Suggests are dev. deps for non-package pro
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(deps$Package == "bread")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● Suggests are dev. deps for non-package projects ............... [FAIL / <0.1s]
  ── ERROR (test-dependencies.R:168:3): Suggests are _not_ dev. deps for package p
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(deps$Package == "bread")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● Suggests are _not_ dev. deps for package projects ............. [FAIL / 0.11s]
  ● packages referenced by modules::import() are discovered ....... [PASS / <0.1s]
  ● dependencies specified in R Markdown site generator <...> ..... [PASS / <0.1s]
  ● Suggest dependencies are ignored by default ................... [PASS / 0.36s]
  ● Suggest dependencies are used when requested .................. [PASS /  4.7s]
  ● a call to geom_hex() implies a dependency on ggplot2 .......... [PASS / <0.1s]
  ● empty fields are handled in DESCRIPTION ....................... [PASS / <0.1s]
  ── Skip (test-dependencies.R:226:1): recursive symlinks are handled ────────────
  Reason: empty test
  
  ● recursive symlinks are handled ................................ [SKIP / <0.1s]
  ● .renvignore can be used to ignore all but certain files ....... [PASS / <0.1s]
  
  ── test-description.R ──────────────────────────────────────────────────────────
  ● snapshotting broken DESCRIPTION files is an error ............. [PASS /  0.2s]
  
  ── test-download.R ─────────────────────────────────────────────────────────────
  ── Skip (test-download.R:5:3): we avoid downloading files twice ────────────────
  Reason: On CRAN
  
  ● we avoid downloading files twice .............................. [SKIP / <0.1s]
  ● we can successfully tweak the user agent string ............... [PASS / <0.1s]
  ── Skip (test-download.R:53:3): we can successfully download files with differen
  Reason: On CRAN
  
  ● we can successfully download files with different d <...> ..... [SKIP / <0.1s]
  ── Skip (test-download.R:96:3): downloads still succeed even if HEAD request fai
  Reason: On CRAN
  
  ● downloads still succeed even if HEAD request fails ............ [SKIP / <0.1s]
  ── ERROR (test-download.R:130:3): downloads work with file URIs ────────────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(file.exists(destfile))
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● downloads work with file URIs ................................. [FAIL / <0.1s]
  ── Skip (test-download.R:136:3): downloads work with UNC paths on Windows ──────
  Reason: On CRAN
  
  ● downloads work with UNC paths on Windows ...................... [SKIP / <0.1s]
  
  ── test-environment-variables.R ────────────────────────────────────────────────
  ● renv_envvars_save() is idempotent ............................. [PASS / <0.1s]
  
  ── test-errors.R ───────────────────────────────────────────────────────────────
  ── ERROR (test-errors.R:10:3): tracebacks are captured by catch ────────────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(is.character(traceback)) test-errors.R:10:2
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● tracebacks are captured by catch .............................. [FAIL / 0.13s]
  
  ── test-file-backed.R ──────────────────────────────────────────────────────────
  ● file-backed entries are discarded after the file is <...> ..... [PASS / <0.1s]
  ● file-backed entries are discarded after the file is <...> ..... [PASS / <0.1s]
  
  ── test-files.R ────────────────────────────────────────────────────────────────
  ● directories can be copied ..................................... [PASS / <0.1s]
  ── ERROR (test-files.R:36:3): directories can be moved ─────────────────────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(file.exists(target)) test-files.R:36:2
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● directories can be moved ...................................... [FAIL / 0.11s]
  ● attempts to link files work ................................... [PASS / <0.1s]
  ── ERROR (test-files.R:66:3): scoped backups are cleared as necessary ──────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(file.exists(target)) test-files.R:66:2
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● scoped backups are cleared as necessary ....................... [FAIL / <0.1s]
  ── ERROR (test-files.R:93:5): renv tempfiles are deleted at end of scope ───────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─base::eval(...)
    2.   └─base::eval(...)
    3.     └─testthat::expect_true(file.exists(path)) test-files.R:93:4
    4.       └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    5.         └─testthat:::waldo_compare(...)
    6.           └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    7.             └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    8.               └─waldo:::compare_logical(x, y, paths)
    9.                 └─waldo:::diff_element(...)
   10.                   └─waldo:::ses_context(x, y)
   11.                     └─waldo:::ses(x, y)
   12.                       └─diffobj::ses
   13.                         └─base::getExportedValue(pkg, name)
   14.                           └─base::asNamespace(ns)
   15.                             └─base::getNamespace(ns)
   16.                               └─base::loadNamespace(name)
   17.                                 └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   18.                                   └─base:::withOneRestart(expr, restarts[[1L]])
   19.                                     └─base:::doWithOneRestart(return(expr), restart)
  
  ● renv tempfiles are deleted at end of scope .................... [FAIL / <0.1s]
  ● renv_file_find finds parent files ............................. [PASS / <0.1s]
  ● attempts to overwrite existing files are handled ap <...> ..... [PASS / <0.1s]
  ● permissions, timestamps are preserved ......................... [PASS / 0.15s]
  ● renv can list files not representable in the native <...> ..... [PASS / <0.1s]
  
  ── test-hash.R ─────────────────────────────────────────────────────────────────
  ● whitespace does not affect hash ............................... [PASS / <0.1s]
  
  ── test-hydrate.R ──────────────────────────────────────────────────────────────
  ● hydrate does not change library paths ......................... [PASS / <0.1s]
  
  ── test-id.R ───────────────────────────────────────────────────────────────────
  ── Skip (test-id.R:5:3): we can generate a unique ID ───────────────────────────
  Reason: On CRAN
  
  ● we can generate a unique ID ................................... [SKIP / <0.1s]
  
  ── test-infrastructure.R ───────────────────────────────────────────────────────
  ── ERROR (test-infrastructure.R:10:3): renv.lock is added to .Rbuildignore ─────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(file.exists(".Rbuildignore"))
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● renv.lock is added to .Rbuildignore ........................... [FAIL / 0.11s]
  ● infrastructure can be removed ................................. [PASS / 0.28s]
  ── Skip (test-infrastructure.R:33:3): library/ is excluded from .gitignore as ap
  Reason: git is not available is not TRUE
  
  ● library/ is excluded from .gitignore as appropriate ........... [SKIP / 0.14s]
  ● whitespace in infrastructure file is preserved ................ [PASS / <0.1s]
  ● lines are commented, uncommented as appropriate ............... [PASS / <0.1s]
  ● comments after a required line are preserved .................. [PASS / <0.1s]
  ── ERROR (test-infrastructure.R:105:3): the project .Rprofile is removed if only
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_false(file.exists(".Rprofile"))
    2.   └─testthat:::expect_waldo_constant(act, FALSE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● the project .Rprofile is removed if only autoloader <...> ..... [FAIL / <0.1s]
  ── ERROR (test-infrastructure.R:116:3): the renv .gitignore is updated for sub-p
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(file.exists("project/renv/.gitignore"))
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● the renv .gitignore is updated for sub-projects ............... [FAIL / <0.1s]
  
  ── test-init.R ─────────────────────────────────────────────────────────────────
  ── Skip (test-init.R:4:3): we can initialize a project using 'breakfast' ───────
  Reason: On CRAN
  
  ● we can initialize a project using 'breakfast' ................. [SKIP / <0.1s]
  ● we can initialize a project using 'toast' ..................... [PASS / 0.21s]
  ── ERROR (test-init.R:41:3): we cannot initialize a project using 'brunch' ─────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_false(file.exists(renv_paths_library("brunch")))
    2.   └─testthat:::expect_waldo_constant(act, FALSE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● we cannot initialize a project using 'brunch' ................. [FAIL /  4.4s]
  ── ERROR (test-init.R:52:3): attempts to initialize a project with a missing pac
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_false(file.exists(renv_paths_library("missing")))
    2.   └─testthat:::expect_waldo_constant(act, FALSE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● attempts to initialize a project with a missing pac <...> ..... [FAIL / 0.27s]
  ── Skip (test-init.R:57:3): the remotes field in a DESCRIPTION is honored ──────
  Reason: On CRAN
  
  ● the remotes field in a DESCRIPTION is honored ................. [SKIP / <0.1s]
  ● renv::init(bare = TRUE) initializes a project witho <...> ..... [PASS / <0.1s]
  ── ERROR (test-init.R:82:3): init succeeds even if there are parse errors in pro
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(file.exists("renv.lock"))
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● init succeeds even if there are parse errors in project ....... [FAIL / 0.84s]
  ── ERROR (test-init.R:101:3): init() restores project containing only a lockfile
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(restored)
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● init() restores project containing only a lockfile ............ [FAIL /  1.3s]
  
  ── test-install.R ──────────────────────────────────────────────────────────────
  ● install works when DESCRIPTION contains no dependencies ....... [PASS / <0.1s]
  ── ERROR (test-install.R:23:3): requested version in DESCRIPTION file is honored
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(renv_package_version("bread") == "0.1.0")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● requested version in DESCRIPTION file is honored .............. [FAIL /  5.2s]
  ● installation failure is well-reported ......................... [PASS /  1.3s]
  ── Skip (test-install.R:67:3): install forces update of dependencies as needed ─
  Reason: On CRAN
  
  ● install forces update of dependencies as needed ............... [SKIP / <0.1s]
  ── ERROR (test-install.R:108:3): packages can be installed from local sources ──
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(renv_package_version("bread") == "1.0.0")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● packages can be installed from local sources .................. [FAIL /  4.9s]
  ── Skip (test-install.R:113:3): various remote styles can be used during install
  Reason: On CRAN
  
  ● various remote styles can be used during install .............. [SKIP / <0.1s]
  ── Skip (test-install.R:156:3): Remotes fields in a project DESCRIPTION are resp
  Reason: On CRAN
  
  ● Remotes fields in a project DESCRIPTION are respected ......... [SKIP / <0.1s]
  ● source packages in .zip files can be installed ................ [PASS /  5.0s]
  ── Skip (test-install.R:206:3): renv warns when installing an already-loaded pac
  Reason: On CRAN
  
  ● renv warns when installing an already-loaded package .......... [SKIP / <0.1s]
  ── Skip (test-install.R:215:3): renv::install() writes out Github fields for bac
  Reason: On CRAN
  
  ● renv::install() writes out Github fields for backwa <...> ..... [SKIP / <0.1s]
  ── Skip (test-install.R:230:3): renv uses safe library paths on Windows ────────
  Reason: renv_platform_windows() is not TRUE
  
  ● renv uses safe library paths on Windows ....................... [SKIP / <0.1s]
  ── Skip (test-install.R:252:3): renv can install packages from Bitbucket ───────
  Reason: On CRAN
  
  ● renv can install packages from Bitbucket ...................... [SKIP / <0.1s]
  ── Skip (test-install.R:259:3): renv can install packages from GitHub using remo
  Reason: On CRAN
  
  ● renv can install packages from GitHub using remotes <...> ..... [SKIP / <0.1s]
  
  ── test-internal.R ─────────────────────────────────────────────────────────────
  ● R files have balanced covr exclusions ......................... [PASS / <0.1s]
  
  ── test-json.R ─────────────────────────────────────────────────────────────────
  ● sample JSON strings can be read ............................... [PASS / <0.1s]
  ● sample R objects can be converted to JSON ..................... [PASS / <0.1s]
  ● empty R lists are converted as expected ....................... [PASS / <0.1s]
  ── Skip (test-json.R:45:3): we can parse a GitHub remotes specification ────────
  Reason: On CRAN
  
  ● we can parse a GitHub remotes specification ................... [SKIP / <0.1s]
  ── Skip (test-json.R:55:3): we can parse a GitHub remotes specification with 'wi
  Reason: On CRAN
  
  ● we can parse a GitHub remotes specification with 'w <...> ..... [SKIP / <0.1s]
  ● we can read json containing escape characters ................. [PASS / <0.1s]
  ● JSON null is read as R NULL ................................... [PASS / <0.1s]
  
  ── test-load.R ─────────────────────────────────────────────────────────────────
  ● invalid lockfile entries are reported ......................... [PASS / <0.1s]
  ● renv/settings.R is sourced on load if available ............... [PASS / <0.1s]
  ● errors when sourcing user profile are reported ................ [PASS / <0.1s]
  
  ── test-lockfile.R ─────────────────────────────────────────────────────────────
  ● lockfiles can be read from file ............................... [PASS / <0.1s]
  ● lockfiles can be diffed ....................................... [PASS / <0.1s]
  ● named characters are serialized as expected ................... [PASS / <0.1s]
  ● lockfiles can be read from either format ...................... [PASS / <0.1s]
  ● we can serialize lockfiles using unnamed repositories ......... [PASS / <0.1s]
  
  ── test-migrate.R ──────────────────────────────────────────────────────────────
  ── Skip (test-migrate.R:17:3): a sample Packrat project can be migrated ────────
  Reason: On CRAN
  
  ● a sample Packrat project can be migrated ...................... [SKIP / <0.1s]
  ── Skip (test-migrate.R:56:3): a Packrat project with no library can be migrated
  Reason: On CRAN
  
  ● a Packrat project with no library can be migrated ............. [SKIP / <0.1s]
  
  ── test-miscellaneous.R ────────────────────────────────────────────────────────
  ● long lines and be printed ..................................... [PASS / <0.1s]
  ● unmatched dots cause an error ................................. [PASS / <0.1s]
  
  ── test-mran.R ─────────────────────────────────────────────────────────────────
  ── Skip (test-mran.R:6:3): older binaries are installed from MRAN on Windows / m
  Reason: On CRAN
  
  ● older binaries are installed from MRAN on Windows / macOS ..... [SKIP / <0.1s]
  
  ── test-once.R ─────────────────────────────────────────────────────────────────
  ● renv_once() returns TRUE only once ............................ [PASS / <0.1s]
  
  ── test-packages.R ─────────────────────────────────────────────────────────────
  ── ERROR (test-packages.R:25:3): remote field updates are written to both DESCRI
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(desc$RemoteType == "local")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● remote field updates are written to both DESCRIPTIO <...> ..... [FAIL /  5.5s]
  
  ── test-parse.R ────────────────────────────────────────────────────────────────
  ── ERROR (test-parse.R:10:3): code containing multibyte characters can be parsed
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(inherits(parsed, "expression")) test-parse.R:10:2
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● code containing multibyte characters can be parsed ............ [FAIL / <0.1s]
  
  ── test-patches.R ──────────────────────────────────────────────────────────────
  ── ERROR (test-patches.R:7:3): a bad TAR is repaired ───────────────────────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_false(Sys.getenv("TAR") == "/no/such/tar") test-patches.R:7:2
    2.   └─testthat:::expect_waldo_constant(act, FALSE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● a bad TAR is repaired ......................................... [FAIL /  0.2s]
  
  ── test-paths.R ────────────────────────────────────────────────────────────────
  ── ERROR (test-paths.R:7:3): all renv paths live within tempdir() during tests ─
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(...)
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● all renv paths live within tempdir() during tests ............. [FAIL / <0.1s]
  ── ERROR (test-paths.R:13:3): the cache path can be set through an environment v
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(startswith(renv_paths_cache(), cachepath)) test-paths.R:13:2
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● the cache path can be set through an environment variable ..... [FAIL / <0.1s]
  ● we can construct paths to multiple files with path APIs ....... [PASS / <0.1s]
  ── ERROR (test-paths.R:29:3): RENV_PATHS_PREFIX is respected ───────────────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(grepl(os, cachepath, fixed = TRUE)) test-paths.R:29:2
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● RENV_PATHS_PREFIX is respected ................................ [FAIL / <0.1s]
  ● RENV_PATHS_PREFIX is not normalized ........................... [PASS / <0.1s]
  
  ── test-preflight.R ────────────────────────────────────────────────────────────
  ● snapshot preflight tests catch common issues .................. [PASS / <0.1s]
  ── Skip (test-preflight.R:25:3): renv warns when snapshotting missing dependenci
  Reason: On CRAN
  
  ● renv warns when snapshotting missing dependencies ............. [SKIP / <0.1s]
  
  ── test-profiles.R ─────────────────────────────────────────────────────────────
  ── Skip (test-profiles.R:5:3): library paths set in a user profile are overridde
  Reason: On CRAN
  
  ● library paths set in a user profile are overridden  <...> ..... [SKIP / <0.1s]
  ── Skip (test-profiles.R:34:3): .First is executed; library paths are restored a
  Reason: On CRAN
  
  ● .First is executed; library paths are restored after .......... [SKIP / <0.1s]
  
  ── test-properties.R ───────────────────────────────────────────────────────────
  ● properties can be read successfully ........................... [PASS / <0.1s]
  ● quoted properties are unquoted ................................ [PASS / <0.1s]
  
  ── test-purge.R ────────────────────────────────────────────────────────────────
  ● we can purge packages from the cache .......................... [PASS / 0.18s]
  
  ── test-python.R ───────────────────────────────────────────────────────────────
  ── Skip (test-python.R:12:3): we can activate Python with a project ────────────
  Reason: On CRAN
  
  ● we can activate Python with a project ......................... [SKIP / <0.1s]
  ── Skip (test-python.R:26:3): we can activate Python with a virtualenv in a proj
  Reason: On CRAN
  
  ● we can activate Python with a virtualenv in a project ......... [SKIP / <0.1s]
  ── Skip (test-python.R:39:3): installed Python packages are snapshotted / restor
  Reason: Running tests locally
  
  ● installed Python packages are snapshotted / restore <...> ..... [SKIP / <0.1s]
  ── Skip (test-python.R:88:3): installed Python packages are snapshotted / restor
  Reason: Running tests locally
  
  ● installed Python packages are snapshotted / restore <...> ..... [SKIP / <0.1s]
  
  ── test-r.R ────────────────────────────────────────────────────────────────────
  ── ERROR (test-r.R:24:3): we can use R CMD build to build a package ────────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(file.exists(tarball))
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● we can use R CMD build to build a package ..................... [FAIL /  1.5s]
  ● we can supply custom options to R CMD INSTALL ................. [PASS /  1.8s]
  
  ── test-rebuild.R ──────────────────────────────────────────────────────────────
  ● rebuild forces a package to rebuilt, bypassing cache .......... [PASS /  5.6s]
  
  ── test-record.R ───────────────────────────────────────────────────────────────
  ── ERROR (test-record.R:38:3): an existing lockfile can be updated ─────────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(is.null(records$toast))
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● an existing lockfile can be updated ........................... [FAIL /  0.2s]
  
  ── test-records.R ──────────────────────────────────────────────────────────────
  ● renv_records_select() handles missing packages gracefully ..... [PASS / <0.1s]
  ● we can format records in various ways ......................... [PASS / <0.1s]
  
  ── test-rehash.R ───────────────────────────────────────────────────────────────
  ● rehash() migrates cached packages as expected ................. [PASS /   21s]
  
  ── test-remotes.R ──────────────────────────────────────────────────────────────
  ── Skip (test-remotes.R:5:3): we can parse a variety of remotes ────────────────
  Reason: On CRAN
  
  ● we can parse a variety of remotes ............................. [SKIP / <0.1s]
  ● subdirectories are parsed in remotes .......................... [PASS / <0.1s]
  ● custom hosts can be supplied .................................. [PASS / <0.1s]
  
  ── test-renvignore.R ───────────────────────────────────────────────────────────
  ● .renvignore ignores files, directories ........................ [PASS / <0.1s]
  ● ignore patterns are constructed correctly ..................... [PASS / <0.1s]
  ● empty .renvignore does not ignore anything .................... [PASS / <0.1s]
  ● negated .renvignore patterns are handled ...................... [PASS / <0.1s]
  
  ── test-repos.R ────────────────────────────────────────────────────────────────
  ● we can query our local repository during tests ................ [PASS / <0.1s]
  ● repository names are not lost in the lockfile ................. [PASS / <0.1s]
  ● trailing slashes are removed from repositories on load ........ [PASS / <0.1s]
  
  ── test-restore.R ──────────────────────────────────────────────────────────────
  ● library permissions are validated before restore .............. [PASS / <0.1s]
  ── Skip (test-restore.R:13:3): we can restore packages after init ──────────────
  Reason: On CRAN
  
  ● we can restore packages after init ............................ [SKIP / <0.1s]
  ── Skip (test-restore.R:30:3): restore can recover when required packages are mi
  Reason: On CRAN
  
  ● restore can recover when required packages are missing ........ [SKIP / <0.1s]
  ● restore(clean = TRUE) removes packages not in the l <...> ..... [PASS / 0.19s]
  ● renv.records can be used to override records during <...> ..... [PASS /  0.5s]
  ● install.staged works as expected .............................. [PASS /   14s]
  ● renv::restore(lockfile = '/path/to/lockfile') works ........... [PASS / 0.29s]
  ● renv::restore(packages = <...>) works ......................... [PASS / 0.42s]
  ● restore ignores packages of incompatible architecture ......... [PASS /  4.9s]
  
  ── test-retrieve.R ─────────────────────────────────────────────────────────────
  ── Skip (test-retrieve.R:6:3): we can retrieve packages from CRAN ──────────────
  Reason: On CRAN
  
  ● we can retrieve packages from CRAN ............................ [SKIP / <0.1s]
  ── Skip (test-retrieve.R:21:3): we can retrieve packages from the CRAN archive ─
  Reason: On CRAN
  
  ● we can retrieve packages from the CRAN archive ................ [SKIP / <0.1s]
  ── Skip (test-retrieve.R:36:3): packages with an unknown source are retrieved fr
  Reason: On CRAN
  
  ● packages with an unknown source are retrieved from CRAN ....... [SKIP / <0.1s]
  ── Skip (test-retrieve.R:51:3): we can retrieve packages from Bitbucket ────────
  Reason: On CRAN
  
  ● we can retrieve packages from Bitbucket ....................... [SKIP / <0.1s]
  ── Skip (test-retrieve.R:69:3): we can retrieve packages from git ──────────────
  Reason: On CRAN
  
  ● we can retrieve packages from git ............................. [SKIP / <0.1s]
  ── Skip (test-retrieve.R:85:3): we can retrieve packages from GitHub ───────────
  Reason: On CRAN
  
  ● we can retrieve packages from GitHub .......................... [SKIP / <0.1s]
  ── Skip (test-retrieve.R:101:3): we can retrieve packages from GitHub (in a sub-
  Reason: On CRAN
  
  ● we can retrieve packages from GitHub (in a sub-directory) ..... [SKIP / <0.1s]
  ── Skip (test-retrieve.R:119:3): we can retrieve packages from GitLab ──────────
  Reason: On CRAN
  
  ● we can retrieve packages from GitLab .......................... [SKIP / <0.1s]
  ── Skip (test-retrieve.R:134:3): we can retrieve packages with URLs ────────────
  Reason: On CRAN
  
  ● we can retrieve packages with URLs ............................ [SKIP / <0.1s]
  ── Skip (test-retrieve.R:141:3): we can retrieve packages from URL sources ─────
  Reason: On CRAN
  
  ● we can retrieve packages from URL sources ..................... [SKIP / <0.1s]
  ● we can retrieve packages from local sources ................... [PASS / <0.1s]
  ● compatible local sources are preferred when available ......... [PASS / 0.29s]
  ● an explicitly-provided local source path can be used .......... [PASS / <0.1s]
  ── Skip (test-retrieve.R:213:3): explicit path to binary packages work ─────────
  Reason: renv_platform_macos() is not TRUE
  
  ● explicit path to binary packages work ......................... [SKIP / <0.1s]
  ● remotes::install_local() records are handled .................. [PASS /  4.8s]
  ── Skip (test-retrieve.R:240:3): we can retrieve packages from GitHub ──────────
  Reason: On CRAN
  
  ● we can retrieve packages from GitHub .......................... [SKIP / <0.1s]
  ── Skip (test-retrieve.R:257:3): we can retrieve packages from R repositories ──
  Reason: On CRAN
  
  ● we can retrieve packages from R repositories .................. [SKIP / <0.1s]
  ── Skip (test-retrieve.R:272:3): we can retrieve files using file URIs ─────────
  Reason: On CRAN
  
  ● we can retrieve files using file URIs ......................... [SKIP / <0.1s]
  
  ── test-rmd.R ──────────────────────────────────────────────────────────────────
  ● The chunk header parser works as expected ..................... [PASS / <0.1s]
  
  ── test-rspm.R ─────────────────────────────────────────────────────────────────
  ── Skip (test-rspm.R:5:3): repository URLs are properly transformed for differen
  Reason: On CRAN
  
  ● repository URLs are properly transformed for differ <...> ..... [SKIP / <0.1s]
  ── Skip (test-rspm.R:17:3): a binary-specific URL is transformed before writing 
  Reason: On CRAN
  
  ● a binary-specific URL is transformed before writing <...> ..... [SKIP / <0.1s]
  ── Skip (test-rspm.R:29:3): RSPM bits are preserved when writing lockfile ──────
  Reason: On CRAN
  
  ● RSPM bits are preserved when writing lockfile ................. [SKIP / <0.1s]
  ── Skip (test-rspm.R:41:3): RSPM is confirmed not supported on trusty ──────────
  Reason: On CRAN
  
  ● RSPM is confirmed not supported on trusty ..................... [SKIP / <0.1s]
  
  ── test-sandbox.R ──────────────────────────────────────────────────────────────
  ● the sandbox can be activated and deactivated .................. [PASS / <0.1s]
  ● multiple attempts to activate sandbox are handled ............. [PASS / <0.1s]
  ── ERROR (test-sandbox.R:34:3): re-activate sandbox when all is said and done ──
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_false(.Library == renv_libpaths_system()) test-sandbox.R:34:2
    2.   └─testthat:::expect_waldo_constant(act, FALSE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● re-activate sandbox when all is said and done ................. [FAIL / <0.1s]
  
  ── test-scaffold.R ─────────────────────────────────────────────────────────────
  ── ERROR (test-scaffold.R:7:3): renv.lock is created when scaffold is called ───
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(file.exists("renv.lock"))
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● renv.lock is created when scaffold is called .................. [FAIL / 0.12s]
  
  ── test-scope.R ────────────────────────────────────────────────────────────────
  ── ERROR (test-scope.R:10:5): .libPaths() scoping works as expected ────────────
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─base::eval(...)
    2.   └─base::eval(...)
    3.     └─testthat::expect_true(.libPaths()[1] == dir) test-scope.R:10:4
    4.       └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    5.         └─testthat:::waldo_compare(...)
    6.           └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    7.             └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    8.               └─waldo:::compare_logical(x, y, paths)
    9.                 └─waldo:::diff_element(...)
   10.                   └─waldo:::ses_context(x, y)
   11.                     └─waldo:::ses(x, y)
   12.                       └─diffobj::ses
   13.                         └─base::getExportedValue(pkg, name)
   14.                           └─base::asNamespace(ns)
   15.                             └─base::getNamespace(ns)
   16.                               └─base::loadNamespace(name)
   17.                                 └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   18.                                   └─base:::withOneRestart(expr, restarts[[1L]])
   19.                                     └─base:::doWithOneRestart(return(expr), restart)
  
  ● .libPaths() scoping works as expected ......................... [FAIL / <0.1s]
  ● options() scoping works as expected ........................... [PASS / <0.1s]
  ● environment variable scoping works as expected ................ [PASS / <0.1s]
  ── ERROR (test-scope.R:73:5): nested attempts to scope libpaths are properly han
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─base::eval(...)
    2.   └─base::eval(...)
    3.     └─testthat::expect_true(.libPaths()[1] == dir) test-scope.R:73:4
    4.       └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    5.         └─testthat:::waldo_compare(...)
    6.           └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    7.             └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    8.               └─waldo:::compare_logical(x, y, paths)
    9.                 └─waldo:::diff_element(...)
   10.                   └─waldo:::ses_context(x, y)
   11.                     └─waldo:::ses(x, y)
   12.                       └─diffobj::ses
   13.                         └─base::getExportedValue(pkg, name)
   14.                           └─base::asNamespace(ns)
   15.                             └─base::getNamespace(ns)
   16.                               └─base::loadNamespace(name)
   17.                                 └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   18.                                   └─base:::withOneRestart(expr, restarts[[1L]])
   19.                                     └─base:::doWithOneRestart(return(expr), restart)
  
  ● nested attempts to scope libpaths are properly handled ........ [FAIL /  0.1s]
  
  ── test-settings.R ─────────────────────────────────────────────────────────────
  ● renv.settings can be used to provide defaults ................. [PASS / <0.1s]
  ● non-persistent settings exist in R session; not in file ....... [PASS / <0.1s]
  
  ── test-snapshot.R ─────────────────────────────────────────────────────────────
  ● snapshot is idempotent ........................................ [PASS / 0.28s]
  ● snapshot failures are reported ................................ [PASS /  5.5s]
  ● broken symlinks are reported .................................. [PASS /  5.3s]
  ● multiple libraries can be used when snapshotting .............. [PASS /   10s]
  ● implicit snapshots only include packages currently used ....... [PASS / 0.28s]
  ● explicit snapshots only capture packages in DESCRIPTION ....... [PASS / 0.23s]
  ── Skip (test-snapshot.R:130:3): a custom snapshot filter can be used ──────────
  Reason: On CRAN
  
  ● a custom snapshot filter can be used .......................... [SKIP / <0.1s]
  ● snapshots that take too long produce a warning ................ [PASS / 0.31s]
  ── ERROR (test-snapshot.R:168:3): snapshotted packages from CRAN include the Rep
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(records$bread$Repository == "CRAN")
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● snapshotted packages from CRAN include the Reposito <...> ..... [FAIL / 0.27s]
  ● snapshot failures due to bad library / packages are <...> ..... [PASS / 0.32s]
  ── ERROR (test-snapshot.R:198:3): snapshot ignores own package in package develo
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_true(is.null(records[["bread"]]))
    2.   └─testthat:::expect_waldo_constant(act, TRUE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● snapshot ignores own package in package development <...> ..... [FAIL / 0.13s]
  ● snapshot warns about unsatisfied dependencies ................. [PASS / 0.33s]
  ● snapshot records packages discovered in local sources ......... [PASS /  5.2s]
  ● snapshot prefers RemoteType to biocViews ...................... [PASS / <0.1s]
  ● parse errors cause snapshot to abort .......................... [PASS /  1.3s]
  ● records for packages available on other OSes are pr <...> ..... [PASS / 0.28s]
  ── ERROR (test-snapshot.R:300:3): .renvignore works during snapshot without an e
  Error: there is no package called 'diffobj'
  Backtrace:
       █
    1. └─testthat::expect_false(is.null(lockfile$Packages$bread))
    2.   └─testthat:::expect_waldo_constant(act, FALSE, info = info)
    3.     └─testthat:::waldo_compare(...)
    4.       └─waldo::compare(x, y, ..., x_arg = x_arg, y_arg = y_arg)
    5.         └─waldo:::compare_structure(x, y, paths = c(x_arg, y_arg), opts = opts)
    6.           └─waldo:::compare_logical(x, y, paths)
    7.             └─waldo:::diff_element(...)
    8.               └─waldo:::ses_context(x, y)
    9.                 └─waldo:::ses(x, y)
   10.                   └─diffobj::ses
   11.                     └─base::getExportedValue(pkg, name)
   12.                       └─base::asNamespace(ns)
   13.                         └─base::getNamespace(ns)
   14.                           └─base::loadNamespace(name)
   15.                             └─base::withRestarts(stop(cond), retry_loadNamespace = function() NULL)
   16.                               └─base:::withOneRestart(expr, restarts[[1L]])
   17.                                 └─base:::doWithOneRestart(return(expr), restart)
  
  ● .renvignore works during snapshot without an explic <...> ..... [FAIL / 0.21s]
  
  ── test-status.R ───────────────────────────────────────────────────────────────
  ── Skip (test-status.R:5:3): status() works when there is no library ───────────
  Reason: On CRAN
  
  ● status() works when there is no library ....................... [SKIP / <0.1s]
  ● status reports packages to be installed / changed ............. [PASS /  7.1s]
  
  ── test-update.R ───────────────────────────────────────────────────────────────
  ── Skip (test-update.R:5:3): update() finds packages requiring updates from CRAN
  Reason: On CRAN
  
  ● update() finds packages requiring updates from CRAN ........... [SKIP / <0.1s]
  ── Skip (test-update.R:24:3): update() can upgrade GitHub packages ─────────────
  Reason: On CRAN
  
  ● update() can upgrade GitHub packages .......................... [SKIP / <0.1s]
  
  ── test-upgrade.R ──────────────────────────────────────────────────────────────
  ── Skip (test-upgrade.R:5:3): the version of renv in a project can be changed (u
  Reason: On CRAN
  
  ● the version of renv in a project can be changed (up <...> ..... [SKIP / <0.1s]
  
  ── test-utils.R ────────────────────────────────────────────────────────────────
  ● common utils work as expected ................................. [PASS / 0.16s]
  ● bind_list handles named lists ................................. [PASS / <0.1s]
  ● bind_list warns on name collision ............................. [PASS / <0.1s]
  ● versions are compared as expected ............................. [PASS / <0.1s]
  ● inject inserts text at expected anchor point .................. [PASS / <0.1s]
  ● aliased_path() correctly forms aliased path ................... [PASS / <0.1s]
  ● memoize avoids evaluating expression multiple times ........... [PASS / <0.1s]
  
  ── Skipped tests  ──────────────────────────────────────────────────────────────
  ● On CRAN (57)
  ● Running tests locally (2)
  ● empty test (2)
  ● git is not available is not TRUE (1)
  ● renv_platform_macos() is not TRUE (1)
  ● renv_platform_windows() is not TRUE (1)
  
  ══ testthat results  ═══════════════════════════════════════════════════════════
  ERROR (test-authentication.R:11:5): renv.auth is respected in various contexts
  ERROR (test-bootstrap.R:11:3): we can bootstrap the current version of renv
  ERROR (test-bootstrap.R:22:3): we can bootstrap an archived version of renv
  ERROR (test-cache.R:75:3): package installation does not fail with non-writable cache
  ERROR (test-cache.R:96:3): the cache is used even if RENV_PATHS_LIBRARY is non-canonical
  ERROR (test-clean.R:30:3): clean removes stale lockfiles
  ERROR (test-dependencies.R:43:3): usages of S4 tools are discovered
  ERROR (test-dependencies.R:159:3): Suggests are dev. deps for non-package projects
  ERROR (test-dependencies.R:168:3): Suggests are _not_ dev. deps for package projects
  ERROR (test-download.R:130:3): downloads work with file URIs
  ERROR (test-errors.R:10:3): tracebacks are captured by catch
  ERROR (test-files.R:36:3): directories can be moved
  ERROR (test-files.R:66:3): scoped backups are cleared as necessary
  ERROR (test-files.R:93:5): renv tempfiles are deleted at end of scope
  ERROR (test-infrastructure.R:10:3): renv.lock is added to .Rbuildignore
  ERROR (test-infrastructure.R:105:3): the project .Rprofile is removed if only autoloader exists
  ERROR (test-infrastructure.R:116:3): the renv .gitignore is updated for sub-projects
  ERROR (test-init.R:41:3): we cannot initialize a project using 'brunch'
  ERROR (test-init.R:52:3): attempts to initialize a project with a missing package is okay
  ERROR (test-init.R:82:3): init succeeds even if there are parse errors in project
  ERROR (test-init.R:101:3): init() restores project containing only a lockfile
  ERROR (test-install.R:23:3): requested version in DESCRIPTION file is honored
  ERROR (test-install.R:108:3): packages can be installed from local sources
  ERROR (test-packages.R:25:3): remote field updates are written to both DESCRIPTION, packages.rds
  ERROR (test-parse.R:10:3): code containing multibyte characters can be parsed
  ERROR (test-patches.R:7:3): a bad TAR is repaired
  ERROR (test-paths.R:7:3): all renv paths live within tempdir() during tests
  ERROR (test-paths.R:13:3): the cache path can be set through an environment variable
  ERROR (test-paths.R:29:3): RENV_PATHS_PREFIX is respected
  ERROR (test-r.R:24:3): we can use R CMD build to build a package
  ERROR (test-record.R:38:3): an existing lockfile can be updated
  ERROR (test-sandbox.R:34:3): re-activate sandbox when all is said and done
  ERROR (test-scaffold.R:7:3): renv.lock is created when scaffold is called
  ERROR (test-scope.R:10:5): .libPaths() scoping works as expected
  ERROR (test-scope.R:73:5): nested attempts to scope libpaths are properly handled
  ERROR (test-snapshot.R:168:3): snapshotted packages from CRAN include the Repository field
  ERROR (test-snapshot.R:198:3): snapshot ignores own package in package development scenarios
  ERROR (test-snapshot.R:300:3): .renvignore works during snapshot without an explicit root
  
  [ FAIL 38 | WARN 0 | SKIP 64 | PASS 281 ]
  Error: Test failures
  Execution halted