summaryrefslogtreecommitdiff
path: root/tests/specs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-08-19 12:41:11 -0400
committerGitHub <noreply@github.com>2024-08-19 16:41:11 +0000
commitc9edb15f151774ba593bec162a5696989e1c40be (patch)
treebfb36b90ffae34e23200a40ba0bd239284818099 /tests/specs
parenta20418e2e8c4753e9e479ad0c0cc2a2087f374d6 (diff)
fix(compile): make output more deterministic (#25092)
Closes https://github.com/denoland/deno/issues/25084
Diffstat (limited to 'tests/specs')
-rw-r--r--tests/specs/compile/determinism/__test__.jsonc28
-rw-r--r--tests/specs/compile/determinism/assert_equal.ts15
-rw-r--r--tests/specs/compile/determinism/main.ts4
3 files changed, 47 insertions, 0 deletions
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";