node-os-utils 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README-zh.md +1291 -0
  3. package/README.md +28 -2
  4. package/dist/package.json +4 -2
  5. package/dist/src/adapters/linux-adapter.d.ts +17 -4
  6. package/dist/src/adapters/linux-adapter.d.ts.map +1 -1
  7. package/dist/src/adapters/linux-adapter.js +37 -12
  8. package/dist/src/adapters/linux-adapter.js.map +1 -1
  9. package/dist/src/adapters/macos-adapter.d.ts +17 -4
  10. package/dist/src/adapters/macos-adapter.d.ts.map +1 -1
  11. package/dist/src/adapters/macos-adapter.js +28 -11
  12. package/dist/src/adapters/macos-adapter.js.map +1 -1
  13. package/dist/src/adapters/windows-adapter.d.ts +13 -2
  14. package/dist/src/adapters/windows-adapter.d.ts.map +1 -1
  15. package/dist/src/adapters/windows-adapter.js +26 -3
  16. package/dist/src/adapters/windows-adapter.js.map +1 -1
  17. package/dist/src/monitors/cpu-monitor.d.ts.map +1 -1
  18. package/dist/src/monitors/cpu-monitor.js +7 -2
  19. package/dist/src/monitors/cpu-monitor.js.map +1 -1
  20. package/dist/src/monitors/process-monitor.d.ts +17 -4
  21. package/dist/src/monitors/process-monitor.d.ts.map +1 -1
  22. package/dist/src/monitors/process-monitor.js +30 -4
  23. package/dist/src/monitors/process-monitor.js.map +1 -1
  24. package/dist/src/types/config.d.ts +7 -0
  25. package/dist/src/types/config.d.ts.map +1 -1
  26. package/dist/src/utils/process-killer.d.ts +38 -0
  27. package/dist/src/utils/process-killer.d.ts.map +1 -0
  28. package/dist/src/utils/process-killer.js +96 -0
  29. package/dist/src/utils/process-killer.js.map +1 -0
  30. package/package.json +4 -2
  31. package/dist/.tsbuildinfo +0 -1
  32. package/dist/test/config/test-config.d.ts +0 -301
  33. package/dist/test/config/test-config.d.ts.map +0 -1
  34. package/dist/test/config/test-config.js +0 -235
  35. package/dist/test/config/test-config.js.map +0 -1
  36. package/dist/test/platform/linux.test.d.ts +0 -6
  37. package/dist/test/platform/linux.test.d.ts.map +0 -1
  38. package/dist/test/platform/linux.test.js +0 -307
  39. package/dist/test/platform/linux.test.js.map +0 -1
  40. package/dist/test/platform/macos.test.d.ts +0 -6
  41. package/dist/test/platform/macos.test.d.ts.map +0 -1
  42. package/dist/test/platform/macos.test.js +0 -276
  43. package/dist/test/platform/macos.test.js.map +0 -1
  44. package/dist/test/platform/windows.test.d.ts +0 -6
  45. package/dist/test/platform/windows.test.d.ts.map +0 -1
  46. package/dist/test/platform/windows.test.js +0 -320
  47. package/dist/test/platform/windows.test.js.map +0 -1
  48. package/dist/test/unit/adapters/adapter-factory.test.d.ts +0 -2
  49. package/dist/test/unit/adapters/adapter-factory.test.d.ts.map +0 -1
  50. package/dist/test/unit/adapters/adapter-factory.test.js +0 -147
  51. package/dist/test/unit/adapters/adapter-factory.test.js.map +0 -1
  52. package/dist/test/unit/adapters/linux-adapter.test.d.ts +0 -2
  53. package/dist/test/unit/adapters/linux-adapter.test.d.ts.map +0 -1
  54. package/dist/test/unit/adapters/linux-adapter.test.js +0 -204
  55. package/dist/test/unit/adapters/linux-adapter.test.js.map +0 -1
  56. package/dist/test/unit/adapters/macos-adapter.test.d.ts +0 -2
  57. package/dist/test/unit/adapters/macos-adapter.test.d.ts.map +0 -1
  58. package/dist/test/unit/adapters/macos-adapter.test.js +0 -237
  59. package/dist/test/unit/adapters/macos-adapter.test.js.map +0 -1
  60. package/dist/test/unit/adapters/windows-adapter.test.d.ts +0 -2
  61. package/dist/test/unit/adapters/windows-adapter.test.d.ts.map +0 -1
  62. package/dist/test/unit/adapters/windows-adapter.test.js +0 -111
  63. package/dist/test/unit/adapters/windows-adapter.test.js.map +0 -1
  64. package/dist/test/unit/core/base-monitor.test.d.ts +0 -2
  65. package/dist/test/unit/core/base-monitor.test.d.ts.map +0 -1
  66. package/dist/test/unit/core/base-monitor.test.js +0 -188
  67. package/dist/test/unit/core/base-monitor.test.js.map +0 -1
  68. package/dist/test/unit/core/cache-manager.test.d.ts +0 -6
  69. package/dist/test/unit/core/cache-manager.test.d.ts.map +0 -1
  70. package/dist/test/unit/core/cache-manager.test.js +0 -127
  71. package/dist/test/unit/core/cache-manager.test.js.map +0 -1
  72. package/dist/test/unit/core/platform-adapter.test.d.ts +0 -2
  73. package/dist/test/unit/core/platform-adapter.test.d.ts.map +0 -1
  74. package/dist/test/unit/core/platform-adapter.test.js +0 -186
  75. package/dist/test/unit/core/platform-adapter.test.js.map +0 -1
  76. package/dist/test/unit/index.test.d.ts +0 -2
  77. package/dist/test/unit/index.test.d.ts.map +0 -1
  78. package/dist/test/unit/index.test.js +0 -183
  79. package/dist/test/unit/index.test.js.map +0 -1
  80. package/dist/test/unit/monitors/cpu-monitor.test.d.ts +0 -2
  81. package/dist/test/unit/monitors/cpu-monitor.test.d.ts.map +0 -1
  82. package/dist/test/unit/monitors/cpu-monitor.test.js +0 -245
  83. package/dist/test/unit/monitors/cpu-monitor.test.js.map +0 -1
  84. package/dist/test/unit/monitors/disk-monitor.test.d.ts +0 -2
  85. package/dist/test/unit/monitors/disk-monitor.test.d.ts.map +0 -1
  86. package/dist/test/unit/monitors/disk-monitor.test.js +0 -46
  87. package/dist/test/unit/monitors/disk-monitor.test.js.map +0 -1
  88. package/dist/test/unit/monitors/memory-monitor.test.d.ts +0 -2
  89. package/dist/test/unit/monitors/memory-monitor.test.d.ts.map +0 -1
  90. package/dist/test/unit/monitors/memory-monitor.test.js +0 -142
  91. package/dist/test/unit/monitors/memory-monitor.test.js.map +0 -1
  92. package/dist/test/unit/monitors/network-monitor.test.d.ts +0 -2
  93. package/dist/test/unit/monitors/network-monitor.test.d.ts.map +0 -1
  94. package/dist/test/unit/monitors/network-monitor.test.js +0 -22
  95. package/dist/test/unit/monitors/network-monitor.test.js.map +0 -1
  96. package/dist/test/unit/monitors/process-monitor.test.d.ts +0 -2
  97. package/dist/test/unit/monitors/process-monitor.test.d.ts.map +0 -1
  98. package/dist/test/unit/monitors/process-monitor.test.js +0 -165
  99. package/dist/test/unit/monitors/process-monitor.test.js.map +0 -1
  100. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts +0 -2
  101. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts.map +0 -1
  102. package/dist/test/unit/monitors/system-monitor-macos.test.js +0 -115
  103. package/dist/test/unit/monitors/system-monitor-macos.test.js.map +0 -1
  104. package/dist/test/unit/monitors/system-monitor.test.d.ts +0 -2
  105. package/dist/test/unit/monitors/system-monitor.test.d.ts.map +0 -1
  106. package/dist/test/unit/monitors/system-monitor.test.js +0 -70
  107. package/dist/test/unit/monitors/system-monitor.test.js.map +0 -1
  108. package/dist/test/unit/types/common.test.d.ts +0 -6
  109. package/dist/test/unit/types/common.test.d.ts.map +0 -1
  110. package/dist/test/unit/types/common.test.js +0 -139
  111. package/dist/test/unit/types/common.test.js.map +0 -1
  112. package/dist/test/unit/types/config.test.d.ts +0 -2
  113. package/dist/test/unit/types/config.test.d.ts.map +0 -1
  114. package/dist/test/unit/types/config.test.js +0 -9
  115. package/dist/test/unit/types/config.test.js.map +0 -1
  116. package/dist/test/unit/types/errors.test.d.ts +0 -6
  117. package/dist/test/unit/types/errors.test.d.ts.map +0 -1
  118. package/dist/test/unit/types/errors.test.js +0 -184
  119. package/dist/test/unit/types/errors.test.js.map +0 -1
  120. package/dist/test/unit/types/index.test.d.ts +0 -2
  121. package/dist/test/unit/types/index.test.d.ts.map +0 -1
  122. package/dist/test/unit/types/index.test.js +0 -39
  123. package/dist/test/unit/types/index.test.js.map +0 -1
  124. package/dist/test/unit/types/monitors.test.d.ts +0 -2
  125. package/dist/test/unit/types/monitors.test.d.ts.map +0 -1
  126. package/dist/test/unit/types/monitors.test.js +0 -9
  127. package/dist/test/unit/types/monitors.test.js.map +0 -1
  128. package/dist/test/unit/types/platform.test.d.ts +0 -2
  129. package/dist/test/unit/types/platform.test.d.ts.map +0 -1
  130. package/dist/test/unit/types/platform.test.js +0 -9
  131. package/dist/test/unit/types/platform.test.js.map +0 -1
  132. package/dist/test/unit/utils/command-executor.test.d.ts +0 -6
  133. package/dist/test/unit/utils/command-executor.test.d.ts.map +0 -1
  134. package/dist/test/unit/utils/command-executor.test.js +0 -190
  135. package/dist/test/unit/utils/command-executor.test.js.map +0 -1
  136. package/dist/test/unit/utils/platform-specific.test.d.ts +0 -2
  137. package/dist/test/unit/utils/platform-specific.test.d.ts.map +0 -1
  138. package/dist/test/unit/utils/platform-specific.test.js +0 -32
  139. package/dist/test/unit/utils/platform-specific.test.js.map +0 -1
  140. package/dist/test/utils/platform-specific.d.ts +0 -139
  141. package/dist/test/utils/platform-specific.d.ts.map +0 -1
  142. package/dist/test/utils/platform-specific.js +0 -306
  143. package/dist/test/utils/platform-specific.js.map +0 -1
  144. package/dist/test/utils/test-base.d.ts +0 -157
  145. package/dist/test/utils/test-base.d.ts.map +0 -1
  146. package/dist/test/utils/test-base.js +0 -316
  147. package/dist/test/utils/test-base.js.map +0 -1
