Merge remote-tracking branch 'origin/master' into develop

This commit is contained in:
Zach White 2021-01-05 11:04:56 -08:00
commit cf2f13fc77
30 changed files with 159 additions and 135 deletions

View File

@ -1,23 +0,0 @@
/* Copyright 2019
*
* 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, either version 2 of the License, or
* (at your option) any later version.
*
* 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 <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
#define MATRIX_COL_PINS { A3 }
#define MATRIX_ROW_PINS { A2 }
#define UNUSED_PINS

View File

@ -1,3 +0,0 @@
# PyTest onekey
This is used by the python test framework. It's probably not useful otherwise.

View File

@ -1,3 +0,0 @@
# MCU name
MCU = STM32F303
BOARD = QMK_PROTON_C

View File

View File

@ -0,0 +1,5 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT_ortho_1x1(KC_A)
};

View File

@ -1,9 +1,9 @@
{ {
"keyboard": "handwired/onekey/pytest", "keyboard": "handwired/pytest/basic",
"keymap": "default_json", "keymap": "default_json",
"layout": "LAYOUT_ortho_1x1", "layout": "LAYOUT_ortho_1x1",
"layers": [["KC_A"]], "layers": [["KC_A"]],
"author": "qmk", "author": "qmk",
"notes": "This file is a keymap.json file for handwired/onekey/pytest", "notes": "This file is a keymap.json file for handwired/pytest/basic",
"version": 1 "version": 1
} }

View File

@ -0,0 +1 @@
MCU = atmega32u4

View File

@ -0,0 +1,18 @@
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6465
#define DEVICE_VER 0x0001
#define MANUFACTURER none
#define PRODUCT pytest
/* key matrix size */
#define MATRIX_ROWS 1
#define MATRIX_COLS 1
#define MATRIX_COL_PINS { F4 }
#define MATRIX_ROW_PINS { F5 }
#define DIODE_DIRECTION COL2ROW

View File

@ -0,0 +1,3 @@
MCU = atmega32u4
LAYOUTS = ortho_1x1

View File

@ -0,0 +1,5 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT_ortho_1x1(KC_A)
};

View File

@ -0,0 +1,9 @@
{
"keyboard": "handwired/pytest/has_template",
"keymap": "default_json",
"layout": "LAYOUT_ortho_1x1",
"layers": [["KC_A"]],
"author": "qmk",
"notes": "This file is a keymap.json file for handwired/pytest/has_template",
"version": 1
}

View File

@ -0,0 +1 @@
MCU = atmega32u4

View File

@ -1,3 +1,3 @@
{ {
"documentation": "This file is a keymap.json file for handwired/onekey/pytest" "documentation": "This file is a keymap.json file for handwired/pytest/has_template"
} }

View File

@ -0,0 +1,11 @@
#pragma once
#include "quantum.h"
#define LAYOUT_ortho_1x1( \
k00 \
) { \
{ k00 } \
}
#define LAYOUT LAYOUT_ortho_1x1

View File

