libgit2 / libgit2/libgit2

1.7.1: self test failures on Cygwin

オープン
#6,655 コメント 8 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
C
スター
10.6k
フォーク
2.7k
PR マージ指標
30日以内にマージされた PR はありません

説明

Reproduction steps
$ wget https://github.com/libgit2/libgit2/archive/refs/tags/v1.7.1.tar.gz
$ tar xf v1.7.1.tar.gz
$ cd libgit2-1.7.1
$ cmake -G Ninja -DBUILD_CLI:BOOL=OFF -DBUILD_EXAMPLES:BOOL=ON -DREGEX_BACKEND:STRING=pcre2 -DUSE_SSH:BOOL=ON .
$ ninja
$ ninja test

https://github.com/cygwin/scallywag/actions/runs/6831370933/job/18580898875

Expected behavior

All test pass

Actual behavior
Test project /cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/build
      Start  1: offline
 1/12 Test  #1: offline ..........................***Failed  453.91 sec
      Start  2: invasive
 2/12 Test  #2: invasive .........................***Failed    1.52 sec
      Start  3: online
 3/12 Test  #3: online ...........................   Passed   39.53 sec
      Start  4: online_customcert
 4/12 Test  #4: online_customcert ................   Passed    2.41 sec
      Start  5: gitdaemon
 5/12 Test  #5: gitdaemon ........................   Passed    6.19 sec
      Start  6: gitdaemon_namespace
 6/12 Test  #6: gitdaemon_namespace ..............   Passed    0.11 sec
      Start  7: gitdaemon_sha256
 7/12 Test  #7: gitdaemon_sha256 .................   Passed    0.11 sec
      Start  8: ssh
 8/12 Test  #8: ssh ..............................   Passed    7.01 sec
      Start  9: proxy
 9/12 Test  #9: proxy ............................   Passed    5.20 sec
      Start 10: auth_clone
10/12 Test #10: auth_clone .......................   Passed    1.76 sec
      Start 11: auth_clone_and_push
11/12 Test #11: auth_clone_and_push ..............   Passed    6.11 sec
      Start 12: util
12/12 Test #12: util .............................***Failed    1.05 sec

75% tests passed, 3 tests failed out of 12

Total Test time (real) = 524.93 sec

The following tests FAILED:
          1 - offline (Failed)
          2 - invasive (Failed)
         12 - util (Failed)
Errors while running CTest
Output from these tests are in: /cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/build/Testing/Temporary/LastTest.log
1/12 Test: offline

  1) Failure:
checkout::conflict::name_mangled_file_exists_in_workdir [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/checkout/conflict.c:160]
  OID mismatch: &expected != &actual
  "b42712cfe99a1a500b2a51fe984e0b8a7702ba11" != "a3102456e459e506a2e51646d2ffdbe5785fb5ca"

  2) Failure:
iterator::index::case_folding [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/iterator/index.c:51]
  String mismatch: expected_names[count] != entry->path
  'B' != 'a' (at byte 0)

  3) Failure:
iterator::workdir::skips_unreadable_dirs [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/iterator/workdir.c:704]
  String mismatch: "c/foo" != e->path
  'c/foo' != 'b/problem' (at byte 0)

  4) Failure:
repo::init::unwriteable_directory [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/repo/init.c:688]
  Function call succeeded: git_repository_init(&repo, "unwriteable/repo", 0)
  no error, expected non-zero return

  5) Failure:
status::worktree::whole_repository [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/status/worktree.c:41]
  counts.expected_entry_count != counts.entry_count
  16 != 21

  6) Failure:
status::worktree::show_index_and_workdir [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/status/worktree.c:69]
  counts.expected_entry_count != counts.entry_count
  16 != 21

  7) Failure:
status::worktree::show_workdir_only [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/status/worktree.c:71]
  0 != counts.wrong_sorted_path
  0 != 13

  8) Failure:
status::worktree::swap_subdir_and_file [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/status/worktree.c:182]
  counts.expected_entry_count != counts.entry_count
  22 != 27

  9) Failure:
status::worktree::swap_subdir_with_recurse_and_pathspec [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/status/worktree.c:216]
  counts.expected_entry_count != counts.entry_count
  23 != 28

  10) Failure:
status::worktree::conflict_has_no_oid [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/status/worktree.c:764]
  16 != git_status_list_entrycount(statuslist)
  16 != 22

  11) Failure:
status::worktree::update_stat_cache_0 [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/status/worktree.c:1034]
  entry_count0 != max_i
  16 != 21

  12) Failure:
status::worktree::unreadable [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/status/worktree.c:1118]
  0 != counts.wrong_status_flags_count
  0 != 1

2/12 Test: invasive

  1) Failure:
repo::init::unwriteable_directory [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/libgit2/repo/init.c:688]
  Function call succeeded: git_repository_init(&repo, "unwriteable/repo", 0)
  no error, expected non-zero return

12/12 Test: util

  1) Failure:
path::validate_current_user_ownership [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/util/path.c:764]
  is_cur != (geteuid() == 0)
  1 != 0

  2) Failure:
string::strcasecmp [/cygdrive/d/a/scallywag/playground/libgit2-1.7.1-1.x86_64/src/libgit2-1.7.1/tests/util/string.c:114]
  Expression is not true: strcasecmp("rt\303\202of", "rt dev\302\266h") > 0
Version of libgit2 (release number or SHA1)

1.7.1

Operating system(s) tested

Cygwin (x86-64)

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

提供された CMake/Ninja コマンドで Cygwin の失敗を再現し、build/Testing/Temporary/LastTest.log を調査してください。まず tests/libgit2/checkout/conflict.c、iterator、repo/init.c、status/worktree.c、および tests/util/path.c と string.c の失敗しているテストから始めてください。Cygwin で影響を受ける CTest スイートがパスすれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
c, cmake
領域
operating-systems, testing-qa
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。