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