aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/perf/test_perf.js
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/modules/perf/test_perf.js')
-rw-r--r--desktop/modules/perf/test_perf.js28
1 files changed, 27 insertions, 1 deletions
diff --git a/desktop/modules/perf/test_perf.js b/desktop/modules/perf/test_perf.js
index f2caa94..b7d9dbb 100644
--- a/desktop/modules/perf/test_perf.js
+++ b/desktop/modules/perf/test_perf.js
@@ -20,7 +20,7 @@ const src = fs.readFileSync(__dirname + "/Perf.js", "utf8")
.replace(/^\.pragma library$/m, "");
const P = new Function(src + "\nreturn { cpuTimes, load, meminfo, df, vram, rate, " +
"hwmonMap, lanAddr, cpuModel, du, band, worst, isIPv4, parsePubip, formatPubip, " +
- "ipCheck, due, push, bytes, speed, procs };")();
+ "ipCheck, due, push, bytes, speed, procs, sockets, netProcs };")();
// cpuTimes: aggregate first, then cores; idle is idle + iowait.
const stat = [
@@ -171,4 +171,30 @@ assert.deepStrictEqual(P.procs(frame), [
]);
assert.deepStrictEqual(P.procs(""), []);
+// sockets: owned sockets with their -i counters; ownerless ones skipped.
+const ss = [
+ "ESTAB 0 0 10.0.0.5:35806 192.0.2.1:443 users:((\"firefox\",pid=12,fd=53))",
+ "\t cubic rto:340 bytes_sent:100 bytes_acked:101 bytes_received:5000 segs_out:2",
+ "ESTAB 0 0 10.0.0.5:22 192.0.2.9:5000",
+ "\t cubic bytes_sent:999 bytes_received:999",
+ "SYN-SENT 0 1 10.0.0.5:49916 192.0.2.2:65081 users:((\"ktorrent\",pid=7,fd=67))",
+ "\t cubic rto:1000 segs_out:3",
+].join("\n");
+const socks = P.sockets(ss);
+assert.deepStrictEqual(socks, [
+ { key: "10.0.0.5:35806 192.0.2.1:443 12", name: "firefox", rx: 5000, tx: 100 },
+ { key: "10.0.0.5:49916 192.0.2.2:65081 7", name: "ktorrent", rx: 0, tx: 0 },
+]);
+
+// netProcs: deltas over the interval summed by name; a new socket counts
+// from zero, idle processes drop out.
+const later = [
+ { key: "a", name: "firefox", rx: 5000 + 4000, tx: 100 },
+ { key: "b", name: "firefox", rx: 2000, tx: 0 },
+ { key: "c", name: "ktorrent", rx: 0, tx: 0 },
+];
+assert.deepStrictEqual(P.netProcs([{ key: "a", name: "firefox", rx: 5000, tx: 100 }], later, 2),
+ [{ name: "firefox", rx: 3000, tx: 0 }]);
+assert.deepStrictEqual(P.netProcs([], later, 0), []);
+
console.log("test_perf: ok");