Files
hcanview/tests/test_platform.cpp
yemai 81bee50cd9 Initial commit: Complete USB2CAN cross-platform framework
Features:
- Cross-platform support (Windows/Linux/macOS)
- CAN and CANFD protocol support
- USB communication (WinUSB/libusb)
- Device management and configuration
- Message transmission and reception
- Filter configuration
- CMake build system
- Comprehensive examples and tests
2025-09-11 17:56:26 +08:00

119 lines
3.2 KiB
C++

/**
* @file test_platform.cpp
* @brief 平台抽象层测试
*/
#include "../include/platform/Platform.h"
#include "../include/platform/WindowsPlatform.h"
#include "../include/platform/LinuxPlatform.h"
#include <iostream>
#include <cassert>
/**
* @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<int>(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<std::string> 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;
}