summaryrefslogtreecommitdiff
path: root/cli/js/metrics_test.ts
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2019-10-04 20:28:51 -0400
committerGitHub <noreply@github.com>2019-10-04 20:28:51 -0400
commitb81e5db17aa8b3088d6034ddf86b79c69410f012 (patch)
tree579e4c23d60d1b0d038156bc28a04f74ea87b2f0 /cli/js/metrics_test.ts
parent9049213867d30f7df090a83b6baf3e0717a4d2d2 (diff)
Merge deno_cli_snapshots into deno_cli (#3064)
Diffstat (limited to 'cli/js/metrics_test.ts')
-rw-r--r--cli/js/metrics_test.ts46
1 files changed, 46 insertions, 0 deletions
diff --git a/cli/js/metrics_test.ts b/cli/js/metrics_test.ts
new file mode 100644
index 000000000..de41a0cb1
--- /dev/null
+++ b/cli/js/metrics_test.ts
@@ -0,0 +1,46 @@
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+import { test, testPerm, assert } from "./test_util.ts";
+
+test(async function metrics(): Promise<void> {
+ const m1 = Deno.metrics();
+ assert(m1.opsDispatched > 0);
+ assert(m1.opsCompleted > 0);
+ assert(m1.bytesSentControl > 0);
+ assert(m1.bytesSentData >= 0);
+ assert(m1.bytesReceived > 0);
+
+ // Write to stdout to ensure a "data" message gets sent instead of just
+ // control messages.
+ const dataMsg = new Uint8Array([41, 42, 43]);
+ await Deno.stdout.write(dataMsg);
+
+ const m2 = Deno.metrics();
+ assert(m2.opsDispatched > m1.opsDispatched);
+ assert(m2.opsCompleted > m1.opsCompleted);
+ assert(m2.bytesSentControl > m1.bytesSentControl);
+ assert(m2.bytesSentData >= m1.bytesSentData + dataMsg.byteLength);
+ assert(m2.bytesReceived > m1.bytesReceived);
+});
+
+testPerm({ write: true }, function metricsUpdatedIfNoResponseSync(): void {
+ const filename = Deno.makeTempDirSync() + "/test.txt";
+
+ const data = new Uint8Array([41, 42, 43]);
+ Deno.writeFileSync(filename, data, { perm: 0o666 });
+
+ const metrics = Deno.metrics();
+ assert(metrics.opsDispatched === metrics.opsCompleted);
+});
+
+testPerm(
+ { write: true },
+ async function metricsUpdatedIfNoResponseAsync(): Promise<void> {
+ const filename = Deno.makeTempDirSync() + "/test.txt";
+
+ const data = new Uint8Array([41, 42, 43]);
+ await Deno.writeFile(filename, data, { perm: 0o666 });
+
+ const metrics = Deno.metrics();
+ assert(metrics.opsDispatched === metrics.opsCompleted);
+ }
+);