go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/processes/ps1getprocess_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package processes_test 5 6 import ( 7 "os" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 "go.mondoo.com/cnquery/providers/os/resources/processes" 13 ) 14 15 func TestWindows2019ServiceParser(t *testing.T) { 16 data, err := os.Open("./testdata/windows2019.json") 17 require.NoError(t, err) 18 19 procs, err := processes.ParseWindowsProcesses(data) 20 assert.Nil(t, err) 21 assert.Equal(t, 2, len(procs)) 22 23 expected := &processes.WindowsProcess{ 24 ID: 2736, 25 Name: "cmd", 26 Description: "Windows Command Processor", 27 PriorityClass: 32, 28 PM: 2424832, 29 NPM: 5016, 30 CPU: 0, 31 VirtualMemorySize: 58183680, 32 Responding: true, 33 SessionId: 0, 34 StartTime: "/Date(1587025497287)/", 35 TotalProcessorTime: processes.WindowsTotalProcessorTime{ 36 Ticks: 0, 37 Days: 0, 38 Hours: 0, 39 Milliseconds: 0, 40 Minutes: 0, 41 Seconds: 0, 42 TotalDays: 0, 43 TotalHours: 0, 44 TotalMilliseconds: 0, 45 TotalMinutes: 0, 46 TotalSeconds: 0, 47 }, 48 UserName: "Test\\chris", 49 Path: "c:\\windows\\system32\\cmd.exe", 50 } 51 found := findProcess(procs, 2736) 52 assert.EqualValues(t, expected, found) 53 54 expected = &processes.WindowsProcess{ 55 ID: 3820, 56 Name: "cmd", 57 Description: "Windows Command Processor", 58 PriorityClass: 32, 59 PM: 2412544, 60 NPM: 5016, 61 CPU: 0.015625, 62 VirtualMemorySize: 58183680, 63 Responding: true, 64 SessionId: 0, 65 StartTime: "/Date(1587027060471)/", 66 TotalProcessorTime: processes.WindowsTotalProcessorTime{ 67 Ticks: 156250, 68 Days: 0, 69 Hours: 0, 70 Milliseconds: 15, 71 Minutes: 0, 72 Seconds: 0, 73 TotalDays: 1.808449074074074e-07, 74 TotalHours: 4.340277777777778e-06, 75 TotalMilliseconds: 15.625, 76 TotalMinutes: 0.00026041666666666666, 77 TotalSeconds: 0.015625, 78 }, 79 UserName: "Test\\chris", 80 Path: "c:\\windows\\system32\\cmd.exe", 81 } 82 found = findProcess(procs, 3820) 83 assert.EqualValues(t, expected, found) 84 } 85 86 func TestWindows2022ServiceParser(t *testing.T) { 87 data, err := os.Open("./testdata/windows2022.json") 88 require.NoError(t, err) 89 90 procs, err := processes.ParseWindowsProcesses(data) 91 assert.Nil(t, err) 92 assert.Equal(t, 2, len(procs)) 93 94 expected := &processes.WindowsProcess{ 95 ID: 2628, 96 Name: "cmd", 97 Description: "Windows Command Processor", 98 PriorityClass: 32, 99 PM: 4546560, 100 NPM: 5976, 101 CPU: 0.0625, 102 VirtualMemorySize: 63016960, 103 Responding: true, 104 SessionId: 0, 105 StartTime: "/Date(1666622681722)/", 106 TotalProcessorTime: processes.WindowsTotalProcessorTime{ 107 Ticks: 625000, 108 Days: 0, 109 Hours: 0, 110 Milliseconds: 62, 111 Minutes: 0, 112 Seconds: 0, 113 TotalDays: 7.2337962962962959e-07, 114 TotalHours: 1.7361111111111111e-05, 115 TotalMilliseconds: 62.5, 116 TotalMinutes: 0.0010416666666666667, 117 TotalSeconds: 0.0625, 118 }, 119 UserName: "WIN-E692AR0A0UB\\Administrator", 120 Path: "c:\\windows\\system32\\cmd.exe", 121 } 122 found := findProcess(procs, 2628) 123 assert.EqualValues(t, expected, found) 124 } 125 126 func findProcess(procs []processes.WindowsProcess, id int64) *processes.WindowsProcess { 127 for i := range procs { 128 if procs[i].ID == id { 129 return &procs[i] 130 } 131 } 132 return nil 133 }