Files
hcanview/tests/test_usb.cpp

120 lines
3.3 KiB
C++
Raw Permalink Normal View History

/**
* @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;
}