- ...
-
Tests asserting correctness of
nbrOfWorkers()
could produce an "invalid format '%d'; use format %f, %e, %g or %a for numeric objects" error when trying to produce an assertion error onnbrOfWorkers()
having an incorrect value. This could happen ifnbrOfWorkers()
returned a non-integer value, e.g.+Inf
. -
Test asserting that the
workers
argument can be a function would not always work if testing with a hardcoded number of workers according toplan()
. -
Test asserting that the
workers
argument can be a function would not work if the backend's default value was non-numeric, e.g. thecluster
backend defaults to the character vectorparallelly::availableWorkers()
. -
Test asserting that lazy futures would be automatically launched and resolved relied on a legacy version of the Future API, where calling
resolved()
on a lazy future could leave it in a lazy state, which is no longer correct. A lazy future will always be launched if one callsresolved()
on it. -
Test asserting that the ff package worked across multiple futures assumed that the package is loaded automatically by the future, which it is not. The could cause the test to fail for some future backends.
-
Now tests can be formally skipped by calling
future.tests::skip_test()
from within the test. Skipped tests are counted and reported in the summary. -
Now
check_plan()
outputs the reason for a test is being skipped. -
Now
check_plan()
outputs also the error message, error class, the call, and any standard output, whenever there's is a test error. -
Now
check_plan()
outputs also the test iteration index. -
Add
Rscript -e future.tests::check --version
.
- Some tests assume that the future strategy tested has a
workers
argument, which is not true for all future backends. For example, 'sequential' does not take argumentworkers
. Previously, we avoided this problem by only testing if the evaluator inheritedmultiprocess
, but that is not sufficient, e.g. upcomingfuture.redis::redis
inheritsmultiprocess
, but still does not have aworkers
argument. Now we check for theworkers
argument instead.
- Assert that none of
future()
,run()
,result()
andvalue()
update the RNG state.
-
Assert that
rm(a)
in a future expression only removes a local variablea
, but never a global variablea
. -
Assert that packages data.table and ff are not affected when a future resets the R options on the worker when resolved.
-
Assert that a global that is a copy of a non-exported package object (e.g.
utils:::str2logical()
) is not dropped because it belongs to a package namespace. -
Assert that
...
can be exported as a global to a future, and used as-is inside a function that does not have...
arguments.
-
check()
andcheck_plan()
gained argumentlocal
, which is passed down torun_test()
. -
check()
gained argumentenvir
, which is passed down torun_test()
.
-
The TestResult class did not record whether the test was evaluated in a local environment or not.
-
A too strict internal assertion would give
Error in evaluate_expr(test$expr, envir = envir, local = FALSE, output = output, : identical(Sys.getenv(), old$envvars) is not TRUE
for R 4.2.x and R-devel on MS Windows. This was because it is not possible to remove environment variables on MS Windows; they can only be set to an empty value.
-
Assert that
future()
doesn't change the RNG kind. -
Assert that
future(..., conditions = character(0L))
muffles all conditions.
-
For robustness, using explicit
stringsAsFactors = FALSE
internally. -
evaluate_expr()
, which is used for running all tests, now reset options, environment variables, the RNG kind, and the random seed afterward to what it was before being called. -
Added a package vignettes.
- Tests on
resolve()
would use deprecated argumentvalue
.
-
Update the package description to use single quotes.
-
Add example to
check()
.
- First version released on CRAN.
- Assert that
resolved()
will launch lazy futures.
-
In non-interactive mode,
check()
will quit R with an exit code that reflects whether all tests passed (0) or not (1). -
check()
gained arguments so that it can be easily called from R too.
- Created package stub.