mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-25 12:41:50 +00:00
Better testing infrastructure; Initial exports/imports/re-exports
This commit is contained in:
15
tests/compiler/export.ts
Normal file
15
tests/compiler/export.ts
Normal file
@ -0,0 +1,15 @@
|
||||
export function add(a: i32, b: i32): i32 {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
function sub(a: i32, b: i32): i32 {
|
||||
return a - b;
|
||||
}
|
||||
|
||||
export { sub as renamed_sub };
|
||||
|
||||
export let a: i32 = 1;
|
||||
|
||||
let b: i32 = 2;
|
||||
|
||||
export { b as renamed_b };
|
52
tests/compiler/export.wast
Normal file
52
tests/compiler/export.wast
Normal file
@ -0,0 +1,52 @@
|
||||
(module
|
||||
(type $iii (func (param i32 i32) (result i32)))
|
||||
(global $export/a i32 (i32.const 1))
|
||||
(global $export/b i32 (i32.const 2))
|
||||
(memory $0 1)
|
||||
(data (i32.const 4) "\08\00\00\00")
|
||||
(export "memory" (memory $0))
|
||||
(func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(return
|
||||
(i32.add
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $export/sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(return
|
||||
(i32.sub
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(;
|
||||
[program.elements]
|
||||
clz
|
||||
ctz
|
||||
popcnt
|
||||
rotl
|
||||
rotr
|
||||
abs
|
||||
ceil
|
||||
copysign
|
||||
floor
|
||||
max
|
||||
min
|
||||
nearest
|
||||
sqrt
|
||||
trunc
|
||||
isNaN
|
||||
isFinite
|
||||
export/add
|
||||
export/sub
|
||||
export/a
|
||||
export/b
|
||||
[program.exports]
|
||||
export/add
|
||||
export/renamed_sub
|
||||
export/a
|
||||
export/renamed_b
|
||||
;)
|
3
tests/compiler/import.ts
Normal file
3
tests/compiler/import.ts
Normal file
@ -0,0 +1,3 @@
|
||||
import { add, renamed_sub as sub, a, renamed_b as b } from "./export";
|
||||
|
||||
add(a, b) + sub(b, a);
|
72
tests/compiler/import.wast
Normal file
72
tests/compiler/import.wast
Normal file
@ -0,0 +1,72 @@
|
||||
(module
|
||||
(type $iii (func (param i32 i32) (result i32)))
|
||||
(type $v (func))
|
||||
(global $export/a i32 (i32.const 1))
|
||||
(global $export/b i32 (i32.const 2))
|
||||
(memory $0 1)
|
||||
(data (i32.const 4) "\08\00\00\00")
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(return
|
||||
(i32.add
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $export/sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(return
|
||||
(i32.sub
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $start (; 2 ;) (type $v)
|
||||
(drop
|
||||
(i32.add
|
||||
(call $export/add
|
||||
(get_global $export/a)
|
||||
(get_global $export/b)
|
||||
)
|
||||
(call $export/sub
|
||||
(get_global $export/b)
|
||||
(get_global $export/a)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(;
|
||||
[program.elements]
|
||||
clz
|
||||
ctz
|
||||
popcnt
|
||||
rotl
|
||||
rotr
|
||||
abs
|
||||
ceil
|
||||
copysign
|
||||
floor
|
||||
max
|
||||
min
|
||||
nearest
|
||||
sqrt
|
||||
trunc
|
||||
isNaN
|
||||
isFinite
|
||||
export/add
|
||||
export/sub
|
||||
export/a
|
||||
export/b
|
||||
import/add
|
||||
import/sub
|
||||
import/a
|
||||
import/b
|
||||
[program.exports]
|
||||
export/add
|
||||
export/renamed_sub
|
||||
export/a
|
||||
export/renamed_b
|
||||
;)
|
7
tests/compiler/reexport.ts
Normal file
7
tests/compiler/reexport.ts
Normal file
@ -0,0 +1,7 @@
|
||||
export { add, renamed_sub } from "./export";
|
||||
|
||||
import { add as imported_add, renamed_sub as imported_sub } from "./export";
|
||||
|
||||
export { imported_add as renamed_add, imported_sub as rerenamed_sub };
|
||||
|
||||
imported_add(1, 2) + imported_sub(3, 4);
|
72
tests/compiler/reexport.wast
Normal file
72
tests/compiler/reexport.wast
Normal file
@ -0,0 +1,72 @@
|
||||
(module
|
||||
(type $iii (func (param i32 i32) (result i32)))
|
||||
(type $v (func))
|
||||
(memory $0 1)
|
||||
(data (i32.const 4) "\08\00\00\00")
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $export/add (; 0 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(return
|
||||
(i32.add
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $export/sub (; 1 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(return
|
||||
(i32.sub
|
||||
(get_local $0)
|
||||
(get_local $1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $start (; 2 ;) (type $v)
|
||||
(drop
|
||||
(i32.add
|
||||
(call $export/add
|
||||
(i32.const 1)
|
||||
(i32.const 2)
|
||||
)
|
||||
(call $export/sub
|
||||
(i32.const 3)
|
||||
(i32.const 4)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(;
|
||||
[program.elements]
|
||||
clz
|
||||
ctz
|
||||
popcnt
|
||||
rotl
|
||||
rotr
|
||||
abs
|
||||
ceil
|
||||
copysign
|
||||
floor
|
||||
max
|
||||
min
|
||||
nearest
|
||||
sqrt
|
||||
trunc
|
||||
isNaN
|
||||
isFinite
|
||||
export/add
|
||||
export/sub
|
||||
export/a
|
||||
export/b
|
||||
reexport/imported_add
|
||||
reexport/imported_sub
|
||||
[program.exports]
|
||||
export/add
|
||||
export/renamed_sub
|
||||
export/a
|
||||
export/renamed_b
|
||||
reexport/add
|
||||
reexport/renamed_sub
|
||||
reexport/renamed_add
|
||||
reexport/rerenamed_sub
|
||||
;)
|
Reference in New Issue
Block a user