[wine-zh] Re: [wine-zh] shell32 的 regression?

  • From: Jactry Zeng <jactry92@xxxxxxxxx>
  • To: wine-zh <wine-zh@xxxxxxxxxxxxx>
  • Date: Mon, 18 Nov 2013 19:11:08 +0800

Hi,

我用  wine shell32_test-stripped.exe.so shlfileop 没有这个错误:
shlfileop.c:482: Test failed: Icon Index Modified
shlfileop.c:489: Test failed: Icon Index Modified
shlfileop.c:626: Test failed: Expected 1026 or ERROR_FILE_NOT_FOUND, got 3
shlfileop.c:655: Test failed: Expected 1026 or ERROR_FILE_NOT_FOUND, got 3
shlfileop.c:660: Test failed: Expected test1.txt to exist

wine version:wine-1.7.6-136-gc20167d

如果要做 regression test 首先你得确定最新版确实有这个问题,然后找出你能确定的没有这个问题的
版本、最新越好,然后用 git bisect。
Wine 的 wiki 上有详细的说明:http://wiki.winehq.org/RegressionTesting

但是我觉得 git bisect 这种事情太苦逼了…所以有以下两种办法:
一种是你说的自动化,我猜想你可以写一个 shell 脚本来让他自己跑,把 make test 的结果输出到
一个文本,然后你在脚本里面每次跑完测试解析这个文本,看你指定的某行 Test failed 消失或者
出现的状况。
不过从上面看来可能会有不同 testcase 但是 error 相同的情况,我又猜想了两种办法:
0. 每次 git bisect 到新的版本后、make 之前,修改我们跟踪那个 testcase 的 Test failed 输出,
加入一些特别的标志来跟踪;
1. 半自动脚本,每次有多个相同的 error 出现时,脚本让用户输入,人为干预下…

第二种就是 git log dlls/xxx/test,目测下有哪些可疑的 patch 可能影响了,然后看代码。其实这个
也可以在 git bisect 之前先看看,缩小下范围。
我们先假设你说的这个 test failed 确实存在,git log 显示在你上次提交那两个 patch 之后只有 Nikolay
的一个 patch,如果你能肯定你提交 patch 之后、Nikolay 提交之前是好的,那么可能问题出在 Nikolay
的patch,否则还有可能是更底层的 patch 导致的。

2013/11/18 Zhenbo Li <litimetal@xxxxxxxxx>

> 在最新版本的 git wine 里,
> cd dlls/shell32/tests
> make test shlfileop
> 会出现
> shlfileop.c:640: Test failed: Expected ERROR_PATH_NOT_FOUND, got 2
> 请问,你们能看到这个现象吗?
> PS 如果要检测 wine test 的regression,应该怎么写自动测试脚本?能给一点提示吗?
>
> 谢谢
> --
> Have a nice day!
> Zhenbo Li
>



-- 
Regards,
Jactry Zeng

Other related posts:

  • » [wine-zh] Re: [wine-zh] shell32 的 regression? - Jactry Zeng