2019-01-21 14:03:30 -05:00
|
|
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
2018-10-17 14:30:23 -04:00
|
|
|
import { test, testPerm, assert } from "./test_util.ts";
|
2018-10-05 13:21:15 -04:00
|
|
|
import * as deno from "deno";
|
|
|
|
|
2018-10-17 14:30:23 -04:00
|
|
|
test(async function metrics() {
|
2018-10-05 13:21:15 -04:00
|
|
|
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]);
|
2018-10-17 14:30:23 -04:00
|
|
|
await deno.stdout.write(dataMsg);
|
2018-10-05 13:21:15 -04:00
|
|
|
|
|
|
|
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);
|
|
|
|
});
|
2018-10-17 14:30:23 -04:00
|
|
|
|
|
|
|
testPerm({ write: true }, function metricsUpdatedIfNoResponseSync() {
|
|
|
|
const filename = deno.makeTempDirSync() + "/test.txt";
|
|
|
|
|
|
|
|
const data = new Uint8Array([41, 42, 43]);
|
|
|
|
deno.writeFileSync(filename, data, 0o666);
|
|
|
|
|
|
|
|
const metrics = deno.metrics();
|
|
|
|
assert(metrics.opsDispatched === metrics.opsCompleted);
|
|
|
|
});
|
|
|
|
|
|
|
|
testPerm({ write: true }, async function metricsUpdatedIfNoResponseAsync() {
|
|
|
|
const filename = deno.makeTempDirSync() + "/test.txt";
|
|
|
|
|
|
|
|
const data = new Uint8Array([41, 42, 43]);
|
|
|
|
await deno.writeFile(filename, data, 0o666);
|
|
|
|
|
|
|
|
const metrics = deno.metrics();
|
|
|
|
assert(metrics.opsDispatched === metrics.opsCompleted);
|
2018-10-18 18:28:47 -04:00
|
|
|
});
|