ok/jj
1
0
Fork 0
forked from mirrors/jj
jj/lib/tests
jyn d66fcf2ca0 compile integration tests as a single binary
this greatly speeds up the time to run all tests, at the cost of slightly larger recompile times for individual tests.

this unfortunately adds the requirement that all tests are listed in `runner.rs` for the crate.
to avoid forgetting, i've added a new test that ensures the directory is in sync with the file.

 ## benchmarks

before this change, recompiling all tests took 32-50 seconds and running a single test took 3.5 seconds:

```
; hyperfine 'touch lib/src/lib.rs && cargo t --test test_working_copy'
  Time (mean ± σ):      3.543 s ±  0.168 s    [User: 2.597 s, System: 1.262 s]
  Range (min … max):    3.400 s …  3.847 s    10 runs
```

after this change, recompiling all tests take 4 seconds:
```
;  hyperfine 'touch lib/src/lib.rs ; cargo t --test runner --no-run'
  Time (mean ± σ):      4.055 s ±  0.123 s    [User: 3.591 s, System: 1.593 s]
  Range (min … max):    3.804 s …  4.159 s    10 runs
```
and running a single test takes about the same:
```
; hyperfine 'touch lib/src/lib.rs && cargo t --test runner -- test_working_copy'
  Time (mean ± σ):      4.129 s ±  0.120 s    [User: 3.636 s, System: 1.593 s]
  Range (min … max):    3.933 s …  4.346 s    10 runs
```

about 1.4 seconds of that is the time for the runner, of which .4 is the time for the linker. so
there may be room for further improving the times.
2024-02-06 18:19:41 -08:00
..
runner.rs compile integration tests as a single binary 2024-02-06 18:19:41 -08:00
test_bad_locking.rs transaction: take description at end instead of start 2023-12-13 08:12:49 -08:00
test_commit_builder.rs object_id: make ObjectId constructors non-trait methods 2024-01-05 23:36:57 +09:00
test_commit_concurrent.rs op_store: add a virtual root operation, similar to root commit 2024-01-14 10:15:14 -08:00
test_conflicts.rs conflicts: test materialization with with negative snapshots 2024-01-23 07:18:54 -08:00
test_default_revset_graph_iterator.rs default_index: adopt revset engine and graph iterator modules 2024-01-07 05:37:47 -08:00
test_diff_summary.rs repo_path: split RepoPath into owned and borrowed types 2023-11-28 07:33:28 +09:00
test_git.rs git: extract Git HEAD handling bits from import_some_refs() 2024-01-27 00:01:59 +09:00
test_git_backend.rs git_backend: on gc(), remove unreachable no-gc refs and compact them 2024-01-27 10:18:11 +09:00
test_id_prefix.rs object_id: move HexPrefix and PrefixResolution from index module 2024-01-05 10:20:57 +09:00
test_index.rs index: fix reindexing to scan all referenced commits such as hidden remote refs 2024-01-12 12:53:16 +09:00
test_init.rs transaction: take description at end instead of start 2023-12-13 08:12:49 -08:00
test_load_repo.rs transaction: take description at end instead of start 2023-12-13 08:12:49 -08:00
test_local_working_copy.rs working_copy: make reset() take a commit instead of a tree 2024-02-06 12:41:09 -08:00
test_local_working_copy_concurrent.rs repo_path: split RepoPath into owned and borrowed types 2023-11-28 07:33:28 +09:00
test_local_working_copy_sparse.rs working_copy: use proto file states without rebuilding BTreeMap 2023-11-30 12:09:31 +09:00
test_merge_trees.rs transaction: take description at end instead of start 2023-12-13 08:12:49 -08:00
test_merged_tree.rs merged_tree: remove canceling terms prior to resolving file-level conflict 2023-12-03 07:44:58 +09:00
test_mut_repo.rs view: drop tracking of public heads 2024-01-13 22:23:57 -08:00
test_operations.rs op_store: add special case for root id resolution 2024-01-16 21:46:54 +09:00
test_refs.rs transaction: take description at end instead of start 2023-12-13 08:12:49 -08:00
test_revset.rs revset: remove unused lifetime parameter from Revset<'index> 2024-01-09 10:37:43 +09:00
test_rewrite.rs rewrite.rs: revert commits cfcc7c5e and becbc889 2024-02-03 15:56:44 -08:00
test_signing.rs transaction: take description at end instead of start 2023-12-13 08:12:49 -08:00
test_view.rs view: drop tracking of public heads 2024-01-13 22:23:57 -08:00
test_workspace.rs workspace: combine working copy functions into a trait 2024-01-25 11:46:07 -08:00