Commit graph

33 commits

Author SHA1 Message Date
Marc Durdin
84785fdd9a chore(core): wasm linker flags 2024-01-15 13:23:29 +07:00
Marc Durdin
932ad9d1df chore(core): add unit test deps for wasm 2024-01-15 12:50:41 +07:00
Marc Durdin
cd69405960 feat(core): add app_context and failing tests
Adds the application context member of state and a corresponding,
failing unit test, which starts the process of verifying the handling
of the application context.
2024-01-15 11:50:15 +07:00
Steven R. Loomis
30d951ef67 feat(core): ldml dx: launch ldml unit tests before keyboard tests 🙀
For: #9707
2023-11-16 13:43:12 -06:00
Eberhard Beilharz
604fbc1a75
chore(linux): Rename namespace kbp to core 2023-10-19 10:39:55 +02:00
Steven R. Loomis
022265e1b8 feat(core): regex 🙀
- update more test deps to link with ICU…

For: #9121
2023-08-09 16:27:56 -05:00
Steven R. Loomis
5c38b18395 feat(core): update icu dependencies 🙀
- enable icui18n
- .. without breaking anything else in ldml tests

For: #9121
2023-08-08 18:45:03 -05:00
Steven R. Loomis
c90c7aaa64 feat(core): non-regex implementation of tran 🙀
- some scaffolding for loading transforms
- add transform_test
- simple test, simple impl - non-regex, simple strings
- scaffolding for bksp
- bksp transform test, but disabled for now

For: #7377
2023-06-14 10:14:33 -05:00
Steven R. Loomis
05a30433a4 feat(core): icu integration steps 🙀
- only use pkg-config if the target system is linux
- delete unused directories

for #8495
2023-04-11 19:01:19 -05:00
Marc Durdin
9152ab52e9
Merge branch 'master' into feat/core-8435-repertoire-test-epic-ldml 2023-04-10 15:15:00 +10:00
Steven R. Loomis
e7b4eb4d9d fix(core): use pkgconfig on linux, else wrap 🙀
For: feat(core): integrate ICU4C into the build for ldml 🙀 #8495
2023-04-06 12:59:00 -05:00
Steven R. Loomis
2826736353 feat(core): icu integration steps 🙀
- fallback to pkg-config if meson ≤ 0.57

for #8495
2023-04-05 13:54:30 -05:00
Steven R. Loomis
fc87334b44 feat(core): icu integration steps 🙀
- disable some failing repertoire tests
- see if a basic integration works

for #8495
2023-03-31 12:39:13 -05:00
Steven R. Loomis
f33dea20cf feat(core): icu integration escapade 🙀
for #8495
2023-03-30 18:16:06 -05:00
Steven R. Loomis
ec68f6ce0f feat(core): ldml repertoire test 🙀
- wip: right now passes, because it emits the repertoire text as it goes

For: #8435
2023-03-16 14:28:51 -05:00
Marc Durdin
d1c8061b5f chore: Merge branch 'feature-kmcompx' into chore/merge-master-into-kmcompx 2023-03-16 12:29:17 +07:00
Steven R. Loomis
0693e6436d feat(core): ldml repertoire test 🙀
- icu4c as an optional dependency

For: #8435
2023-03-15 18:50:16 -05:00
Marc Durdin
691dc8e618 chore(core): split flags into standard.meson.build 2023-03-09 11:34:54 +07:00
Steven R. Loomis
812fd1713a spec(core): ldml tests for either shift/ctrl/alt 🙀
- lookup needs to handle either/neither/both cases for alt and ctrl
- and a bug in the test runner: would 'pass' if failed on exactly line 256 (0x100 & 0xFF == 0)

#7533
2023-03-02 17:13:47 -06:00
Marc Durdin
19101c6a2a chore(core): cleanup meson build
This updates our meson min version on Windows to 1.0, which means that
we can avoid having Visual Studio on the path, as meson can find it
anyway. With this change, we can eliminate the batch-wrapper for the
build, significantly improving build performance and simplifying the
scripts.

This also adds a change to disable tests for dependency builds of core,
along with the `--no-tests` command line option for doing builds without
tests.

