@@ -35,6 +35,7 @@ describe("process tree CPU helpers", () => {
|
35 | 35 | expect(parsePsRssBytes("")).toBeNull(); |
36 | 36 | expect(parsePsRssBytes("nope")).toBeNull(); |
37 | 37 | expect(parsePsRssBytes("-1")).toBeNull(); |
| 38 | +expect(parsePsRssBytes("0x10")).toBeNull(); |
38 | 39 | }); |
39 | 40 | |
40 | 41 | it("parses Windows process CPU and RSS counters", () => { |
@@ -47,6 +48,16 @@ describe("process tree CPU helpers", () => {
|
47 | 48 | expect(parseWindowsWorkingSetBytes("1048576")).toBe(1_048_576); |
48 | 49 | }); |
49 | 50 | |
| 51 | +it("rejects non-decimal Windows process counters", () => { |
| 52 | +expect( |
| 53 | +parseWindowsProcessCpuTimeMs({ |
| 54 | +kernelModeTime: "0x10", |
| 55 | +userModeTime: "30000", |
| 56 | +}), |
| 57 | +).toBeNull(); |
| 58 | +expect(parseWindowsWorkingSetBytes("0x1000")).toBeNull(); |
| 59 | +}); |
| 60 | + |
50 | 61 | it("builds Windows process tree snapshots from PowerShell JSON", () => { |
51 | 62 | const snapshot = parseWindowsProcessTreeSnapshot( |
52 | 63 | JSON.stringify([ |
@@ -74,4 +85,22 @@ describe("process tree CPU helpers", () => {
|
74 | 85 | expect(snapshot?.rssByPid.get(100)).toBe(1000); |
75 | 86 | expect(snapshot?.rssByPid.get(101)).toBe(2000); |
76 | 87 | }); |
| 88 | + |
| 89 | +it("skips Windows process entries with non-decimal process ids", () => { |
| 90 | +const snapshot = parseWindowsProcessTreeSnapshot( |
| 91 | +JSON.stringify([ |
| 92 | +{ |
| 93 | +ProcessId: "0x64", |
| 94 | +ParentProcessId: 50, |
| 95 | +KernelModeTime: "10000", |
| 96 | +UserModeTime: "20000", |
| 97 | +WorkingSetSize: "1000", |
| 98 | +}, |
| 99 | +]), |
| 100 | +); |
| 101 | + |
| 102 | +expect(snapshot?.childrenByParent.size).toBe(0); |
| 103 | +expect(snapshot?.cpuByPid.size).toBe(0); |
| 104 | +expect(snapshot?.rssByPid.size).toBe(0); |
| 105 | +}); |
77 | 106 | }); |