libgit2测试失败了多少? (我该如何解释结果呢?)

时间:2013-07-04 09:05:22

标签: visual-c++ libgit2

我从libgit2存储库(提交4ae29053d5)获取/合并了最后的更改,创建了build子目录,并使用Visual Studio 2010以这种方式在Windows 7上编译了库:

e:\Software\libgit2\build>cmake .. -G"Visual Studio 10" -DTHREADSAFE=ON -DSTDCALL=OFF
-- The C compiler identification is MSVC 16.0.40219.1
-- Check for working C compiler using: Visual Studio 10
-- Check for working C compiler using: Visual Studio 10 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
zlib was not found; using bundled 3rd-party sources.
-- Found PythonInterp: c:/Python26/python.exe (found version "2.6.5")
-- Configuring done
-- Generating done
-- Build files have been written to: E:/Software/libgit2/build

e:\Software\libgit2\build>cmake --build .

Microsoft (R) Visual Studio Version 10.0.40219.1.
Copyright (C) Microsoft Corp. All rights reserved.
1>------ Build started: Project: ZERO_CHECK, Configuration: Debug Win32 ------
1>  Checking Build System
1>  CMake does not need to re-run because E:/Software/libgit2/build/CMakeFiles/g
enerate.stamp is up-to-date.
2>------ Build started: Project: git2, Configuration: Debug Win32 ------
3>------ Build started: Project: libgit2_clar, Configuration: Debug Win32 ------

2>  Building Custom Rule E:/Software/libgit2/CMakeLists.txt
2>  CMake does not need to re-run because E:\Software\libgit2\build\CMakeFiles\g
enerate.stamp is up-to-date.
2>  precompiled.c
3>  Building Custom Rule E:/Software/libgit2/CMakeLists.txt
[...]
3>  renames.c
3>  submodules.c
3>  lookup.c
3>  status.c
3>  basic.c
3>  trace.c
3>     Creating library E:/Software/libgit2/build/Debug/libgit2_clar.lib and obj
ect E:/Software/libgit2/build/Debug/libgit2_clar.exp
3>     Creating library E:/Software/libgit2/build/Debug/libgit2_clar.lib and obj
ect E:/Software/libgit2/build/Debug/libgit2_clar.exp
3>  libgit2_clar.vcxproj -> E:\Software\libgit2\build\Debug\libgit2_clar.exe
4>------ Build started: Project: ALL_BUILD, Configuration: Debug Win32 ------
4>  Building Custom Rule E:/Software/libgit2/CMakeLists.txt
4>  CMake does not need to re-run because E:\Software\libgit2\build\CMakeFiles\g
enerate.stamp is up-to-date.
4>  Build all projects
========== Build: 4 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========    

一切似乎都好。启动测试时,它失败了:

e:\Software\libgit2\build>ctest -V
UpdateCTestConfiguration  from :E:/Software/libgit2/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :E:/Software/libgit2/build/DartConfiguration.tcl
Test project E:/Software/libgit2/build
Constructing a list of tests
Done constructing a list of tests
Checking test dependency graph...
Checking test dependency graph end
test 1
    Start 1: libgit2_clar

1: Test command: E:\Software\libgit2\build\Debug\libgit2_clar.exe "-ionline"
1: Test timeout computed to be: 9.99988e+006
1: Loaded 195 suites:
1: Started
1:
1: attr::file....
1: attr::flags...
1: attr::ignore.....
[...]
1: status::submodules......
1: status::worktree..................................
1: status::worktree::init........
1: submodule::lookup.....
1: submodule::modify....
1: submodule::status.......
1: threads::basic.
1: trace::trace......
1:
1:   1) Failure:
1: diff::workdir::submodules [..\tests-clar\diff\workdir.c:825]
1:   33 != exp.lines
1:   33 != 35
1:
1/1 Test #1: libgit2_clar .....................***Failed  250.12 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) = 250.20 sec

The following tests FAILED:
          1 - libgit2_clar (Failed)
Errors while running CTest

这是一个知情吗?似乎很多(子)测试都通过了。我不知道测试框架。最后的消息是否意味着只有diff::workdir::submodules失败了?

1 个答案:

答案 0 :(得分:0)

  

我不知道测试框架。

Libgit2依赖于 Clar 测试框架。

  

最后的消息是否意味着只有diff :: workdir :: submodules失败了?

是。更准确地说,它指向 failing assertion

  

这是一个众所周知的情况吗?

没有。 libgit2团队努力工作,总是让测试通过。

我在本地尝试过,但我无法重现这个问题。此 gist 包含针对 libgit2@4ae29053 的构建和测试运行。

这也是针对Visual Studio 2010在Win 7(32位)平台上运行的。

我看到的唯一区别是你运行的是旧版本的Python,但这应该不是问题。 Clar 依靠Python来生成测试套件(在项目的 README 文件中有关此内容的更多信息)并支持Python返回版本2.5。

如果您可以成功重现此故障,请在 libgit2 issue tracker 中打开一个问题,因为这可能需要更深入的故障排除,这可能不适合StackOverflow格式。