From 7b0b911fe0d36809291b33632e7effb0fc30ba85 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Wed, 15 Jan 2025 23:25:36 +0900 Subject: [PATCH] separate memory64 tests for the convenience of runtimes w/o memory64 --- test/core/custom-page-sizes/memory_max.wast | 25 ------------ .../custom-page-sizes/memory_max_i64.wast | 39 +++++++++++++++++++ 2 files changed, 39 insertions(+), 25 deletions(-) create mode 100644 test/core/custom-page-sizes/memory_max_i64.wast diff --git a/test/core/custom-page-sizes/memory_max.wast b/test/core/custom-page-sizes/memory_max.wast index 7e0fdc0..2c45082 100644 --- a/test/core/custom-page-sizes/memory_max.wast +++ b/test/core/custom-page-sizes/memory_max.wast @@ -15,13 +15,6 @@ (memory 0xFFFF_FFFF (pagesize 1))) "unknown import") -;; i64 (pagesize 1) -(assert_unlinkable - (module - (import "test" "import" (func)) - (memory i64 0xFFFF_FFFF_FFFF_FFFF (pagesize 1))) - "unknown import") - ;; i32 (default pagesize) (assert_unlinkable (module @@ -29,13 +22,6 @@ (memory 65536 (pagesize 65536))) "unknown import") -;; i64 (default pagesize) -(assert_unlinkable - (module - (import "test" "unknown" (func)) - (memory i64 0x1_0000_0000_0000 (pagesize 65536))) - "unknown import") - ;; Memory size just over the maximum. ;; ;; These are malformed (for pagesize 1) @@ -46,19 +32,8 @@ (module quote "(memory 0x1_0000_0000 (pagesize 1))") "constant out of range") -;; i64 (pagesize 1) -(assert_malformed - (module quote "(memory i64 0x1_0000_0000_0000_0000 (pagesize 1))") - "constant out of range") - ;; i32 (default pagesize) (assert_invalid (module (memory 65537 (pagesize 65536))) "memory size must be at most") - -;; i64 (default pagesize) -(assert_invalid - (module - (memory i64 0x1_0000_0000_0001 (pagesize 65536))) - "memory size must be at most") diff --git a/test/core/custom-page-sizes/memory_max_i64.wast b/test/core/custom-page-sizes/memory_max_i64.wast new file mode 100644 index 0000000..607642d --- /dev/null +++ b/test/core/custom-page-sizes/memory_max_i64.wast @@ -0,0 +1,39 @@ +;; Maximum memory sizes. +;; +;; These modules are valid, but instantiating them is unnecessary +;; and would only allocate very large memories and slow down running +;; the spec tests. Therefore, add a missing import so that it cannot +;; be instantiated and use `assert_unlinkable`. This approach +;; enforces that the module itself is still valid, but that its +;; instantiation fails early (hopefully before any memories are +;; actually allocated). + +;; i64 (pagesize 1) +(assert_unlinkable + (module + (import "test" "import" (func)) + (memory i64 0xFFFF_FFFF_FFFF_FFFF (pagesize 1))) + "unknown import") + +;; i64 (default pagesize) +(assert_unlinkable + (module + (import "test" "unknown" (func)) + (memory i64 0x1_0000_0000_0000 (pagesize 65536))) + "unknown import") + +;; Memory size just over the maximum. +;; +;; These are malformed (for pagesize 1) +;; or invalid (for other pagesizes). + +;; i64 (pagesize 1) +(assert_malformed + (module quote "(memory i64 0x1_0000_0000_0000_0000 (pagesize 1))") + "constant out of range") + +;; i64 (default pagesize) +(assert_invalid + (module + (memory i64 0x1_0000_0000_0001 (pagesize 65536))) + "memory size must be at most")