@@ -1,204 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const chai_1 = require("chai");
7
- const linux_adapter_1 = require("../../../src/adapters/linux-adapter");
8
- const errors_1 = require("../../../src/types/errors");
9
- const os_1 = __importDefault(require("os"));
10
- describe('LinuxAdapter 内部解析逻辑', () => {
11
- it('应基于差分快照计算 CPU 使用率', () => {
12
- const adapter = new linux_adapter_1.LinuxAdapter();
13
- const internal = adapter;
14
- const snapshotA = `cpu 100 20 80 1000 10 5 5 0\n` +
15
- `cpu0 50 10 40 500 5 2 3 0\n` +
16
- `cpu1 50 10 40 500 5 3 2 0\n`;
17
- const snapshotB = `cpu 150 30 120 1100 20 10 10 0\n` +
18
- `cpu0 80 15 60 550 10 4 5 0\n` +
19
- `cpu1 70 15 60 550 10 6 5 0\n`;
20
- const first = internal.parseCpuStat(snapshotA);
21
- const second = internal.parseCpuStat(snapshotB);
22
- const usage = internal.calculateCpuUsage(first, second);
23
- (0, chai_1.expect)(usage.overall).to.be.closeTo(54.54, 0.1);
24
- (0, chai_1.expect)(usage.user).to.be.closeTo(27.27, 0.1);
25
- (0, chai_1.expect)(usage.system).to.be.closeTo(18.18, 0.1);
26
- (0, chai_1.expect)(usage.idle).to.be.closeTo(45.45, 0.1);
27
- (0, chai_1.expect)(usage.iowait).to.be.closeTo(4.54, 0.1);
28
- (0, chai_1.expect)(usage.irq).to.be.closeTo(2.27, 0.1);
29
- (0, chai_1.expect)(usage.softirq).to.be.closeTo(2.27, 0.1);
30
- (0, chai_1.expect)(usage.cores).to.have.lengthOf(2);
31
- (0, chai_1.expect)(usage.cores[0]).to.be.closeTo(56.14, 0.2);
32
- (0, chai_1.expect)(usage.cores[1]).to.be.closeTo(52.83, 0.2);
33
- });
34
- it('应正确解析 ip addr 输出中的网卡名称与地址', () => {
35
- const adapter = new linux_adapter_1.LinuxAdapter();
36
- const internal = adapter;
37
- const sampleOutput = `1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n` +
38
- ` link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n` +
39
- ` inet 127.0.0.1/8 scope host lo\n` +
40
- ` valid_lft forever preferred_lft forever\n` +
41
- ` inet6 ::1/128 scope host \n` +
42
- ` valid_lft forever preferred_lft forever\n` +
43
- `2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n` +
44
- ` link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff\n` +
45
- ` inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic eth0\n` +
46
- ` valid_lft 86325sec preferred_lft 86325sec\n` +
47
- ` inet6 fe80::aabb:ccff:fedd:eeff/64 scope link \n` +
48
- ` valid_lft forever preferred_lft forever\n`;
49
- const interfaces = internal.parseNetworkInterfaces(sampleOutput);
50
- (0, chai_1.expect)(interfaces).to.have.lengthOf(2);
51
- const loopback = interfaces[0];
52
- const eth0 = interfaces[1];
53
- (0, chai_1.expect)(loopback.name).to.equal('lo');
54
- (0, chai_1.expect)(loopback.state).to.equal('unknown');
55
- (0, chai_1.expect)(loopback.internal).to.be.true;
56
- (0, chai_1.expect)(loopback.addresses.map((item) => item.address)).to.include.members(['127.0.0.1', '::1']);
57
- (0, chai_1.expect)(eth0.name).to.equal('eth0');
58
- (0, chai_1.expect)(eth0.state).to.equal('up');
59
- (0, chai_1.expect)(eth0.internal).to.be.false;
60
- (0, chai_1.expect)(eth0.addresses.map((item) => item.address)).to.include('192.168.1.10');
61
- });
62
- it('应解析进程内存与启动时间', () => {
63
- const adapter = new linux_adapter_1.LinuxAdapter();
64
- const internal = adapter;
65
- const stat = '123 (bash) R 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0';
66
- const status = 'Name:\tbash\nThreads:\t2\nVmRSS:\t2048 kB\nVmSize:\t4096 kB\n';
67
- const cmdline = 'bash\0--login\0';
68
- const result = internal.parseProcessInfo(123, stat, status, cmdline);
69
- (0, chai_1.expect)(result.memoryUsage).to.equal(2048 * 1024);
70
- (0, chai_1.expect)(result.rss).to.equal(2048 * 1024);
71
- const now = Date.now();
72
- let systemUptimeMs = 0;
73
- try {
74
- systemUptimeMs = os_1.default.uptime() * 1000;
75
- }
76
- catch {
77
- systemUptimeMs = 0;
78
- }
79
- (0, chai_1.expect)(result.startTime).to.be.at.most(now);
80
- const lowerBound = systemUptimeMs > 0 ? now - systemUptimeMs - 1000 : now - 1000;
81
- (0, chai_1.expect)(result.startTime).to.be.at.least(lowerBound);
82
- });
83
- it('应优先使用 uname -m 解析体系结构', () => {
84
- const adapter = new linux_adapter_1.LinuxAdapter();
85
- const internal = adapter;
86
- const uname = 'Linux test-host 5.15.0-89-generic #99-Ubuntu SMP PREEMPT Fri x86_64 x86_64 x86_64 GNU/Linux';
87
- const version = 'Ubuntu 5.15.0-89-generic';
88
- const uptime = '12345.67 4567.89';
89
- const loadavg = '0.10 0.20 0.30 1/234 567';
90
- const machine = 'x86_64\n';
91
- const info = internal.parseSystemInfo(uname, version, uptime, loadavg, machine);
92
- (0, chai_1.expect)(info.arch).to.equal('x86_64');
93
- });
94
- it('在缺少 uname -m 时仍能推断常见架构', () => {
95
- const adapter = new linux_adapter_1.LinuxAdapter();
96
- const internal = adapter;
97
- const uname = 'Linux test 6.5.0-21 #1 SMP PREEMPT_DYNAMIC Wed aarch64 GNU/Linux';
98
- const version = '#1 SMP PREEMPT';
99
- const uptime = '1000.00 2000.00';
100
- const loadavg = '0.50 0.60 0.70 1/1 2';
101
- const info = internal.parseSystemInfo(uname, version, uptime, loadavg, '');
102
- (0, chai_1.expect)(info.arch.toLowerCase()).to.equal('aarch64');
103
- });
104
- it('应正确解析多种默认网关格式', () => {
105
- const adapter = new linux_adapter_1.LinuxAdapter();
106
- const internal = adapter;
107
- const viaOutput = 'default via 192.168.1.1 dev eth0 proto dhcp metric 100';
108
- const directOutput = 'default dev ppp0 scope link';
109
- const viaResult = internal.parseDefaultGateway(viaOutput);
110
- (0, chai_1.expect)(viaResult).to.deep.equal({ gateway: '192.168.1.1', interface: 'eth0' });
111
- const directResult = internal.parseDefaultGateway(directOutput);
112
- (0, chai_1.expect)(directResult).to.deep.equal({ gateway: null, interface: 'ppp0' });
113
- });
114
- it('网络命令回退失败时应保留主次错误', async () => {
115
- const adapter = new linux_adapter_1.LinuxAdapter();
116
- let callCount = 0;
117
- adapter.executeCommand = async (command) => {
118
- callCount += 1;
119
- if (command === 'ip addr show') {
120
- throw errors_1.MonitorError.createCommandFailed('linux', command, { reason: 'ip missing' });
121
- }
122
- throw errors_1.MonitorError.createCommandFailed('linux', command, { reason: 'ifconfig missing' });
123
- };
124
- try {
125
- await adapter.getNetworkInterfaces();
126
- chai_1.expect.fail('应该抛出 MonitorError');
127
- }
128
- catch (error) {
129
- (0, chai_1.expect)(error).to.be.instanceOf(errors_1.MonitorError);
130
- (0, chai_1.expect)(error.details.primary.details.reason).to.equal('ip missing');
131
- (0, chai_1.expect)(error.details.fallback.details.reason).to.equal('ifconfig missing');
132
- }
133
- (0, chai_1.expect)(callCount).to.equal(2);
134
- });
135
- it('容器环境应禁用系统服务能力', async () => {
136
- const adapter = new linux_adapter_1.LinuxAdapter();
137
- const internal = adapter;
138
- internal.containerMode = true;
139
- internal.supportedFeatures.system.services = false;
140
- internal.executeCommand = async () => {
141
- throw new Error('systemctl should not be called in container mode');
142
- };
143
- (0, chai_1.expect)(adapter.getSupportedFeatures().system.services).to.be.false;
144
- try {
145
- await adapter.getSystemServices();
146
- chai_1.expect.fail('should throw MonitorError');
147
- }
148
- catch (error) {
149
- (0, chai_1.expect)(error).to.be.instanceOf(errors_1.MonitorError);
150
- (0, chai_1.expect)(error.code).to.equal(errors_1.ErrorCode.PLATFORM_NOT_SUPPORTED);
151
- }
152
- });
153
- it('T022: getCPUInfo() 在读取 /proc/cpuinfo 失败时应降级到 os.cpus() 数据而非抛出异常', async () => {
154
- const adapter = new linux_adapter_1.LinuxAdapter();
155
- const internal = adapter;
156
- // stub readFile 使 /proc/cpuinfo 读取失败
157
- internal.readFile = async () => {
158
- throw new errors_1.MonitorError('/proc/cpuinfo 不可访问', errors_1.ErrorCode.COMMAND_FAILED, 'linux');
159
- };
160
- const result = await adapter.getCPUInfo();
161
- (0, chai_1.expect)(result).to.be.an('object');
162
- (0, chai_1.expect)(result.cores).to.be.a('number').and.to.be.greaterThan(0);
163
- (0, chai_1.expect)(result.threads).to.be.a('number').and.to.be.greaterThan(0);
164
- (0, chai_1.expect)(result.model).to.be.a('string').and.to.have.length.greaterThan(0);
165
- });
166
- it('应在 ss 不可用时回退到 netstat 解析连接', async () => {
167
- const adapter = new linux_adapter_1.LinuxAdapter();
168
- const internal = adapter;
169
- const commands = [];
170
- internal.executeCommand = async (command) => {
171
- commands.push(command);
172
- if (command === 'ss -tuln') {
173
- throw errors_1.MonitorError.createCommandFailed('linux', command, { reason: 'missing ss' });
174
- }
175
- if (command === 'netstat -tuln') {
176
- return {
177
- stdout: 'Proto Recv-Q Send-Q Local Address Foreign Address State\n' +
178
- 'tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN\n',
179
- stderr: '',
180
- exitCode: 0,
181
- platform: 'linux',
182
- executionTime: 1,
183
- command
184
- };
185
- }
186
- return {
187
- stdout: '',
188
- stderr: 'unsupported',
189
- exitCode: 1,
190
- platform: 'linux',
191
- executionTime: 0,
192
- command
193
- };
194
- };
195
- const results = await adapter.getNetworkConnections();
196
- (0, chai_1.expect)(results).to.have.lengthOf(1);
197
- (0, chai_1.expect)(results[0].protocol).to.equal('tcp');
198
- (0, chai_1.expect)(results[0].state).to.equal('listen');
199
- (0, chai_1.expect)(results[0].localAddress).to.equal('0.0.0.0:22');
200
- (0, chai_1.expect)(results[0].foreignAddress).to.equal('0.0.0.0:*');
201
- (0, chai_1.expect)(commands).to.deep.equal(['ss -tuln', 'netstat -tuln']);
202
- });
203
- });
204
- //# sourceMappingURL=linux-adapter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linux-adapter.test.js","sourceRoot":"","sources":["../../../../test/unit/adapters/linux-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=macos-adapter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"macos-adapter.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/adapters/macos-adapter.test.ts"],"names":[],"mappings":""}
@@ -1,237 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const chai_1 = require("chai");
7
- const os_1 = __importDefault(require("os"));
8
- const macos_adapter_1 = require("../../../src/adapters/macos-adapter");
9
- const errors_1 = require("../../../src/types/errors");
10
- describe('MacOSAdapter 内部解析逻辑', () => {
11
- it('应当将 RSS 转换为字节并保留内存百分比', () => {
12
- const adapter = new macos_adapter_1.MacOSAdapter();
13
- const internal = adapter;
14
- const data = {
15
- summary: '123 1 20480 12.5 3.4 R user',
16
- command: '/usr/bin/example --flag',
17
- start: 'Mon Mar 11 10:00:00 2024'
18
- };
19
- const result = internal.parseProcessInfo(data, 123);
20
- (0, chai_1.expect)(result.pid).to.equal(123);
21
- (0, chai_1.expect)(result.ppid).to.equal(1);
22
- (0, chai_1.expect)(result.command).to.equal('/usr/bin/example --flag');
23
- (0, chai_1.expect)(result.memoryUsage).to.equal(20480 * 1024);
24
- (0, chai_1.expect)(result.memoryPercentage).to.be.closeTo(3.4, 0.0001);
25
- (0, chai_1.expect)(result.cpuUsage).to.be.closeTo(12.5, 0.0001);
26
- (0, chai_1.expect)(result.state).to.equal('R');
27
- });
28
- it('应当根据 vm_stat 中的页面大小正确计算内存', () => {
29
- const adapter = new macos_adapter_1.MacOSAdapter();
30
- const internal = adapter;
31
- const vmStatOutput = [
32
- 'Mach Virtual Memory Statistics: (page size of 16384 bytes)',
33
- 'Pages free: 100.',
34
- 'Pages active: 200.',
35
- 'Pages inactive: 300.',
36
- 'Pages wired down: 400.',
37
- 'Pages occupied by compressor: 50.',
38
- ''
39
- ].join('\n');
40
- const totalMem = (16 * 1024 * 1024 * 1024).toString();
41
- const pressureOutput = 'System-wide memory pressure: warn';
42
- const result = internal.parseMemoryInfo(vmStatOutput, totalMem, pressureOutput);
43
- const pageSize = 16384;
44
- (0, chai_1.expect)(result.total).to.equal(16 * 1024 * 1024 * 1024);
45
- (0, chai_1.expect)(result.free).to.equal(100 * pageSize);
46
- (0, chai_1.expect)(result.active).to.equal(200 * pageSize);
47
- (0, chai_1.expect)(result.inactive).to.equal(300 * pageSize);
48
- (0, chai_1.expect)(result.wired).to.equal(400 * pageSize);
49
- (0, chai_1.expect)(result.compressed).to.equal(50 * pageSize);
50
- (0, chai_1.expect)(result.used).to.equal((200 + 400 + 50) * pageSize);
51
- (0, chai_1.expect)(result.available).to.equal(result.total - result.used);
52
- (0, chai_1.expect)(result.pressure.level).to.equal('high');
53
- });
54
- it('应当正确解析 iostat 输出的磁盘数据', () => {
55
- const adapter = new macos_adapter_1.MacOSAdapter();
56
- const internal = adapter;
57
- const iostatOutput = `
58
- disk0 disk1
59
- KB/t tps MB/s KB/t tps MB/s
60
- 16.00 1 0.01 32.00 2 0.06
61
- `;
62
- const ioResult = internal.parseDiskIO(iostatOutput);
63
- const statsResult = internal.parseDiskStats(iostatOutput);
64
- (0, chai_1.expect)(ioResult).to.have.lengthOf(2);
65
- (0, chai_1.expect)(ioResult[0].device).to.equal('disk0');
66
- (0, chai_1.expect)(ioResult[0].kbPerTransfer).to.be.closeTo(16, 0.001);
67
- (0, chai_1.expect)(ioResult[0].mbPerSec).to.be.closeTo(0.01, 0.0001);
68
- (0, chai_1.expect)(ioResult[0].readSpeed).to.be.closeTo(0.01 * 1024 * 1024, 1e-6);
69
- (0, chai_1.expect)(statsResult[0].device).to.equal('disk0');
70
- (0, chai_1.expect)(statsResult[0].readCount).to.equal(1);
71
- (0, chai_1.expect)(statsResult[0].readSpeed).to.be.closeTo(0.01 * 1024 * 1024, 1e-6);
72
- (0, chai_1.expect)(statsResult[0].writeBytes).to.equal(0);
73
- });
74
- it('应当在解析进程环境变量时保留带空格的值', () => {
75
- const adapter = new macos_adapter_1.MacOSAdapter();
76
- const internal = adapter;
77
- const envOutput = [
78
- '123 ?? Ss 0:00.01 /usr/bin/node --inspect',
79
- 'PATH=/usr/bin:/bin HOME=/Users/test PID=1234 APP_NAME=My App With Spaces LANG=en_US.UTF-8',
80
- 'LOG_LEVEL="debug mode" EMPTY_VAR= NEXT=final'
81
- ].join('\n');
82
- const result = internal.parseEnvironment(envOutput);
83
- (0, chai_1.expect)(result.PATH).to.equal('/usr/bin:/bin');
84
- (0, chai_1.expect)(result.HOME).to.equal('/Users/test');
85
- (0, chai_1.expect)(result).to.not.have.property('PID');
86
- (0, chai_1.expect)(result.APP_NAME).to.equal('My App With Spaces');
87
- (0, chai_1.expect)(result.LANG).to.equal('en_US.UTF-8');
88
- (0, chai_1.expect)(result.LOG_LEVEL).to.equal('"debug mode"');
89
- (0, chai_1.expect)(result.EMPTY_VAR).to.equal('');
90
- (0, chai_1.expect)(result.NEXT).to.equal('final');
91
- });
92
- it('应当从 ifconfig 输出中提取 MAC 地址', () => {
93
- const adapter = new macos_adapter_1.MacOSAdapter();
94
- const internal = adapter;
95
- const ifconfigOutput = [
96
- 'lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384',
97
- '\tinet 127.0.0.1 netmask 0xff000000',
98
- 'en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500',
99
- '\tether f0:18:98:73:ad:10',
100
- '\tinet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255',
101
- '\tinet6 fe80::c86:abcd:ef12%en0 prefixlen 64'
102
- ].join('\n');
103
- const result = internal.parseNetworkInterfaces(ifconfigOutput);
104
- const en0 = result.find((iface) => iface.name === 'en0');
105
- (0, chai_1.expect)(en0).to.exist;
106
- (0, chai_1.expect)(en0.mac).to.equal('f0:18:98:73:ad:10');
107
- (0, chai_1.expect)(en0.addresses).to.have.lengthOf(2);
108
- });
109
- it('应当解析系统信息并计算启动时间', () => {
110
- const adapter = new macos_adapter_1.MacOSAdapter();
111
- const internal = adapter;
112
- const originalUptime = os_1.default.uptime;
113
- os_1.default.uptime = () => 1234;
114
- try {
115
- const uname = 'Darwin MacBook-Pro 23.4.0 Darwin Kernel Version';
116
- const uptime = ' 10:22 up 3:24, 2 users, load averages: 1.23 0.56 0.42';
117
- const loadavg = '{ 1.23 0.56 0.42 }';
118
- const swVers = 'ProductName: macOS\nProductVersion: 14.4\nBuildVersion: 23E214';
119
- const result = internal.parseSystemInfo(uname, uptime, loadavg, swVers);
120
- (0, chai_1.expect)(result.platform).to.equal('darwin');
121
- (0, chai_1.expect)(result.version).to.equal(swVers.trim());
122
- (0, chai_1.expect)(result.loadAverage.load1).to.be.closeTo(1.23, 0.0001);
123
- (0, chai_1.expect)(result.uptimeSeconds).to.equal(1234);
124
- (0, chai_1.expect)(result.bootTime).to.be.closeTo(Date.now() - 1234 * 1000, 50);
125
- }
126
- finally {
127
- os_1.default.uptime = originalUptime;
128
- }
129
- });
130
- it('应当解析 netstat 输出中的收发字节统计', () => {
131
- const adapter = new macos_adapter_1.MacOSAdapter();
132
- const internal = adapter;
133
- const netstatOutput = [
134
- 'Name Mtu Net/Dest Address Ibytes Obytes Ipackets Ierrs Opackets Oerrs Collisions',
135
- 'en0 1500 link#5 f0:18:98:73:ad:10 42 1 4096 84 0 8192 2'
136
- ].join('\n');
137
- const stats = internal.parseNetworkStats(netstatOutput);
138
- (0, chai_1.expect)(stats).to.have.lengthOf(1);
139
- (0, chai_1.expect)(stats[0].interface).to.equal('en0');
140
- (0, chai_1.expect)(stats[0].rxPackets).to.equal(42);
141
- (0, chai_1.expect)(stats[0].rxErrors).to.equal(1);
142
- (0, chai_1.expect)(stats[0].rxBytes).to.equal(4096);
143
- (0, chai_1.expect)(stats[0].txPackets).to.equal(84);
144
- (0, chai_1.expect)(stats[0].txBytes).to.equal(8192);
145
- (0, chai_1.expect)(stats[0].collisions).to.equal(2);
146
- });
147
- it('应当从 route 输出中解析默认网关', () => {
148
- const adapter = new macos_adapter_1.MacOSAdapter();
149
- const internal = adapter;
150
- const routeOutput = [
151
- ' route to: default',
152
- 'destination: default',
153
- ' mask: default',
154
- ' gateway: 192.168.1.1',
155
- ' interface: en0',
156
- ' flags: <UP,GATEWAY,DONE,STATIC>'
157
- ].join('\n');
158
- const result = internal.parseDefaultGateway(routeOutput);
159
- (0, chai_1.expect)(result).to.deep.equal({ gateway: '192.168.1.1', interface: 'en0' });
160
- });
161
- it('T022: getCPUInfo() 在 sysctl 命令全部失败时应降级到 os.cpus() 数据而非抛出异常', async () => {
162
- const adapter = new macos_adapter_1.MacOSAdapter();
163
- const internal = adapter;
164
- // stub executeCommand 使所有 sysctl 命令失败
165
- internal.executeCommand = async () => {
166
- throw new errors_1.MonitorError('sysctl 不可用', errors_1.ErrorCode.COMMAND_FAILED, 'darwin');
167
- };
168
- const result = await adapter.getCPUInfo();
169
- (0, chai_1.expect)(result).to.be.an('object');
170
- (0, chai_1.expect)(result.cores).to.be.a('number').and.to.be.greaterThan(0);
171
- (0, chai_1.expect)(result.threads).to.be.a('number').and.to.be.greaterThan(0);
172
- (0, chai_1.expect)(result.model).to.be.a('string').and.to.have.length.greaterThan(0);
173
- });
174
- it('在 top 失败时应回退到 iostat 获取 CPU 使用率', async () => {
175
- const adapter = new macos_adapter_1.MacOSAdapter();
176
- const internal = adapter;
177
- const commands = [];
178
- internal.executeCommand = async (command) => {
179
- commands.push(command);
180
- if (command.startsWith('top')) {
181
- throw new Error('top failed');
182
- }
183
- if (command.startsWith('iostat')) {
184
- return {
185
- stdout: ' cpu\n us sy id\n 12 5 83\n',
186
- stderr: '',
187
- exitCode: 0,
188
- platform: 'darwin',
189
- executionTime: 1,
190
- command
191
- };
192
- }
193
- throw new Error(`unexpected command: ${command}`);
194
- };
195
- const usage = await adapter.getCPUUsage();
196
- (0, chai_1.expect)(commands).to.deep.equal(['top -l 1 -n 0', 'iostat -c 1']);
197
- (0, chai_1.expect)(usage.overall).to.be.closeTo(17, 0.0001);
198
- (0, chai_1.expect)(usage.user).to.be.closeTo(12, 0.0001);
199
- (0, chai_1.expect)(usage.system).to.be.closeTo(5, 0.0001);
200
- (0, chai_1.expect)(usage.idle).to.be.closeTo(83, 0.0001);
201
- });
202
- it('powermetrics 无法执行时应返回不支持错误', async () => {
203
- const adapter = new macos_adapter_1.MacOSAdapter();
204
- const internal = adapter;
205
- internal.executeCommand = async () => {
206
- throw Object.assign(new Error('permission denied'), { code: 'EACCES' });
207
- };
208
- try {
209
- await adapter.getCPUTemperature();
210
- chai_1.expect.fail('should not succeed');
211
- }
212
- catch (error) {
213
- (0, chai_1.expect)(error).to.be.instanceOf(errors_1.MonitorError);
214
- const monitorError = error;
215
- (0, chai_1.expect)(monitorError.code).to.equal(errors_1.ErrorCode.PLATFORM_NOT_SUPPORTED);
216
- (0, chai_1.expect)(monitorError.platform).to.equal('darwin');
217
- }
218
- });
219
- it('读取文件权限不足时应抛出权限错误', async () => {
220
- const adapter = new macos_adapter_1.MacOSAdapter();
221
- const internal = adapter;
222
- internal.executeCommand = async () => {
223
- throw Object.assign(new Error('permission denied'), { code: 'EACCES' });
224
- };
225
- try {
226
- await adapter.readFile('/private/secret');
227
- chai_1.expect.fail('should not succeed');
228
- }
229
- catch (error) {
230
- (0, chai_1.expect)(error).to.be.instanceOf(errors_1.MonitorError);
231
- const monitorError = error;
232
- (0, chai_1.expect)(monitorError.code).to.equal(errors_1.ErrorCode.PERMISSION_DENIED);
233
- (0, chai_1.expect)(monitorError.details.path).to.equal('/private/secret');
234
- }
235
- });
236
- });
237
- //# sourceMappingURL=macos-adapter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"macos-adapter.test.js","sourceRoot":"","sources":["../../../../test/unit/adapters/macos-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=windows-adapter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"windows-adapter.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/adapters/windows-adapter.test.ts"],"names":[],"mappings":""}
@@ -1,111 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const windows_adapter_1 = require("../../../src/adapters/windows-adapter");
5
- const errors_1 = require("../../../src/types/errors");
6
- describe('WindowsAdapter 内部行为', () => {
7
- it('在 WMI 数据缺失 Size 时应限制磁盘占用不为负值', async () => {
8
- const adapter = new windows_adapter_1.WindowsAdapter();
9
- const internal = adapter;
10
- let callCount = 0;
11
- internal.executePowerShell = async () => {
12
- callCount += 1;
13
- if (callCount === 1) {
14
- throw new errors_1.MonitorError('psdrive failed', errors_1.ErrorCode.COMMAND_FAILED, 'win32');
15
- }
16
- return [
17
- {
18
- DeviceID: 'C:',
19
- FileSystem: 'NTFS',
20
- FreeSpace: '1024'
21
- }
22
- ];
23
- };
24
- const disks = await adapter.getDiskInfo();
25
- (0, chai_1.expect)(disks).to.have.lengthOf(1);
26
- (0, chai_1.expect)(disks[0].mountPoint).to.equal('C:');
27
- (0, chai_1.expect)(disks[0].used).to.equal(0);
28
- (0, chai_1.expect)(disks[0].available).to.equal(1024);
29
- (0, chai_1.expect)(disks[0].usagePercentage).to.equal(0);
30
- });
31
- it('在网络统计命令失败时应抛出 MonitorError', async () => {
32
- const adapter = new windows_adapter_1.WindowsAdapter();
33
- const internal = adapter;
34
- internal.executePowerShell = async () => {
35
- throw new errors_1.MonitorError('stats failed', errors_1.ErrorCode.COMMAND_FAILED, 'win32');
36
- };
37
- try {
38
- await adapter.getNetworkStats();
39
- chai_1.expect.fail('应该抛出 MonitorError');
40
- }
41
- catch (error) {
42
- (0, chai_1.expect)(error).to.be.instanceOf(errors_1.MonitorError);
43
- }
44
- });
45
- });
46
- describe('WindowsAdapter — Deno 兼容性降级', () => {
47
- describe('T007: getCPUInfo() — PowerShell 失败时降级到 os.cpus()', () => {
48
- it('应返回基于 os.cpus()/os.loadavg() 的有效非零 CPU 数据,而非抛出异常', async () => {
49
- const adapter = new windows_adapter_1.WindowsAdapter();
50
- const internal = adapter;
51
- // stub executePowerShell 使其抛出异常(模拟 Deno 中 PowerShell 不可用)
52
- internal.executePowerShell = async () => {
53
- throw new errors_1.MonitorError('PowerShell 不可用', errors_1.ErrorCode.COMMAND_FAILED, 'win32');
54
- };
55
- // 不应抛出,应返回基于 os.cpus() 的数据
56
- const result = await adapter.getCPUInfo();
57
- (0, chai_1.expect)(result).to.be.an('object');
58
- (0, chai_1.expect)(result.cores).to.be.a('number').and.to.be.greaterThan(0);
59
- (0, chai_1.expect)(result.model).to.be.a('string').and.to.have.length.greaterThan(0);
60
- (0, chai_1.expect)(result.threads).to.be.a('number').and.to.be.greaterThan(0);
61
- });
62
- });
63
- });
64
- describe('WindowsAdapter — Deno 兼容性降级 (T021: US2)', () => {
65
- let adapter;
66
- let internal;
67
- beforeEach(() => {
68
- adapter = new windows_adapter_1.WindowsAdapter();
69
- internal = adapter;
70
- // stub executePowerShell 使所有 PowerShell 命令失败
71
- internal.executePowerShell = async () => {
72
- throw new errors_1.MonitorError('PowerShell 不可用', errors_1.ErrorCode.COMMAND_FAILED, 'win32');
73
- };
74
- });
75
- it('T021: getMemoryInfo() 应返回基于 os.totalmem()/os.freemem() 的有效内存数据', async () => {
76
- const result = await adapter.getMemoryInfo();
77
- (0, chai_1.expect)(result).to.be.an('object');
78
- (0, chai_1.expect)(result.total).to.be.a('number').and.to.be.greaterThan(0);
79
- (0, chai_1.expect)(result.available).to.be.a('number').and.to.be.greaterThan(0);
80
- (0, chai_1.expect)(result.used).to.be.a('number').and.to.be.at.least(0);
81
- });
82
- it('T021: getNetworkStats() 在命令失败时应抛出 MonitorError(COMMAND_FAILED),不返回静默空数组', async () => {
83
- try {
84
- await adapter.getNetworkStats();
85
- chai_1.expect.fail('应该抛出 MonitorError');
86
- }
87
- catch (error) {
88
- (0, chai_1.expect)(error).to.be.instanceOf(errors_1.MonitorError);
89
- (0, chai_1.expect)(error.code).to.equal(errors_1.ErrorCode.COMMAND_FAILED);
90
- }
91
- });
92
- it('T021: getDiskInfo() 在命令失败时应抛出 MonitorError,不静默返回数据', async () => {
93
- try {
94
- await adapter.getDiskInfo();
95
- chai_1.expect.fail('应该抛出 MonitorError');
96
- }
97
- catch (error) {
98
- (0, chai_1.expect)(error).to.be.instanceOf(errors_1.MonitorError);
99
- }
100
- });
101
- it('T021: getProcessList() 在命令失败时应抛出 MonitorError(COMMAND_FAILED),不静默返回数据', async () => {
102
- try {
103
- await adapter.getProcessList();
104
- chai_1.expect.fail('应该抛出 MonitorError');
105
- }
106
- catch (error) {
107
- (0, chai_1.expect)(error).to.be.instanceOf(errors_1.MonitorError);
108
- }
109
- });
110
- });
111
- //# sourceMappingURL=windows-adapter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"windows-adapter.test.js","sourceRoot":"","sources":["../../../../test/unit/adapters/windows-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=base-monitor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-monitor.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/core/base-monitor.test.ts"],"names":[],"mappings":""}