@ -1,19 +1,19 @@
/* /*
Copyright 2020 Garret Gartner Copyright 2020 Garret Gartner
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or the Free Software Foundation, either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
@ -159,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// KEYMAP TEMPLATE: // KEYMAP TEMPLATE:
// //
// /* <_LAYER>: // /* <_LAYER>:
// * // *
// * ┌────┐ ┌────┐ ┌────┬────┬────┐ // * ┌────┐ ┌────┐ ┌────┬────┬────┐
@ -185,16 +185,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Per-Key Tapping Term Definitions: // Per-Key Tapping Term Definitions:
uint16_t get_tapping_term(uint16_t keycode) { uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) { switch (keycode) {
case TD(TD_DBQT): case TD(TD_DBQT):
return 235; return 235;
default: default:
return TAPPING_TERM; return TAPPING_TERM;
} }
} }
// Encoder Customization: (*Order-of-Keycode Specific) // Encoder Customization: (*Order-of-Keycode Specific)
void encoder_update_user(uint8_t index, bool clockwise) { void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { if (index == 0) {

View File

@ -1,19 +1,19 @@
/* /*
Copyright 2020 Garret Gartner Copyright 2020 Garret Gartner
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or the Free Software Foundation, either version 2 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
@ -184,19 +184,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ) // )
// Per-Key Tapping Term Definitions: // Per-Key Tapping Term Definitions:
uint16_t get_tapping_term(uint16_t keycode) { uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) { switch (keycode) {
case TD(TD_DBQT): case TD(TD_DBQT):
return 235; return 235;
default: default:
return TAPPING_TERM; return TAPPING_TERM;
} }
} }
// Encoder Customization: (*Order-of-Keycode Specific) // Encoder Customization: (*Order-of-Keycode Specific)
void encoder_update_user(uint8_t index, bool clockwise) { void encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) { if (index == 0) {

View File

@ -69,7 +69,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define B5_AUDIO #define B5_AUDIO
#define AUDIO_CLICKY #define AUDIO_CLICKY
#define NO_MUSIC_MODE
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5 #define DEBOUNCE 5
@ -81,5 +81,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_SUPPORT_ENABLE #define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */ /* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE #define LOCKING_RESYNC_ENABLE

View File

@ -1,5 +1,5 @@
{ {
"keyboard":"handwired/onekey/pytest", "keyboard":"handwired/pytest/basic",
"keymap":"pytest_unittest", "keymap":"pytest_unittest",
"layout":"LAYOUT", "layout":"LAYOUT",
"layers":[["KC_A"]] "layers":[["KC_A"]]

View File

@ -38,17 +38,17 @@ def test_cformat():
def test_compile(): def test_compile():
result = check_subcommand('compile', '-kb', 'handwired/onekey/pytest', '-km', 'default', '-n') result = check_subcommand('compile', '-kb', 'handwired/pytest/basic', '-km', 'default', '-n')
check_returncode(result) check_returncode(result)
def test_compile_json(): def test_compile_json():
result = check_subcommand('compile', '-kb', 'handwired/onekey/pytest', '-km', 'default_json', '-n') result = check_subcommand('compile', '-kb', 'handwired/pytest/basic', '-km', 'default_json', '-n')
check_returncode(result) check_returncode(result)
def test_flash(): def test_flash():
result = check_subcommand('flash', '-kb', 'handwired/onekey/pytest', '-km', 'default', '-n') result = check_subcommand('flash', '-kb', 'handwired/pytest/basic', '-km', 'default', '-n')
check_returncode(result) check_returncode(result)
@ -92,20 +92,26 @@ def test_list_keyboards():
result = check_subcommand('list-keyboards') result = check_subcommand('list-keyboards')
check_returncode(result) check_returncode(result)
# check to see if a known keyboard is returned # check to see if a known keyboard is returned
# this will fail if handwired/onekey/pytest is removed # this will fail if handwired/pytest/basic is removed
assert 'handwired/onekey/pytest' in result.stdout assert 'handwired/pytest/basic' in result.stdout
def test_list_keymaps(): def test_list_keymaps():
result = check_subcommand('list-keymaps', '-kb', 'handwired/onekey/pytest') result = check_subcommand('list-keymaps', '-kb', 'handwired/pytest/basic')
check_returncode(result) check_returncode(result)
assert 'default' and 'test' in result.stdout assert 'default' and 'default_json' in result.stdout
def test_list_keymaps_long(): def test_list_keymaps_long():
result = check_subcommand('list-keymaps', '--keyboard', 'handwired/onekey/pytest') result = check_subcommand('list-keymaps', '--keyboard', 'handwired/pytest/basic')
check_returncode(result) check_returncode(result)
assert 'default' and 'test' in result.stdout assert 'default' and 'default_json' in result.stdout
def test_list_keymaps_community():
result = check_subcommand('list-keymaps', '--keyboard', 'handwired/pytest/has_community')
check_returncode(result)
assert 'test' in result.stdout
def test_list_keymaps_kb_only(): def test_list_keymaps_kb_only():
@ -133,40 +139,40 @@ def test_list_keymaps_no_keyboard_found():
def test_json2c(): def test_json2c():
result = check_subcommand('json2c', 'keyboards/handwired/onekey/keymaps/default_json/keymap.json') result = check_subcommand('json2c', 'keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json')
check_returncode(result) check_returncode(result)
assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n' assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n'
def test_json2c_stdin(): def test_json2c_stdin():
result = check_subcommand_stdin('keyboards/handwired/onekey/keymaps/default_json/keymap.json', 'json2c', '-') result = check_subcommand_stdin('keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json', 'json2c', '-')
check_returncode(result) check_returncode(result)
assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n' assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n'
def test_info(): def test_info():
result = check_subcommand('info', '-kb', 'handwired/onekey/pytest') result = check_subcommand('info', '-kb', 'handwired/pytest/basic')
check_returncode(result) check_returncode(result)
assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout assert 'Keyboard Name: handwired/pytest/basic' in result.stdout
assert 'Processor: STM32F303' in result.stdout assert 'Processor: atmega32u4' in result.stdout
assert 'Layout:' not in result.stdout assert 'Layout:' not in result.stdout
assert 'k0' not in result.stdout assert 'k0' not in result.stdout
def test_info_keyboard_render(): def test_info_keyboard_render():
result = check_subcommand('info', '-kb', 'handwired/onekey/pytest', '-l') result = check_subcommand('info', '-kb', 'handwired/pytest/basic', '-l')
check_returncode(result) check_returncode(result)
assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout assert 'Keyboard Name: handwired/pytest/basic' in result.stdout
assert 'Processor: STM32F303' in result.stdout assert 'Processor: atmega32u4' in result.stdout
assert 'Layouts:' in result.stdout assert 'Layouts:' in result.stdout
assert 'k0' in result.stdout assert 'k0' in result.stdout
def test_info_keymap_render(): def test_info_keymap_render():
result = check_subcommand('info', '-kb', 'handwired/onekey/pytest', '-km', 'default_json') result = check_subcommand('info', '-kb', 'handwired/pytest/basic', '-km', 'default_json')
check_returncode(result) check_returncode(result)
assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout assert 'Keyboard Name: handwired/pytest/basic' in result.stdout
assert 'Processor: STM32F303' in result.stdout assert 'Processor: atmega32u4' in result.stdout
if is_windows: if is_windows:
assert '|A |' in result.stdout assert '|A |' in result.stdout
@ -175,10 +181,10 @@ def test_info_keymap_render():
def test_info_matrix_render(): def test_info_matrix_render():
result = check_subcommand('info', '-kb', 'handwired/onekey/pytest', '-m') result = check_subcommand('info', '-kb', 'handwired/pytest/basic', '-m')
check_returncode(result) check_returncode(result)
assert 'Keyboard Name: handwired/onekey/pytest' in result.stdout assert 'Keyboard Name: handwired/pytest/basic' in result.stdout
assert 'Processor: STM32F303' in result.stdout assert 'Processor: atmega32u4' in result.stdout
assert 'LAYOUT_ortho_1x1' in result.stdout assert 'LAYOUT_ortho_1x1' in result.stdout
if is_windows: if is_windows:
@ -190,27 +196,27 @@ def test_info_matrix_render():
def test_c2json(): def test_c2json():
result = check_subcommand("c2json", "-kb", "handwired/onekey/pytest", "-km", "default", "keyboards/handwired/onekey/keymaps/default/keymap.c") result = check_subcommand("c2json", "-kb", "handwired/pytest/has_template", "-km", "default", "keyboards/handwired/pytest/has_template/keymaps/default/keymap.c")
check_returncode(result) check_returncode(result)
assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}' assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}'
def test_c2json_nocpp(): def test_c2json_nocpp():
result = check_subcommand("c2json", "--no-cpp", "-kb", "handwired/onekey/pytest", "-km", "default", "keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c") result = check_subcommand("c2json", "--no-cpp", "-kb", "handwired/pytest/has_template", "-km", "default", "keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c")
check_returncode(result) check_returncode(result)
assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}'
def test_c2json_stdin(): def test_c2json_stdin():
result = check_subcommand_stdin("keyboards/handwired/onekey/keymaps/default/keymap.c", "c2json", "-kb", "handwired/onekey/pytest", "-km", "default", "-") result = check_subcommand_stdin("keyboards/handwired/pytest/has_template/keymaps/default/keymap.c", "c2json", "-kb", "handwired/pytest/has_template", "-km", "default", "-")
check_returncode(result) check_returncode(result)
assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}' assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT_ortho_1x1", "layers": [["KC_A"]]}'
def test_c2json_nocpp_stdin(): def test_c2json_nocpp_stdin():
result = check_subcommand_stdin("keyboards/handwired/onekey/keymaps/pytest_nocpp/keymap.c", "c2json", "--no-cpp", "-kb", "handwired/onekey/pytest", "-km", "default", "-") result = check_subcommand_stdin("keyboards/handwired/pytest/has_template/keymaps/nocpp/keymap.c", "c2json", "--no-cpp", "-kb", "handwired/pytest/has_template", "-km", "default", "-")
check_returncode(result) check_returncode(result)
assert result.stdout.strip() == '{"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}' assert result.stdout.strip() == '{"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_ENTER"]]}'
def test_clean(): def test_clean():

View File

@ -1,38 +1,38 @@
import qmk.keymap import qmk.keymap
def test_template_c_onekey_proton_c(): def test_template_c_pytest_basic():
templ = qmk.keymap.template_c('handwired/onekey/proton_c') templ = qmk.keymap.template_c('handwired/pytest/basic')
assert templ == qmk.keymap.DEFAULT_KEYMAP_C assert templ == qmk.keymap.DEFAULT_KEYMAP_C
def test_template_json_onekey_proton_c(): def test_template_json_pytest_basic():
templ = qmk.keymap.template_json('handwired/onekey/proton_c') templ = qmk.keymap.template_json('handwired/pytest/basic')
assert templ == {'keyboard': 'handwired/onekey/proton_c'} assert templ == {'keyboard': 'handwired/pytest/basic'}
def test_template_c_onekey_pytest(): def test_template_c_pytest_has_template():
templ = qmk.keymap.template_c('handwired/onekey/pytest') templ = qmk.keymap.template_c('handwired/pytest/has_template')
assert templ == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {__KEYMAP_GOES_HERE__};\n' assert templ == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {__KEYMAP_GOES_HERE__};\n'
def test_template_json_onekey_pytest(): def test_template_json_pytest_has_template():
templ = qmk.keymap.template_json('handwired/onekey/pytest') templ = qmk.keymap.template_json('handwired/pytest/has_template')
assert templ == {'keyboard': 'handwired/onekey/pytest', "documentation": "This file is a keymap.json file for handwired/onekey/pytest"} assert templ == {'keyboard': 'handwired/pytest/has_template', "documentation": "This file is a keymap.json file for handwired/pytest/has_template"}
def test_generate_c_onekey_pytest(): def test_generate_c_pytest_has_template():
templ = qmk.keymap.generate_c('handwired/onekey/pytest', 'LAYOUT', [['KC_A']]) templ = qmk.keymap.generate_c('handwired/pytest/has_template', 'LAYOUT', [['KC_A']])
assert templ == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT(KC_A)};\n' assert templ == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT(KC_A)};\n'
def test_generate_json_onekey_pytest(): def test_generate_json_pytest_has_template():
templ = qmk.keymap.generate_json('default', 'handwired/onekey/pytest', 'LAYOUT', [['KC_A']]) templ = qmk.keymap.generate_json('default', 'handwired/pytest/has_template', 'LAYOUT', [['KC_A']])
assert templ == {"keyboard": "handwired/onekey/pytest", "documentation": "This file is a keymap.json file for handwired/onekey/pytest", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_A"]]} assert templ == {"keyboard": "handwired/pytest/has_template", "documentation": "This file is a keymap.json file for handwired/pytest/has_template", "keymap": "default", "layout": "LAYOUT", "layers": [["KC_A"]]}
def test_parse_keymap_c(): def test_parse_keymap_c():
parsed_keymap_c = qmk.keymap.parse_keymap_c('keyboards/handwired/onekey/keymaps/default/keymap.c') parsed_keymap_c = qmk.keymap.parse_keymap_c('keyboards/handwired/pytest/basic/keymaps/default/keymap.c')
assert parsed_keymap_c == {'layers': [{'name': '0', 'layout': 'LAYOUT_ortho_1x1', 'keycodes': ['KC_A']}]} assert parsed_keymap_c == {'layers': [{'name': '0', 'layout': 'LAYOUT_ortho_1x1', 'keycodes': ['KC_A']}]}

View File

@ -4,9 +4,9 @@ from pathlib import Path
import qmk.path import qmk.path
def test_keymap_onekey_pytest(): def test_keymap_pytest_basic():
path = qmk.path.keymap('handwired/onekey/pytest') path = qmk.path.keymap('handwired/pytest/basic')
assert path.samefile('keyboards/handwired/onekey/keymaps') assert path.samefile('keyboards/handwired/pytest/basic/keymaps')
def test_normpath(): def test_normpath():