mirror of
https://github.com/morgan9e/macos-stats
synced 2026-04-14 00:04:15 +09:00
fix: adjusted RAM top process parser (when the process has 0 PID and 0 in the usage)
This commit is contained in:
@@ -154,10 +154,14 @@ public class ProcessReader: Reader<[TopProcess]> {
|
||||
}
|
||||
|
||||
static public func parseProcess(_ raw: String) -> TopProcess {
|
||||
let str = raw.trimmingCharacters(in: .whitespaces)
|
||||
var str = raw.trimmingCharacters(in: .whitespaces)
|
||||
let pidString = str.find(pattern: "^\\d+")
|
||||
|
||||
var arr = str.replacingOccurrences(of: pidString, with: "").split(separator: " ")
|
||||
if let range = str.range(of: pidString) {
|
||||
str = str.replacingCharacters(in: range, with: "")
|
||||
}
|
||||
|
||||
var arr = str.split(separator: " ")
|
||||
if arr.first == "*" {
|
||||
arr.removeFirst()
|
||||
}
|
||||
|
||||
@@ -55,12 +55,15 @@ class RAM: XCTestCase {
|
||||
XCTAssertEqual(process.usage, 11 * Double(1024 * 1024 * 1024))
|
||||
}
|
||||
|
||||
func testReplacePID() throws {
|
||||
let raw = "0 kernel_task 270M "
|
||||
let process = ProcessReader.parseProcess(raw)
|
||||
|
||||
func testKernelTask() throws {
|
||||
var process = ProcessReader.parseProcess("0 kernel_task 270M ")
|
||||
XCTAssertEqual(process.pid, 0)
|
||||
XCTAssertEqual(process.command, "kernel_task")
|
||||
XCTAssertEqual(process.usage, 270 * Double(1024 * 1024))
|
||||
|
||||
process = ProcessReader.parseProcess("0 kernel_task 280M")
|
||||
XCTAssertEqual(process.pid, 0)
|
||||
XCTAssertEqual(process.command, "kernel_task")
|
||||
XCTAssertEqual(process.usage, 280 * Double(1024 * 1024))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user