diff options
author | Matt Mastracci <matthew@mastracci.com> | 2024-02-10 13:22:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-10 20:22:13 +0000 |
commit | f5e46c9bf2f50d66a953fa133161fc829cecff06 (patch) | |
tree | 8faf2f5831c1c7b11d842cd9908d141082c869a5 /cli/tests/unit_node/os_test.ts | |
parent | d2477f780630a812bfd65e3987b70c0d309385bb (diff) |
chore: move cli/tests/ -> tests/ (#22369)
This looks like a massive PR, but it's only a move from cli/tests ->
tests, and updates of relative paths for files.
This is the first step towards aggregate all of the integration test
files under tests/, which will lead to a set of integration tests that
can run without the CLI binary being built.
While we could leave these tests under `cli`, it would require us to
keep a more complex directory structure for the various test runners. In
addition, we have a lot of complexity to ignore various test files in
the `cli` project itself (cargo publish exclusion rules, autotests =
false, etc).
And finally, the `tests/` folder will eventually house the `test_ffi`,
`test_napi` and other testing code, reducing the size of the root repo
directory.
For easier review, the extremely large and noisy "move" is in the first
commit (with no changes -- just a move), while the remainder of the
changes to actual files is in the second commit.
Diffstat (limited to 'cli/tests/unit_node/os_test.ts')
-rw-r--r-- | cli/tests/unit_node/os_test.ts | 325 |
1 files changed, 0 insertions, 325 deletions
diff --git a/cli/tests/unit_node/os_test.ts b/cli/tests/unit_node/os_test.ts deleted file mode 100644 index c18aa07c3..000000000 --- a/cli/tests/unit_node/os_test.ts +++ /dev/null @@ -1,325 +0,0 @@ -// deno-lint-ignore-file no-undef -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. - -import os from "node:os"; -import { - assert, - assertEquals, - assertNotEquals, - assertThrows, -} from "@test_util/std/assert/mod.ts"; - -Deno.test({ - name: "build architecture is a string", - fn() { - assertEquals(typeof os.arch(), "string"); - }, -}); - -Deno.test({ - name: "build architecture", - fn() { - if (Deno.build.arch == "x86_64") { - assertEquals(os.arch(), "x64"); - } else if (Deno.build.arch == "aarch64") { - assertEquals(os.arch(), "arm64"); - } else { - throw new Error("unreachable"); - } - }, -}); - -Deno.test({ - name: "os machine (arch)", - fn() { - if (Deno.build.arch == "aarch64") { - assertEquals(os.machine(), "arm64"); - } else { - assertEquals(os.machine(), Deno.build.arch); - } - }, -}); - -Deno.test({ - name: "home directory is a string", - fn() { - assertEquals(typeof os.homedir(), "string"); - }, -}); - -Deno.test({ - name: "tmp directory is a string", - fn() { - assertEquals(typeof os.tmpdir(), "string"); - }, -}); - -Deno.test({ - name: "hostname is a string", - fn() { - assertEquals(typeof os.hostname(), "string"); - }, -}); - -Deno.test({ - name: "platform is a string", - fn() { - assertEquals(typeof os.platform(), "string"); - }, -}); - -Deno.test({ - name: "release is a string", - fn() { - assertEquals(typeof os.release(), "string"); - }, -}); - -Deno.test({ - name: "type is a string", - fn() { - assertEquals(typeof os.type(), "string"); - }, -}); - -Deno.test({ - name: "getPriority(): PID must be a 32 bit integer", - fn() { - assertThrows( - () => { - os.getPriority(3.15); - }, - Error, - "pid must be 'an integer'", - ); - assertThrows( - () => { - os.getPriority(9999999999); - }, - Error, - "must be >= -2147483648 && <= 2147483647", - ); - }, -}); - -Deno.test({ - name: "setPriority(): PID must be a 32 bit integer", - fn() { - assertThrows( - () => { - os.setPriority(3.15, 0); - }, - Error, - "pid must be 'an integer'", - ); - assertThrows( - () => { - os.setPriority(9999999999, 0); - }, - Error, - "pid must be >= -2147483648 && <= 2147483647", - ); - }, -}); - -Deno.test({ - name: "setPriority(): priority must be an integer between -20 and 19", - fn() { - assertThrows( - () => { - os.setPriority(0, 3.15); - }, - Error, - "priority must be 'an integer'", - ); - assertThrows( - () => { - os.setPriority(0, -21); - }, - Error, - "priority must be >= -20 && <= 19", - ); - assertThrows( - () => { - os.setPriority(0, 20); - }, - Error, - "priority must be >= -20 && <= 19", - ); - assertThrows( - () => { - os.setPriority(0, 9999999999); - }, - Error, - "priority must be >= -20 && <= 19", - ); - }, -}); - -Deno.test({ - name: - "setPriority(): if only one argument specified, then this is the priority, NOT the pid", - fn() { - assertThrows( - () => { - os.setPriority(3.15); - }, - Error, - "priority must be 'an integer'", - ); - assertThrows( - () => { - os.setPriority(-21); - }, - Error, - "priority must be >= -20 && <= 19", - ); - assertThrows( - () => { - os.setPriority(20); - }, - Error, - "priority must be >= -20 && <= 19", - ); - assertThrows( - () => { - os.setPriority(9999999999); - }, - Error, - "priority must be >= -20 && <= 19", - ); - }, -}); - -Deno.test({ - name: "EOL is as expected", - fn() { - assert(os.EOL == "\r\n" || os.EOL == "\n"); - }, -}); - -Deno.test({ - name: "Endianness is determined", - fn() { - assert(["LE", "BE"].includes(os.endianness())); - }, -}); - -Deno.test({ - name: "Load average is an array of 3 numbers", - fn() { - const result = os.loadavg(); - assert(result.length == 3); - assertEquals(typeof result[0], "number"); - assertEquals(typeof result[1], "number"); - assertEquals(typeof result[2], "number"); - }, -}); - -Deno.test({ - name: "Primitive coercion works as expected", - fn() { - assertEquals(`${os.arch}`, os.arch()); - assertEquals(`${os.endianness}`, os.endianness()); - assertEquals(`${os.platform}`, os.platform()); - }, -}); - -Deno.test({ - name: "Total memory amount should be greater than 0", - fn() { - assert(os.totalmem() > 0); - }, -}); - -Deno.test({ - name: "Free memory amount should be greater than 0", - fn() { - assert(os.freemem() > 0); - }, -}); - -Deno.test({ - name: "Uptime should be greater than 0", - fn() { - assert(os.uptime() > 0); - }, -}); - -Deno.test({ - name: "os.cpus()", - fn() { - assertEquals(os.cpus().length, navigator.hardwareConcurrency); - - for (const cpu of os.cpus()) { - assert(cpu.model.length > 0); - assert(cpu.speed >= 0); - assert(cpu.times.user > 0); - assert(cpu.times.sys > 0); - assert(cpu.times.idle > 0); - } - }, -}); - -Deno.test({ - name: "os.setPriority() & os.getPriority()", - // disabled because os.getPriority() doesn't work without sudo - ignore: true, - fn() { - const child = new Deno.Command(Deno.execPath(), { - args: ["eval", "while (true) { console.log('foo') }"], - }).spawn(); - const originalPriority = os.getPriority(child.pid); - assertNotEquals(originalPriority, os.constants.priority.PRIORITY_HIGH); - os.setPriority(child.pid, os.constants.priority.PRIORITY_HIGH); - assertEquals( - os.getPriority(child.pid), - os.constants.priority.PRIORITY_HIGH, - ); - os.setPriority(child.pid, originalPriority); - assertEquals(os.getPriority(child.pid), originalPriority); - child.kill(); - }, -}); - -Deno.test({ - name: - "os.setPriority() throw os permission denied error & os.getPriority() doesn't", - async fn() { - const child = new Deno.Command(Deno.execPath(), { - args: ["eval", "while (true) { console.log('foo') }"], - }).spawn(); - assertThrows( - () => os.setPriority(child.pid, os.constants.priority.PRIORITY_HIGH), - Deno.errors.PermissionDenied, - ); - os.getPriority(child.pid); - child.kill(); - await child.status; - }, -}); - -// Gets the diff in log_10 scale -function diffLog10(a: number, b: number): number { - return Math.abs(Math.log10(a) - Math.log10(b)); -} - -Deno.test({ - name: - "os.freemem() is equivalent of Deno.systemMemoryInfo().free except on linux", - ignore: Deno.build.os === "linux", - fn() { - const diff = diffLog10(os.freemem(), Deno.systemMemoryInfo().free); - assert(diff < 1); - }, -}); - -Deno.test({ - name: - "os.freemem() is equivalent of Deno.systemMemoryInfo().available on linux", - ignore: Deno.build.os !== "linux", - fn() { - const diff = diffLog10(os.freemem(), Deno.systemMemoryInfo().available); - assert(diff < 1); - }, -}); |