Skip to content

Commit

Permalink
[test] Globals initialized by other (imported) globals (WebAssembly#1288
Browse files Browse the repository at this point in the history
)
  • Loading branch information
sbc100 authored and gumb0 committed Mar 4, 2021
1 parent a3baa93 commit 0e5cd56
Showing 1 changed file with 28 additions and 18 deletions.
46 changes: 28 additions & 18 deletions test/core/global.wast
Original file line number Diff line number Diff line change
@@ -1,29 +1,37 @@
;; Test globals

(module
(global (import "spectest" "global_i32") i32)
(global (import "spectest" "global_i64") i64)

(global $a i32 (i32.const -2))
(global (;1;) f32 (f32.const -3))
(global (;2;) f64 (f64.const -4))
(global (;3;) f32 (f32.const -3))
(global (;4;) f64 (f64.const -4))
(global $b i64 (i64.const -5))

(global $x (mut i32) (i32.const -12))
(global (;5;) (mut f32) (f32.const -13))
(global (;6;) (mut f64) (f64.const -14))
(global (;7;) (mut f32) (f32.const -13))
(global (;8;) (mut f64) (f64.const -14))
(global $y (mut i64) (i64.const -15))

(global $z1 i32 (global.get 0))
(global $z2 i64 (global.get 1))

(func (export "get-a") (result i32) (global.get $a))
(func (export "get-b") (result i64) (global.get $b))
(func (export "get-x") (result i32) (global.get $x))
(func (export "get-y") (result i64) (global.get $y))
(func (export "get-z1") (result i32) (global.get $z1))
(func (export "get-z2") (result i64) (global.get $z2))
(func (export "set-x") (param i32) (global.set $x (local.get 0)))
(func (export "set-y") (param i64) (global.set $y (local.get 0)))

(func (export "get-1") (result f32) (global.get 1))
(func (export "get-2") (result f64) (global.get 2))
(func (export "get-5") (result f32) (global.get 5))
(func (export "get-6") (result f64) (global.get 6))
(func (export "set-5") (param f32) (global.set 5 (local.get 0)))
(func (export "set-6") (param f64) (global.set 6 (local.get 0)))
(func (export "get-3") (result f32) (global.get 3))
(func (export "get-4") (result f64) (global.get 4))
(func (export "get-7") (result f32) (global.get 7))
(func (export "get-8") (result f64) (global.get 8))
(func (export "set-7") (param f32) (global.set 7 (local.get 0)))
(func (export "set-8") (param f64) (global.set 8 (local.get 0)))

;; As the argument of control constructs and instructions

Expand Down Expand Up @@ -182,21 +190,23 @@
(assert_return (invoke "get-b") (i64.const -5))
(assert_return (invoke "get-x") (i32.const -12))
(assert_return (invoke "get-y") (i64.const -15))
(assert_return (invoke "get-z1") (i32.const 666))
(assert_return (invoke "get-z2") (i64.const 666))

(assert_return (invoke "get-1") (f32.const -3))
(assert_return (invoke "get-2") (f64.const -4))
(assert_return (invoke "get-5") (f32.const -13))
(assert_return (invoke "get-6") (f64.const -14))
(assert_return (invoke "get-3") (f32.const -3))
(assert_return (invoke "get-4") (f64.const -4))
(assert_return (invoke "get-7") (f32.const -13))
(assert_return (invoke "get-8") (f64.const -14))

(assert_return (invoke "set-x" (i32.const 6)))
(assert_return (invoke "set-y" (i64.const 7)))
(assert_return (invoke "set-5" (f32.const 8)))
(assert_return (invoke "set-6" (f64.const 9)))
(assert_return (invoke "set-7" (f32.const 8)))
(assert_return (invoke "set-8" (f64.const 9)))

(assert_return (invoke "get-x") (i32.const 6))
(assert_return (invoke "get-y") (i64.const 7))
(assert_return (invoke "get-5") (f32.const 8))
(assert_return (invoke "get-6") (f64.const 9))
(assert_return (invoke "get-7") (f32.const 8))
(assert_return (invoke "get-8") (f64.const 9))

(assert_return (invoke "as-select-first") (i32.const 6))
(assert_return (invoke "as-select-mid") (i32.const 2))
Expand Down

0 comments on commit 0e5cd56

Please sign in to comment.