Skip to content

switch to new meson based testsuite runner#12789

Merged
Frenzie merged 9 commits into
koreader:masterfrom
benoit-pierre:pr/switch_to_new_meson_based_testsuite_runner
Nov 25, 2024
Merged

switch to new meson based testsuite runner#12789
Frenzie merged 9 commits into
koreader:masterfrom
benoit-pierre:pr/switch_to_new_meson_based_testsuite_runner

Conversation

@benoit-pierre

@benoit-pierre benoit-pierre commented Nov 24, 2024

Copy link
Copy Markdown
Member
  • better isolation, with a separate process for each test file: crash isolation, avoid duplicated init errors (CRengine fonts, lua-ljsqlite3 init, …), separate data directory (no testsuite leftovers outside the install directory)
  • faster thanks to parallelization
  • better terminal output and full log as well as Junit XML test results (automatically, for each run)

On Circle CI, we can drop the parallelism, halving resources. On master, instead of 3 different runs (normal, coverage, and test results for timings), we can run the full suite one time with coverage, all the while reducing the build job wall-clock time: 2m 19s → 1m 13s.


This change is Reviewable

This was referenced Nov 24, 2024
@benoit-pierre
benoit-pierre force-pushed the pr/switch_to_new_meson_based_testsuite_runner branch 3 times, most recently from 2064e4f to 115e595 Compare November 24, 2024 22:20
@benoit-pierre
benoit-pierre marked this pull request as ready for review November 24, 2024 22:21
@benoit-pierre
benoit-pierre marked this pull request as draft November 25, 2024 00:53
@Frenzie Frenzie added this to the 2025.01 milestone Nov 25, 2024
Use the `KO_HOME` environment variable if set to determine the data directory location.
Factorize and use a proper separate test for each benchmark.

Note: only open the 9 fist pages (reduce memory so benchmarks
can be run on more limited memory devices, like the Kindle).
@benoit-pierre
benoit-pierre force-pushed the pr/switch_to_new_meson_based_testsuite_runner branch from 115e595 to f89508e Compare November 25, 2024 20:06
@benoit-pierre
benoit-pierre marked this pull request as ready for review November 25, 2024 20:06
Comment thread spec/unit/filemanager_spec.lua Outdated
Instead of running the testsuite twice when coverage is need,
only run it once (without filtering out `nocov` tests): with
`cluacov` installed, it's only 50% slower than a normal run.
Drop `nocov` tag for tests already tagged with `notest`
(already ignored when doing a coverage run).
Don't exclude `nocov` tests, since on master, only one run with coverage is used.
@benoit-pierre
benoit-pierre force-pushed the pr/switch_to_new_meson_based_testsuite_runner branch from f89508e to eeba34f Compare November 25, 2024 21:47
So it's picked up by the bench testsuite.
@Frenzie
Frenzie merged commit d4cc87c into koreader:master Nov 25, 2024
@benoit-pierre
benoit-pierre deleted the pr/switch_to_new_meson_based_testsuite_runner branch November 25, 2024 22:00
@benoit-pierre

Copy link
Copy Markdown
Member Author
No cache is found for key: 1-build-ccache-arch1-linux-amd64-6_85-iQMxO3NQF8CwxiZaIy899JkvY4VeFiI5sLcehUqFPAY=
Found a cache from build 17288 at 1-build-ccache-arch1-linux-amd64-6_85-
Size: 32 B
Cached paths:
  * /home/ko/.ccache

Somehow I doubt this cache is going to be much help… ;(

@benoit-pierre

Copy link
Copy Markdown
Member Author

@Frenzie

Frenzie commented Nov 25, 2024

Copy link
Copy Markdown
Member

Not found? Strange indeed. O.o

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants