#include "unity.h" #include "usb/usb_transport.hpp" void setUp() {} void tearDown() {} // Pin the vendor request codes to transport/mt76_defs.h values. void test_vendor_request_codes(void) { TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::dev_mode), 0x01); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::write), 0x02); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::power_on), 0x04); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::multi_write), 0x06); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::multi_read), 0x07); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::read_eeprom), 0x09); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::write_fce), 0x42); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::write_cfg), 0x46); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::read_cfg), 0x47); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::read_ext), 0x63); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::write_ext), 0x66); TEST_ASSERT_EQUAL_UINT8(static_cast(xone::usb::vendor_request::feature_set), 0x91); } // Pin the endpoint numbers and buffer sizes to upstream values. void test_endpoint_constants(void) { TEST_ASSERT_EQUAL_UINT8(xone::usb::ep_in_cmd, 0x05); TEST_ASSERT_EQUAL_UINT8(xone::usb::ep_in_wlan, 0x04); TEST_ASSERT_EQUAL_UINT8(xone::usb::ep_out, 0x04); TEST_ASSERT_EQUAL_UINT32(xone::usb::len_cmd_pkt, 0x0654); TEST_ASSERT_EQUAL_UINT32(xone::usb::len_wlan_pkt, 0x8400); } // Without a dongle connected, probe must return nullptr. void test_probe_without_dongle(void) { if (xone::usb::dongle_present()) return; // skip: hardware present TEST_ASSERT_NULL(xone::usb::transport::probe(nullptr, nullptr)); } int main(void) { UNITY_BEGIN(); RUN_TEST(test_vendor_request_codes); RUN_TEST(test_endpoint_constants); RUN_TEST(test_probe_without_dongle); return UNITY_END(); }