From c9edb15f151774ba593bec162a5696989e1c40be Mon Sep 17 00:00:00 2001 From: David Sherret Date: Mon, 19 Aug 2024 12:41:11 -0400 Subject: fix(compile): make output more deterministic (#25092) Closes https://github.com/denoland/deno/issues/25084 --- tests/specs/compile/determinism/__test__.jsonc | 28 +++++++++++++++++++++++++ tests/specs/compile/determinism/assert_equal.ts | 15 +++++++++++++ tests/specs/compile/determinism/main.ts | 4 ++++ 3 files changed, 47 insertions(+) create mode 100644 tests/specs/compile/determinism/__test__.jsonc create mode 100644 tests/specs/compile/determinism/assert_equal.ts create mode 100644 tests/specs/compile/determinism/main.ts (limited to 'tests/specs/compile/determinism') diff --git a/tests/specs/compile/determinism/__test__.jsonc b/tests/specs/compile/determinism/__test__.jsonc new file mode 100644 index 000000000..97045744f --- /dev/null +++ b/tests/specs/compile/determinism/__test__.jsonc @@ -0,0 +1,28 @@ +{ + "tempDir": true, + "steps": [{ + "if": "unix", + "args": "compile --output main1 main.ts", + "output": "[WILDCARD]" + }, { + "if": "unix", + "args": "compile --output main2 main.ts", + "output": "[WILDCARD]" + }, { + "if": "unix", + "args": "run --allow-read=. assert_equal.ts main1 main2", + "output": "Same\n" + }, { + "if": "windows", + "args": "compile --output main1.exe main.ts", + "output": "[WILDCARD]" + }, { + "if": "windows", + "args": "compile --output main2.exe main.ts", + "output": "[WILDCARD]" + }, { + "if": "windows", + "args": "run --allow-read=. assert_equal.ts main1.exe main2.exe", + "output": "Same\n" + }] +} diff --git a/tests/specs/compile/determinism/assert_equal.ts b/tests/specs/compile/determinism/assert_equal.ts new file mode 100644 index 000000000..c99bdf16c --- /dev/null +++ b/tests/specs/compile/determinism/assert_equal.ts @@ -0,0 +1,15 @@ +const file1 = Deno.readFileSync(Deno.args[0]); +const file2 = Deno.readFileSync(Deno.args[1]); + +if (file1.length !== file2.length) { + console.error("File lengths are different"); + Deno.exit(1); +} +for (let i = 0; i < file1.length; i++) { + if (file1[i] !== file2[i]) { + console.error("Files are different"); + Deno.exit(1); + } +} + +console.error("Same"); diff --git a/tests/specs/compile/determinism/main.ts b/tests/specs/compile/determinism/main.ts new file mode 100644 index 000000000..602388bb7 --- /dev/null +++ b/tests/specs/compile/determinism/main.ts @@ -0,0 +1,4 @@ +import "npm:@denotest/esm-basic"; +import "npm:@denotest/add"; +import "npm:@denotest/subtract"; +import "npm:preact"; -- cgit v1.2.3