Files
Apple-ADB-Ressurector/test/test_desktop/tests.cpp
T
Szymon Łopaciuk 5ae2e71abd first working prototype
Signed-off-by: Szymon Łopaciuk <szymon@lopaciuk.eu>
2021-02-10 01:19:54 +00:00

117 lines
3.2 KiB
C++

#define private public
#pragma GCC diagnostic ignored "-Wc++11-extensions"
#include <unity.h>
#include "adb_devices.h"
#include "hid_keyboard.h"
// void setUp(void) {
// // set stuff up here
// }
// void tearDown(void) {
// // clean stuff up here
// }
void test_key_report_empty(void) {
hid_key_report k = {0};
for (uint8_t i = 0; i < 6; i++)
TEST_ASSERT_EQUAL(0, k.keys[i]);
TEST_ASSERT_EQUAL(0, k.modifiers);
}
void test_hid_keyboard_add_key_to_report(void) {
hid_key_report k = {0};
TEST_ASSERT_TRUE(hid_keyboard_add_key_to_report(&k, 1));
TEST_ASSERT_TRUE(hid_keyboard_add_key_to_report(&k, 2));
TEST_ASSERT_TRUE(hid_keyboard_add_key_to_report(&k, 3));
TEST_ASSERT_TRUE(hid_keyboard_add_key_to_report(&k, 2));
TEST_ASSERT_EQUAL(1, k.keys[0]);
TEST_ASSERT_EQUAL(2, k.keys[1]);
TEST_ASSERT_EQUAL(3, k.keys[2]);
TEST_ASSERT_EQUAL(0, k.keys[3]);
TEST_ASSERT_EQUAL(0, k.keys[4]);
TEST_ASSERT_EQUAL(0, k.keys[5]);
}
void test_hid_keyboard_remove_key_from_report(void) {
hid_key_report k = {0};
uint8_t initial_keys[] = {7, 8, 9, 0, 0, 0};
for (uint8_t i = 0; i < 6; i++) {
k.keys[i] = initial_keys[i];
}
hid_keyboard_remove_key_from_report(&k, 7);
hid_keyboard_remove_key_from_report(&k, 9);
hid_keyboard_remove_key_from_report(&k, 7);
TEST_ASSERT_EQUAL(0, k.keys[0]);
TEST_ASSERT_EQUAL(8, k.keys[1]);
TEST_ASSERT_EQUAL(0, k.keys[2]);
TEST_ASSERT_EQUAL(0, k.keys[3]);
TEST_ASSERT_EQUAL(0, k.keys[4]);
TEST_ASSERT_EQUAL(0, k.keys[5]);
}
void test_adb_kb_keypress(void) {
uint8_t kp_bin[2] = {0b10000001, 0b00001011};
adb_kb_keypress kp_stru;
kp_stru.released0 = true;
kp_stru.key0 = 1;
kp_stru.released1 = false;
kp_stru.key1 = 11;
uint16_t kp_stru_bin = *((uint16_t*)&kp_stru);
TEST_ASSERT_EQUAL(kp_bin, kp_stru_bin);
}
void test_adb_kb_modifiers() {
uint8_t mod_bin[2] = {0b00110101, 0b11000010};
adb_kb_modifiers mod_stru = *((adb_kb_modifiers*)&mod_bin);
TEST_ASSERT_EQUAL(0, mod_stru.reserved0);
TEST_ASSERT_EQUAL(0, mod_stru.backspace);
TEST_ASSERT_EQUAL(1, mod_stru.caps_lock);
TEST_ASSERT_EQUAL(1, mod_stru.reset);
TEST_ASSERT_EQUAL(0, mod_stru.control);
TEST_ASSERT_EQUAL(1, mod_stru.shift);
TEST_ASSERT_EQUAL(0, mod_stru.option);
TEST_ASSERT_EQUAL(1, mod_stru.command);
TEST_ASSERT_EQUAL(1, mod_stru.num_lock);
TEST_ASSERT_EQUAL(1, mod_stru.scroll_lock);
TEST_ASSERT_EQUAL(0, mod_stru.reserved1);
TEST_ASSERT_EQUAL(0, mod_stru.led_scroll);
TEST_ASSERT_EQUAL(1, mod_stru.led_caps);
TEST_ASSERT_EQUAL(0, mod_stru.led_num);
}
void test_adb_command() {
uint8_t cmd_bin = 0b01101001;
adb_command cmd_stru = *((adb_command*)&cmd_bin);
TEST_ASSERT_EQUAL(6, cmd_stru.addr);
TEST_ASSERT_EQUAL(2, cmd_stru.cmd);
TEST_ASSERT_EQUAL(1, cmd_stru.reg);
}
int main(int argc, char **argv) {
UNITY_BEGIN();
RUN_TEST(test_key_report_empty);
RUN_TEST(test_hid_keyboard_add_key_to_report);
RUN_TEST(test_hid_keyboard_remove_key_from_report);
RUN_TEST(test_adb_kb_keypress);
RUN_TEST(test_adb_kb_modifiers);
RUN_TEST(test_adb_command);
UNITY_END();
return 0;
}