/** * @file test_usb.cpp * @brief USB通信层测试 */ #include "../include/usb/UsbDevice.h" #include "../include/usb/WinUsbDevice.h" #include "../include/usb/LinuxUsbDevice.h" #include "../include/platform/Platform.h" #include #include /** * @brief 测试USB设备创建功能 * @return 测试结果 */ bool test_usb_device_creation() { std::cout << " [TEST] Testing USB device creation..." << std::endl; // 创建平台实例 usb2can::platform::Platform* platform = usb2can::platform::Platform::createPlatform(); if (!platform) { std::cout << " [FAIL] Failed to create platform instance" << std::endl; return false; } // 创建USB设备实例 usb2can::usb::UsbDevice* device = usb2can::usb::UsbDevice::createUsbDevice(platform); if (!device) { std::cout << " [FAIL] Failed to create USB device instance" << std::endl; delete platform; return false; } std::cout << " [PASS] USB device created successfully" << std::endl; // 清理资源 delete device; delete platform; return true; } /** * @brief 测试USB设备管理器创建功能 * @return 测试结果 */ bool test_usb_device_manager_creation() { std::cout << " [TEST] Testing USB device manager creation..." << std::endl; // 创建平台实例 usb2can::platform::Platform* platform = usb2can::platform::Platform::createPlatform(); if (!platform) { std::cout << " [FAIL] Failed to create platform instance" << std::endl; return false; } // 创建USB设备管理器实例 usb2can::usb::UsbDeviceManager manager(platform); std::cout << " [PASS] USB device manager created successfully" << std::endl; // 清理资源 delete platform; return true; } /** * @brief 测试USB设备扫描功能 * @return 测试结果 */ bool test_usb_device_scan() { std::cout << " [TEST] Testing USB device scanning..." << std::endl; // 创建平台实例 usb2can::platform::Platform* platform = usb2can::platform::Platform::createPlatform(); if (!platform) { std::cout << " [FAIL] Failed to create platform instance" << std::endl; return false; } // 初始化平台 if (!platform->initialize()) { std::cout << " [FAIL] Failed to initialize platform" << std::endl; delete platform; return false; } // 创建USB设备管理器实例 usb2can::usb::UsbDeviceManager manager(platform); // 扫描USB设备 std::vector devices = manager.scanDevices(); std::cout << " [INFO] Found " << devices.size() << " USB devices" << std::endl; // 清理资源 delete platform; return true; } /** * @brief 测试USB通信层 * @return 测试结果 */ bool test_usb() { std::cout << "\n[TEST] Starting USB communication layer tests..." << std::endl; bool all_passed = true; // 运行测试 all_passed &= test_usb_device_creation(); all_passed &= test_usb_device_manager_creation(); all_passed &= test_usb_device_scan(); std::cout << "[TEST] USB communication layer tests " << (all_passed ? "PASSED" : "FAILED") << std::endl; return all_passed; }