Minor cleanup includes eliminating various warnings from meson.build
files, and standardizing WASM cross-platform build options for Windows.
2023-02-21 12:12:28 +07:00
Steven R. Loomis
47b222e8a8 feat(core): ldml json test executor 🙀
- intermediate, does not process context or actions yet
- embedded (non-json) tests pass
- utf-8 parsing
- bring in kmx+ into ldml_test_source for parsing, but key2 is not ready eyt
- temporary scaffolding mapping key ids to vkeys
- build fixes
- getting closer.
2023-02-16 12:33:32 -06:00
Marc Durdin
31a34f73d7 chore(core): add unit test for zero checksum 2022-09-12 05:46:13 +10:00
Marc Durdin
3d08348256 feat(core): hextobin tool
The hextobin tool is used to help us construct invalid .kmx files
without having to either hack these into the compiler, or write them
with a hex editor. It feels a little bit of overkill, but this makes it
easy to (a) work with our intended file structures, and (b) review any
changes to these invalid keyboard tests.

Note: I did do a cursory search for a hex2bin or hextobin that we could
easily use but did not find a good simple cross-platform tool that we
could consume (`xxd -r` would work but AFAICT constrains our format to a
dump which is much harder to work with and read -- I wanted to be able
to annotate with file structures.)

For an example, see ik_000_null_invalid.txt.

This means that building the invalid keyboards for tests requires node,
but that should be fine given we need node to build the valid keyboards
anyway.

I've put hextobin under core/tools but it could just as well live under
common/tools in the future, if we find it useful for other project unit
tests.
2022-08-29 06:21:16 +10:00
Marc Durdin
9945055c00 chore(core): move and re-enable invalid ldml keyboard tests 2022-08-28 05:10:21 +10:00
Marc Durdin
bc02ba984a chore(core): skip ldml keyboard tests if node not available 2022-08-27 08:47:34 +10:00
Marc Durdin
a3b1a96960 chore(core): disable failing tests for now 2022-08-26 15:48:19 +10:00
Marc Durdin
daf6a7970e feat(core): use kmldmlc to build test keyboards
Removes .kmx from repo and builds them from the source .xml files using
kmldmlc (building that if necessary also with a poor fella's dependency
check for now), and generally a lot of cleanup of the meson.build files
for the ldml tests.

Moves keyboards to a subfolder of the ldml unit test folder to keep them
neat and tidy and avoid embedding huge files into ldml.js for test of
WASM.

Note: 000_null_keyboard and 002_null_invalid do build successfully, but
the core ldml keyboardprocessor currently fails on them, because they
are missing keys and vkey sections.
2022-08-26 15:12:38 +10:00
Steven R. Loomis
f7aeba5f01 feat(core): ldml: validator for kmxplus 🙀
- also update test case, 002_null_invalid is expected to not validate

#7097
2022-08-25 12:54:08 -05:00
Steven R. Loomis
7aac6a1747 chore(core): update 000_null_keyboard to be a proper null keyboard 🙀
- rewrite 000_null_keyboard.kmx to be valid, but with no keys
- remove outdated comment in kmx_plus.h
- update kmx_plus.cpp to not reverse the order of section ids (#7098)
- add a new test option for expected-error
2022-08-24 17:04:55 -05:00
Steven R. Loomis
a333eade22 feat(core): ldml: tiny passes tests
- removed null from build, invalid
2022-08-18 14:27:17 -05:00
Steven R. Loomis
95b4469ea8 feat(core): build out ldml structures
- checkin spec to repo
- new header: kmx_plus.h with data access structs and functions
- static asserts to validate header sizes
- early validation of data
- internal dump of kmx+ data
2022-08-17 15:53:53 -05:00
Steven R. Loomis
615eec89ca feat(core): augment unit tests for ldml
- add 001_tiny to the build, annotate with expected run
2022-08-17 13:31:09 -05:00
Marc Durdin
7ff9e79e01 feat(core): ldml unit tests and stub actions
* Enables identification of KMXPlus files in processor factory
* Adds a stub action to generate an 'a' output character
* Adds a passing null_keyboard unit test for a hypothetical ldml
  keyboard
2022-08-07 08:02:50 -05:00