/** * @file test_platform.cpp * @brief 平台抽象层测试 */ #include "../include/platform/Platform.h" #include "../include/platform/WindowsPlatform.h" #include "../include/platform/LinuxPlatform.h" #include #include /** * @brief 测试平台创建功能 * @return 测试结果 */ bool test_platform_creation() { std::cout << " [TEST] Testing platform 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; } // 检查平台类型 usb2can::platform::PlatformType type = platform->getPlatformType(); if (type == usb2can::platform::PlatformType::Unknown) { std::cout << " [FAIL] Unknown platform type" << std::endl; delete platform; return false; } std::cout << " [PASS] Platform type: " << static_cast(type) << std::endl; // 清理资源 delete platform; return true; } /** * @brief 测试平台初始化功能 * @return 测试结果 */ bool test_platform_initialization() { std::cout << " [TEST] Testing platform initialization..." << 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; } std::cout << " [PASS] Platform initialized 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设备 std::vector devices = platform->scanUsbDevices(); std::cout << " [INFO] Found " << devices.size() << " USB devices" << std::endl; // 清理资源 delete platform; return true; } /** * @brief 测试平台抽象层 * @return 测试结果 */ bool test_platform() { std::cout << "\n[TEST] Starting platform abstraction layer tests..." << std::endl; bool all_passed = true; // 运行测试 all_passed &= test_platform_creation(); all_passed &= test_platform_initialization(); all_passed &= test_usb_device_scan(); std::cout << "[TEST] Platform abstraction layer tests " << (all_passed ? "PASSED" : "FAILED") << std::endl; return all_passed; }