Files
hcanview/tests/test_usb.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

120 lines
3.3 KiB
C++

/**
* @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 <iostream>
#include <cassert>
/**
* @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<usb2can::usb::UsbDeviceInfo> 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;
}