diff options
author | inoas <mail@inoas.com> | 2023-01-23 17:13:24 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2023-01-23 22:11:27 +0000 |
commit | 28ece48674fad5e4ad94ff2a545a142738955722 (patch) | |
tree | c66921b05b85c10f315ef21606c82e1dbf05b4ab /test | |
parent | 53dd405630f615cde99b716eab6a6ffc1b3be093 (diff) | |
download | gleam_stdlib-28ece48674fad5e4ad94ff2a545a142738955722.tar.gz gleam_stdlib-28ece48674fad5e4ad94ff2a545a142738955722.zip |
rename modules
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/dynamic_test.gleam | 2 | ||||
-rw-r--r-- | test/gleam_stdlib_test.gleam | 2 | ||||
-rwxr-xr-x | test/gleam_stdlib_test_ffi.mjs | 107 | ||||
-rwxr-xr-x | test/gleam_stdlib_test_helpers_ffi.mjs | 8 | ||||
-rwxr-xr-x | test/gleeunit.mjs | 103 |
5 files changed, 111 insertions, 111 deletions
diff --git a/test/gleam/dynamic_test.gleam b/test/gleam/dynamic_test.gleam index 8b6ff20..ffd8b73 100644 --- a/test/gleam/dynamic_test.gleam +++ b/test/gleam/dynamic_test.gleam @@ -41,7 +41,7 @@ if erlang { if javascript { external fn uint8array(List(Int)) -> dynamic.Dynamic = - "../gleam_stdlib_test_helpers_ffi.mjs" "uint8array" + "../gleam_stdlib_test_ffi.mjs" "uint8array" pub fn bit_string_erlang_test() { [1, 1, 2, 3, 5, 8] diff --git a/test/gleam_stdlib_test.gleam b/test/gleam_stdlib_test.gleam index 3528ddd..fabc311 100644 --- a/test/gleam_stdlib_test.gleam +++ b/test/gleam_stdlib_test.gleam @@ -5,5 +5,5 @@ if erlang { if javascript { pub external fn main() -> Nil = - "./gleam_stdlib_test_ffi.mjs" "main" + "././gleeunit.mjs" "main" } diff --git a/test/gleam_stdlib_test_ffi.mjs b/test/gleam_stdlib_test_ffi.mjs index e497629..68922c9 100755 --- a/test/gleam_stdlib_test_ffi.mjs +++ b/test/gleam_stdlib_test_ffi.mjs @@ -1,103 +1,8 @@ -// This file is a verbatim copy of gleeunit 0.10.0's <https://github.com/lpil/gleeunit/blob/main/src/gleeunit_ffi.mjs> - -async function* gleamFiles(directory) { - for (let entry of await read_dir(directory)) { - let path = join_path(directory, entry); - if (path.endsWith(".gleam")) { - yield path; - } else { - try { - yield* gleamFiles(path); - } catch (error) { - // Could not read directory, assume it's a file - } - } - } -} - -async function readRootPackageName() { - let toml = await read_file("gleam.toml", "utf-8"); - for (let line of toml.split("\n")) { - let matches = line.match(/\s*name\s*=\s*"([a-z][a-z0-9_]*)"/); // Match regexp in compiler-cli/src/new.rs in validate_name() - if (matches) return matches[1]; - } - throw new Error("Could not determine package name from gleam.toml"); -} - -export async function main() { - let passes = 0; - let failures = 0; - - let packageName = await readRootPackageName(); - let dist = `../${packageName}/`; - - for await (let path of await gleamFiles("test")) { - let js_path = path.slice("test/".length).replace(".gleam", ".mjs"); - let module = await import(join_path(dist, js_path)); - for (let fnName of Object.keys(module)) { - if (!fnName.endsWith("_test")) continue; - try { - await module[fnName](); - write(`\u001b[32m.\u001b[0m`); - passes++; - } catch (error) { - let moduleName = "\n" + js_path.slice(0, -4); - let line = error.line ? `:${error.line}` : ""; - write(`\n❌ ${moduleName}.${fnName}${line}: ${error}\n`); - failures++; - } - } - } - - console.log(` -${passes + failures} tests, ${failures} failures`); - exit(failures ? 1 : 0); -} - -export function crash(message) { - throw new Error(message); -} - -function write(message) { - if (globalThis.Deno) { - Deno.stdout.writeSync(new TextEncoder().encode(message)); - } else { - process.stdout.write(message); - } -} - -function exit(code) { - if (globalThis.Deno) { - Deno.exit(code); - } else { - process.exit(code); - } -} - -async function read_dir(path) { - if (globalThis.Deno) { - let items = []; - for await (let item of Deno.readDir(path, { withFileTypes: true })) { - items.push(item.name); - } - return items; - } else { - let { readdir } = await import("fs/promises"); - return readdir(path); - } -} - -function join_path(a, b) { - if (a.endsWith("/")) return a + b; - return a + "/" + b; -} - -async function read_file(path) { - if (globalThis.Deno) { - return Deno.readTextFile(path); - } else { - let { readFile } = await import("fs/promises"); - let contents = await readFile(path); - return contents.toString(); +export function uint8array(list) { + let ints = list.toArray(); + let array = new Uint8Array(ints.length); + for (let i = 0; i < ints.length; i++) { + array[i] = ints[i]; } + return array; } diff --git a/test/gleam_stdlib_test_helpers_ffi.mjs b/test/gleam_stdlib_test_helpers_ffi.mjs deleted file mode 100755 index 68922c9..0000000 --- a/test/gleam_stdlib_test_helpers_ffi.mjs +++ /dev/null @@ -1,8 +0,0 @@ -export function uint8array(list) { - let ints = list.toArray(); - let array = new Uint8Array(ints.length); - for (let i = 0; i < ints.length; i++) { - array[i] = ints[i]; - } - return array; -} diff --git a/test/gleeunit.mjs b/test/gleeunit.mjs new file mode 100755 index 0000000..e497629 --- /dev/null +++ b/test/gleeunit.mjs @@ -0,0 +1,103 @@ +// This file is a verbatim copy of gleeunit 0.10.0's <https://github.com/lpil/gleeunit/blob/main/src/gleeunit_ffi.mjs> + +async function* gleamFiles(directory) { + for (let entry of await read_dir(directory)) { + let path = join_path(directory, entry); + if (path.endsWith(".gleam")) { + yield path; + } else { + try { + yield* gleamFiles(path); + } catch (error) { + // Could not read directory, assume it's a file + } + } + } +} + +async function readRootPackageName() { + let toml = await read_file("gleam.toml", "utf-8"); + for (let line of toml.split("\n")) { + let matches = line.match(/\s*name\s*=\s*"([a-z][a-z0-9_]*)"/); // Match regexp in compiler-cli/src/new.rs in validate_name() + if (matches) return matches[1]; + } + throw new Error("Could not determine package name from gleam.toml"); +} + +export async function main() { + let passes = 0; + let failures = 0; + + let packageName = await readRootPackageName(); + let dist = `../${packageName}/`; + + for await (let path of await gleamFiles("test")) { + let js_path = path.slice("test/".length).replace(".gleam", ".mjs"); + let module = await import(join_path(dist, js_path)); + for (let fnName of Object.keys(module)) { + if (!fnName.endsWith("_test")) continue; + try { + await module[fnName](); + write(`\u001b[32m.\u001b[0m`); + passes++; + } catch (error) { + let moduleName = "\n" + js_path.slice(0, -4); + let line = error.line ? `:${error.line}` : ""; + write(`\n❌ ${moduleName}.${fnName}${line}: ${error}\n`); + failures++; + } + } + } + + console.log(` +${passes + failures} tests, ${failures} failures`); + exit(failures ? 1 : 0); +} + +export function crash(message) { + throw new Error(message); +} + +function write(message) { + if (globalThis.Deno) { + Deno.stdout.writeSync(new TextEncoder().encode(message)); + } else { + process.stdout.write(message); + } +} + +function exit(code) { + if (globalThis.Deno) { + Deno.exit(code); + } else { + process.exit(code); + } +} + +async function read_dir(path) { + if (globalThis.Deno) { + let items = []; + for await (let item of Deno.readDir(path, { withFileTypes: true })) { + items.push(item.name); + } + return items; + } else { + let { readdir } = await import("fs/promises"); + return readdir(path); + } +} + +function join_path(a, b) { + if (a.endsWith("/")) return a + b; + return a + "/" + b; +} + +async function read_file(path) { + if (globalThis.Deno) { + return Deno.readTextFile(path); + } else { + let { readFile } = await import("fs/promises"); + let contents = await readFile(path); + return contents.toString(); + } +} |