add go bench client

This commit is contained in:
Gilles Soulier
2026-01-11 23:41:30 +01:00
parent c67befc549
commit 6abc70cdfe
80 changed files with 13311 additions and 61 deletions

View File

@@ -0,0 +1,89 @@
#!/usr/bin/env python3
"""
Test script to verify WiFi adapter classification
"""
import sys
sys.path.insert(0, '/home/gilles/projects/serv_benchmark/backend')
from app.utils.device_classifier import DeviceClassifier
# Test data from the Realtek RTL8188GU WiFi adapter
test_content = """
Bus 003 Device 002: ID 0bda:b711 Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (After Modeswitch)
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 [unknown]
bDeviceSubClass 0 [unknown]
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0bda Realtek Semiconductor Corp.
idProduct 0xb711 RTL8188GU 802.11n WLAN Adapter (After Modeswitch)
bcdDevice 2.00
iManufacturer 1 Realtek
iProduct 2 802.11n WLAN Adapter
iSerial 3 00E04CB82101
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x003c
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 6
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 2 802.11n WLAN Adapter
"""
device_info = {
"vendor_id": "0x0bda",
"product_id": "0xb711",
"manufacturer": "Realtek",
"product": "802.11n WLAN Adapter",
"interface_classes": [{"code": 255, "name": "Vendor Specific Class"}],
"device_class": "00"
}
print("=" * 60)
print("TEST: Realtek RTL8188GU WiFi Adapter Classification")
print("=" * 60)
# Test 1: Full classification
type_principal, sous_type = DeviceClassifier.classify_device(
cli_content=test_content,
synthese_content=None,
device_info=device_info
)
print(f"\n✓ Type principal: {type_principal}")
print(f"✓ Sous-type: {sous_type}")
# Test 2: Keyword detection
keyword_result = DeviceClassifier.detect_from_keywords(test_content)
print(f"\n✓ Keyword detection: {keyword_result}")
# Test 3: Network refinement
if type_principal == "USB" and sous_type == "Autre":
refined = DeviceClassifier.refine_usb_network_subtype(test_content)
print(f"\n✓ After refinement: USB / {refined}")
sous_type = refined
print("\n" + "=" * 60)
if type_principal == "USB" and sous_type == "Adaptateur WiFi":
print("✅ SUCCESS: Correctly identified as WiFi adapter!")
else:
print(f"❌ FAILED: Expected 'USB / Adaptateur WiFi', got '{type_principal} / {sous_type}'")
print("=" * 60)