From ab7e4187d1dfeb9864aeadbfa21f13cc55dac1c6 Mon Sep 17 00:00:00 2001 From: Michael Richters Date: Tue, 3 Nov 2020 23:14:44 -0600 Subject: [PATCH] Update Redial testcase to use default keymap Signed-off-by: Michael Richters --- tests/plugins/Redial/basic/common.h | 32 +++++++++++++++ tests/plugins/Redial/basic/keymap-overrides.h | 39 +++++++++++++++++++ tests/plugins/Redial/basic/keymap.h | 31 +++++++++++++++ tests/plugins/Redial/basic/sketch.ino | 25 ++---------- tests/plugins/Redial/basic/test/testcase.cpp | 8 ++-- 5 files changed, 111 insertions(+), 24 deletions(-) create mode 100644 tests/plugins/Redial/basic/common.h create mode 100644 tests/plugins/Redial/basic/keymap-overrides.h create mode 100644 tests/plugins/Redial/basic/keymap.h diff --git a/tests/plugins/Redial/basic/common.h b/tests/plugins/Redial/basic/common.h new file mode 100644 index 00000000..5e6093ed --- /dev/null +++ b/tests/plugins/Redial/basic/common.h @@ -0,0 +1,32 @@ +// -*- mode: c++ -*- +/* Kaleidoscope - Firmware for computer input devices + * Copyright (C) 2020 Keyboard.io, Inc. + * + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +#pragma once + +#include +#include +#include + +#include "keymap.h" + +namespace kaleidoscope { +namespace testing { + +// Constants shared by both the sketch and the testcase should be defined here. + +} // namespace testing +} // namespace kaleidoscope diff --git a/tests/plugins/Redial/basic/keymap-overrides.h b/tests/plugins/Redial/basic/keymap-overrides.h new file mode 100644 index 00000000..df71c1af --- /dev/null +++ b/tests/plugins/Redial/basic/keymap-overrides.h @@ -0,0 +1,39 @@ +/* -*- mode: c++ -*- + * Copyright (C) 2020 Keyboard.io, Inc. + * + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +#pragma once + +#include +#include +#include "testing/keymap-defaults.h" + +#include + +namespace kaleidoscope { +namespace testing { +namespace keymap { + +class Keymap : public KeymapDefaults { + public: + // Layer 0 + static constexpr Key key_0AA = Key_Redial; + static constexpr Key key_0AB = Key_A; + static constexpr Key key_0AC = Key_X; +}; + +} // namespace keymap +} // namespace testing +} // namespace kaleidoscope diff --git a/tests/plugins/Redial/basic/keymap.h b/tests/plugins/Redial/basic/keymap.h new file mode 100644 index 00000000..1a187167 --- /dev/null +++ b/tests/plugins/Redial/basic/keymap.h @@ -0,0 +1,31 @@ +// -*- mode: c++ -*- +/* Kaleidoscope - Firmware for computer input devices + * Copyright (C) 2020 Keyboard.io, Inc. + * + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +#pragma once + +// Default key values to be used in sketches are defined from the +// `keymap-defaults.h` file, provided by Kaleidoscope. +#include "testing/keymap-defaults.h" + +// For keys of interest, the values can be overridden by defining them in the +// `keymap-overrides.h` file, in this directory. +#include "keymap-overrides.h" + +// Finally, we include this file so we can refer to key values in the keymap +// more briefly (`key_0AA` vs `Keymap::key_0AA`, both in the +// `kaleidoscope::testing::keymap` namespace). +#include "testing/keymap-aliases.inc" diff --git a/tests/plugins/Redial/basic/sketch.ino b/tests/plugins/Redial/basic/sketch.ino index f6ba3301..b96c1001 100644 --- a/tests/plugins/Redial/basic/sketch.ino +++ b/tests/plugins/Redial/basic/sketch.ino @@ -17,30 +17,13 @@ #include #include -// *INDENT-OFF* -KEYMAPS( - [0] = KEYMAP_STACKED - ( - Key_NoKey, Key_1, Key_2, Key_3, Key_4, Key_5, Key_NoKey, - Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab, - Key_PageUp, Key_A, Key_S, Key_D, Key_F, Key_G, - Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape, +#include "./common.h" +#include "testing/default-layers.h" - Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift, - XXX, +using namespace kaleidoscope::testing::keymap; - Key_Redial, Key_6, Key_7, Key_8, Key_9, Key_0, Key_skip, - Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Equals, - Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote, - Key_skip, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus, +KEYMAPS(LAYER_0); - Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl, - XXX - ), -) -// *INDENT-ON* - -// Use Redial KALEIDOSCOPE_INIT_PLUGINS(Redial); void setup() { diff --git a/tests/plugins/Redial/basic/test/testcase.cpp b/tests/plugins/Redial/basic/test/testcase.cpp index fd941cf3..10292351 100644 --- a/tests/plugins/Redial/basic/test/testcase.cpp +++ b/tests/plugins/Redial/basic/test/testcase.cpp @@ -16,15 +16,17 @@ #include "testing/setup-googletest.h" +#include "../common.h" + SETUP_GOOGLETEST(); namespace kaleidoscope { namespace testing { namespace { -constexpr KeyAddr key_addr_Redial{0, 9}; -constexpr KeyAddr key_addr_A{2, 1}; -constexpr KeyAddr key_addr_X{3, 2}; +constexpr KeyAddr key_addr_Redial = addr_AA; +constexpr KeyAddr key_addr_A = addr_AB; +constexpr KeyAddr key_addr_X = addr_AC; class RedialBasic : public VirtualDeviceTest { };