Must be run with the bundle checked out to `epan/build/justlib`. Also,
the build process is awkward. To be improved in a follow-up.
cd testing && make common && cd kaleidoscope && make
Signed-off-by: Eric Paniagua <epaniagua@google.com>
They can be run individually, but if run all together the output will be
split up by build output. Unset VERBOSE to see the ouput more compactly.
Signed-off-by: Eric Paniagua <epaniagua@google.com>
Also, modify bin/kaleidoscope-builder to allow for building just a
library. Requires bundle branch epan/build/justlib until that is merged
into master.
Signed-off-by: Eric Paniagua <eric.paniagua@gmail.com>
Previously, rolling over from one System Control key to another would
cause the second one to be released as soon as the first one was
released, because the empty release report would be sent
unconditionally on release of any System Control key.
This change stores the value of the last System Control key
pressed. When a System Control key is released, it first checks to see
that the released key's keycode matches the last one pressed before
sending the empty report.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
- Make the other target I know of (run-simulator-tests) build
gtest/gmock so that the build isn't broken for that target.
- "make clean" in googletest as part of the "clean" target in
kaleidoscope-builder.
Signed-off-by: Eric Paniagua <epaniagua@google.com>
- Caveat: This won't work out of the box until virtual/platform.txt is
updated in the bundle repo to force the appropriate include and linker
paths.
- arduino-builder fails if it can't find a library for any included
header. fake-gtest is a library designed to fake out this detection
mechanism.
- Add a gtest test that exercises the simulator. This is
hello-simulator_test.h. It has to be a .h or else arduino-builder will
fail to compile it with one excuse or another.
- Add run-simulator-googletest "target" to the build system. It will
take care of running cmake and building googletest and googlemock. Of
course, this requires that cmake be installed on your system.
Signed-off-by: Eric Paniagua <epaniagua@google.com>
Since the PR was made for the ButterStick and FaunchPad, ATMega32U4Keyboard has
had a breaking API update. Follow up on that now.
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
This will build a Docker image with all dependencies installed, then run the
simulator tests within it, using the current bundle as a volume.
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Key masking was a bandaid, and we have better ways to achieve the same thing
now. All current users have been switched over to different methods now, so lets
deprecate the masking.
We only put the `DEPRECATED` label on the `maskKey` method, because the rest are
used internally too, and we do not want to emit warnings for those.
Fixes#884.
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
We want to remove the use of key masking, so instead of masking the key when
escaping a OneShot, map it to `NoKey` instead, and continue doing so until
released. Which is effectively what masking did, but localized and simpler.
Doing this will make our cache have `NoKey` for the key until release, and we'll
avoid sending unintended Escape keycodes, without having to use the global
masking functions.
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
We introduced the masking to avoid sending extra keys when the mapped key
changes prior to release - but since the introduction of the caching mechanism,
we no longer need to do this.
However, for the caching to work the way we want it to, we need to map the key
to `NoKey` once, upon interrupting.
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
squash! TapDance: Do not mask interrupting keys anymore
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
While we do not currently support any other compiler than the gcc suite, we
eventually want to. Meanwhile, we also want to be able to easily switch to gcc
when that's not the default on the system.
For this reason, we introduce `KALEIDOSCOPE_COMPILER`, which can be set to `gcc`
or `clang`, and `kaleidoscope-builder` will then set up the appropriate
basenames.
This, combined with the previous change, allows us to easily select gcc for
virtual builds, even when clang is the default on the system.
Signed-off-by: Gergely Nagy <algernon@keyboard.io>