Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wa-lang
wa
提交
22c88148
wa
项目概览
wa-lang
/
wa
10 个月 前同步成功
通知
68
Star
655
Fork
45
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
wa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
22c88148
编写于
5月 27, 2023
作者:
chai2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
单元测试支持 output 验证
上级
8e8ebcad
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
58 addition
and
11 deletion
+58
-11
internal/app/app_runtest.go
internal/app/app_runtest.go
+43
-8
internal/app/apputil/wabt_wat2wasm.go
internal/app/apputil/wabt_wat2wasm.go
+7
-2
internal/waroot/_waroot/src/fmt/zz_test.wa
internal/waroot/_waroot/src/fmt/zz_test.wa
+8
-1
未找到文件。
internal/app/app_runtest.go
浏览文件 @
22c88148
...
...
@@ -3,6 +3,7 @@
package
app
import
(
"bytes"
"fmt"
"os"
"strings"
...
...
@@ -41,8 +42,12 @@ func (p *App) RunTest(pkgpath string, appArgs ...string) error {
return
err
}
stdoutStderr
,
err
:=
apputil
.
RunWasm
(
cfg
,
"a.out.wat"
,
appArgs
...
)
if
err
==
nil
{
stdout
,
stderr
,
err
:=
apputil
.
RunWasmEx
(
cfg
,
"a.out.wat"
,
appArgs
...
)
stdout
=
bytes
.
TrimSpace
(
stdout
)
bOutputOK
:=
t
.
Output
==
string
(
stdout
)
if
err
==
nil
&&
bOutputOK
{
continue
}
...
...
@@ -52,13 +57,26 @@ func (p *App) RunTest(pkgpath string, appArgs ...string) error {
}
if
_
,
ok
:=
err
.
(
*
sys
.
ExitError
);
ok
{
fmt
.
Printf
(
"---- %s.%s
\n
"
,
prog
.
Manifest
.
MainPkg
,
t
.
Name
)
if
s
:=
sWithPrefix
(
string
(
stdoutStderr
),
" "
);
s
!=
""
{
if
s
:=
sWithPrefix
(
string
(
stdout
),
" "
);
s
!=
""
{
fmt
.
Println
(
s
)
}
if
s
:=
sWithPrefix
(
string
(
stderr
),
" "
);
s
!=
""
{
fmt
.
Println
(
s
)
}
}
else
{
fmt
.
Println
(
err
)
}
}
if
t
.
Output
!=
""
{
if
expect
,
got
:=
t
.
Output
,
string
(
stdout
);
expect
!=
got
{
if
firstError
==
nil
{
firstError
=
fmt
.
Errorf
(
"expect = %q, got = %q"
,
expect
,
got
)
}
fmt
.
Printf
(
"---- %s.%s
\n
"
,
prog
.
Manifest
.
MainPkg
,
t
.
Name
)
fmt
.
Printf
(
" expect = %q, got = %q
\n
"
,
expect
,
got
)
}
}
}
for
_
,
t
:=
range
mainPkg
.
TestInfo
.
Examples
{
output
,
err
:=
compiler_wat
.
New
()
.
Compile
(
prog
,
t
.
Name
)
...
...
@@ -70,8 +88,12 @@ func (p *App) RunTest(pkgpath string, appArgs ...string) error {
return
err
}
stdoutStderr
,
err
:=
apputil
.
RunWasm
(
cfg
,
"a.out.wat"
,
appArgs
...
)
if
err
==
nil
{
stdout
,
stderr
,
err
:=
apputil
.
RunWasmEx
(
cfg
,
"a.out.wat"
,
appArgs
...
)
stdout
=
bytes
.
TrimSpace
(
stdout
)
bOutputOK
:=
t
.
Output
==
string
(
stdout
)
if
err
==
nil
&&
bOutputOK
{
continue
}
...
...
@@ -81,20 +103,33 @@ func (p *App) RunTest(pkgpath string, appArgs ...string) error {
}
if
_
,
ok
:=
err
.
(
*
sys
.
ExitError
);
ok
{
fmt
.
Printf
(
"---- %s.%s
\n
"
,
prog
.
Manifest
.
MainPkg
,
t
.
Name
)
if
s
:=
sWithPrefix
(
string
(
stdoutStderr
),
" "
);
s
!=
""
{
if
s
:=
sWithPrefix
(
string
(
stdout
),
" "
);
s
!=
""
{
fmt
.
Println
(
s
)
}
if
s
:=
sWithPrefix
(
string
(
stderr
),
" "
);
s
!=
""
{
fmt
.
Println
(
s
)
}
}
else
{
fmt
.
Println
(
err
)
}
}
if
t
.
Output
!=
""
{
if
expect
,
got
:=
t
.
Output
,
string
(
stdout
);
expect
!=
got
{
if
firstError
==
nil
{
firstError
=
fmt
.
Errorf
(
"expect = %q, got = %q"
,
expect
,
got
)
}
fmt
.
Printf
(
"---- %s.%s
\n
"
,
prog
.
Manifest
.
MainPkg
,
t
.
Name
)
fmt
.
Printf
(
" expect = %q, got = %q
\n
"
,
expect
,
got
)
}
}
}
if
firstError
!=
nil
{
fmt
.
Printf
(
"FAIL %s %v
\n
"
,
prog
.
Manifest
.
MainPkg
,
time
.
Now
()
.
Sub
(
startTime
)
.
Round
(
time
.
Mi
cro
second
))
fmt
.
Printf
(
"FAIL %s %v
\n
"
,
prog
.
Manifest
.
MainPkg
,
time
.
Now
()
.
Sub
(
startTime
)
.
Round
(
time
.
Mi
lli
second
))
os
.
Exit
(
1
)
}
fmt
.
Printf
(
"ok %s %v
\n
"
,
prog
.
Manifest
.
MainPkg
,
time
.
Now
()
.
Sub
(
startTime
)
.
Round
(
time
.
Mi
cro
second
))
fmt
.
Printf
(
"ok %s %v
\n
"
,
prog
.
Manifest
.
MainPkg
,
time
.
Now
()
.
Sub
(
startTime
)
.
Round
(
time
.
Mi
lli
second
))
return
nil
}
...
...
internal/app/apputil/wabt_wat2wasm.go
浏览文件 @
22c88148
...
...
@@ -29,8 +29,13 @@ func getWatAbsDir(filename string) string {
}
func
RunWasm
(
cfg
*
config
.
Config
,
filename
string
,
wasmArgs
...
string
)
(
stdoutStderr
[]
byte
,
err
error
)
{
stdout
,
strerr
,
err
:=
runWasm
(
cfg
,
filename
,
wasmArgs
...
)
stdoutStderr
=
append
(
stdout
,
strerr
...
)
stdout
,
stderr
,
err
:=
runWasm
(
cfg
,
filename
,
wasmArgs
...
)
stdoutStderr
=
append
(
stdout
,
stderr
...
)
return
}
func
RunWasmEx
(
cfg
*
config
.
Config
,
filename
string
,
wasmArgs
...
string
)
(
stdout
,
stderr
[]
byte
,
err
error
)
{
stdout
,
stderr
,
err
=
runWasm
(
cfg
,
filename
,
wasmArgs
...
)
return
}
...
...
internal/waroot/_waroot/src/fmt/zz_test.wa
浏览文件 @
22c88148
// 版权 @2023 凹语言 作者。保留所有权利。
func TestFailed {
func TestFailed
_assert
{
ok := true
assert(ok)
ok = false
assert(ok, "message")
}
func TestFailed_output {
println("abc 123")
// Output:
// abc 1232
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录