Files
gronod 3c9e209289
MacMonitor CI/CD Pipeline / Build & Test (Intel x86_64) (push) Canceled after 0s
feat(telemetry): implement Intel and AMD GPU telemetry provider (fixes #14)
2026-09-08 12:44:06 +01:00

55 lines
1.9 KiB
Swift

import XCTest
@testable import MacMonitor
final class MMGPUTests: XCTestCase {
func testGPUMetricsCalculation() {
let mockGPUs: [[String: Any]] = [
[
"name": "Intel Iris Plus Graphics 655",
"type": "Integrated",
"utilization": 15.0,
"vramUsedBytes": 500_000_000,
"vramTotalBytes": 1_500_000_000,
"temperature": 45.0,
"isLowPower": true,
"isRemovable": false
],
[
"name": "AMD Radeon Pro 560X",
"type": "Discrete",
"utilization": 75.0,
"vramUsedBytes": 3_000_000_000,
"vramTotalBytes": 4_000_000_000,
"temperature": 68.0,
"isLowPower": false,
"isRemovable": false
]
]
let metrics = MMGPUTelemetryProvider.calculateGPUMetrics(withDevices: mockGPUs)
let count = metrics["gpuCount"] as? Int ?? 0
let avg = metrics["averageUtilization"] as? Double ?? 0
let peak = metrics["peakUtilization"] as? Double ?? 0
let active = metrics["activeGPUName"] as? String ?? ""
XCTAssertEqual(count, 2)
XCTAssertEqual(avg, 45.0, accuracy: 0.1)
XCTAssertEqual(peak, 75.0, accuracy: 0.1)
XCTAssertEqual(active, "AMD Radeon Pro 560X")
}
func testLiveGPUProvider() throws {
let provider = MMGPUTelemetryProvider()
XCTAssertEqual(provider.domain, .gpu)
XCTAssertEqual(provider.providerIdentifier, "com.i3omb.macmonitor.telemetry.gpu")
let sample = try provider.sampleTelemetry()
XCTAssertNotNil(sample)
XCTAssertNotNil(sample["gpuCount"])
XCTAssertNotNil(sample["devices"])
XCTAssertNotNil(sample["activeGPUName"])
}
}