Closed markcsinclair closed 1 week ago
It would seem that there is a mismatch between the build system and meson, such that the build system passes through excess parameters such as --full-test
, but that meson invocations, such as meson test
, can't take these additional parameters. I have yet to identify a way that this can be achieved, although several possibities are discussed on forums, but I have not found one that works in practice.
In addition, the actual option identified in kmcmplib/meson_options.txt
is full_test
instead of full-test
(see also line 106 of kmcmplib/tests/meson.build
).
If the full_test
option is defaulted to true (in kmcmplib/meson_options.txt
), sadly, 65 of 702 tests fail, although many of these seem to be memory allocation problems.
If the
full_test
option is defaulted to true (inkmcmplib/meson_options.txt
), sadly, 65 of 702 tests fail, although many of these seem to be memory allocation problems.
This is curious, because we are building all the keyboards regularly with the release build of kmc/kmcmplib, whenever we receive a new PR in the keyboards repository (most days). Looks like we need to get this resolved so we can track this.
If the
full_test
option is defaulted to true (inkmcmplib/meson_options.txt
), sadly, 65 of 702 tests fail, although many of these seem to be memory allocation problems.
Turns out they are not memory allocation problems -- there is some misdirection in the reporting due to meson. The test was returning error 88 which means that the binary file mismatches with the fixture.
I found a regression in #12107 which causes 64 of the 65 fails:
The N
was accidentally replaced with M
. Any keyboards which included a nomatch
rule would fail with this. New PR on its way to address this (and --full-test will come as a separate PR too)
Still investigating the last failure.
The final failure, for masaram_gondi, is because the keyboard source had non-BMP characters in the key part of the rule on line 215, which has been picked up by the 18.0 compiler in #11806:
$keymanonly: if(opt1 = 'gondi') any(Vyanjana)"𑵄" + any(Vyanjana) > index(Vyanjana,2) U+11D45
The trick here is that the compiled fixture developer/src/kmcmplib/tests/fixtures/keyboards-repo/masaram_gondi.kmx is based on a broken version of the keyboard source in the keyboards repo (fixed version), and updating to the fixed version will also trigger updates to a bunch of other keyboards. I think the simplest resolution is probably to skip masaram_gondi for 18.0.
Once I got this building on mac and linux as well, discovered a few cross-platform issues, minor but varied. See #12631 for details.
Three PRs incoming:
Describe the bug
If a full keyboard repository test is requested in
kmcmplib
with, say,./build.sh --full-test test:x86
no extra keyboards are tested compared to running without the--full-test
flagKeyman apps
Keyman version
No response