press_key(1, 0);
press_key(0, 3);
//Note that QMK only processes one key at a time
+ //See issue #1476 for more information
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_B)));
keyboard_task();
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_B, KC_C)));
press_key(3, 0);
press_key(0, 0);
// Unfortunately modifiers are also processed in the wrong order
+ // See issue #1476 for more information
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A)));
keyboard_task();
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_A, KC_LSFT)));
press_key(3, 0);
press_key(5, 0);
// Unfortunately modifiers are also processed in the wrong order
+ // See issue #1476 for more information
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT)));
keyboard_task();
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_LCTRL)));
press_key(3, 0);
press_key(4, 0);
// Unfortunately modifiers are also processed in the wrong order
+ // See issue #1476 for more information
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT)));
keyboard_task();
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_RSFT)));
press_key(6, 0);
// BUG: The press is split into two reports
// BUG: It reports RSFT instead of LSFT
+ // See issue #524 for more information
+ // The underlying cause is that we use only one bit to represent the right hand
+ // modifiers.
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_RSFT, KC_RCTRL)));
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_RSFT, KC_RCTRL, KC_O)));
keyboard_task();