From 7ce2b58bcf412924464578f3469c210b34894c8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Og=C3=B3rek?= Date: Tue, 27 Dec 2022 00:16:12 +0100 Subject: feat(unstable): Add "Deno.osUptime()" API (#17179) This PR adds support for `Deno.osUptime` which reports number of seconds since os was booted. It will allow us to be compatible with Node's `os.uptime` - https://nodejs.org/api/os.html#osuptime Partially based on https://docs.rs/uptime_lib/latest/src/uptime_lib/lib.rs.html --- cli/tests/unit/os_test.ts | 12 ++++++++++++ cli/tests/unit/permissions_test.ts | 1 + 2 files changed, 13 insertions(+) (limited to 'cli/tests') diff --git a/cli/tests/unit/os_test.ts b/cli/tests/unit/os_test.ts index 5e88f02c1..ae2bee72e 100644 --- a/cli/tests/unit/os_test.ts +++ b/cli/tests/unit/os_test.ts @@ -239,6 +239,18 @@ Deno.test({ permissions: { sys: false } }, function releasePerm() { }, Deno.errors.PermissionDenied); }); +Deno.test({ permissions: { sys: ["osUptime"] } }, function osUptime() { + const uptime = Deno.osUptime(); + assert(typeof uptime === "number"); + assert(uptime > 0); +}); + +Deno.test({ permissions: { sys: false } }, function osUptimePerm() { + assertThrows(() => { + Deno.osUptime(); + }, Deno.errors.PermissionDenied); +}); + Deno.test( { permissions: { sys: ["systemMemoryInfo"] } }, function systemMemoryInfo() { diff --git a/cli/tests/unit/permissions_test.ts b/cli/tests/unit/permissions_test.ts index 3387913e8..3af2e35ea 100644 --- a/cli/tests/unit/permissions_test.ts +++ b/cli/tests/unit/permissions_test.ts @@ -22,6 +22,7 @@ Deno.test(async function permissionNetInvalidHost() { Deno.test(async function permissionSysValidKind() { await Deno.permissions.query({ name: "sys", kind: "loadavg" }); await Deno.permissions.query({ name: "sys", kind: "osRelease" }); + await Deno.permissions.query({ name: "sys", kind: "osUptime" }); await Deno.permissions.query({ name: "sys", kind: "networkInterfaces" }); await Deno.permissions.query({ name: "sys", kind: "systemMemoryInfo" }); await Deno.permissions.query({ name: "sys", kind: "hostname" }); -- cgit v1.2.3