diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 503dde72a8c..4f690763028 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,21 +89,32 @@ jobs: - uses: taiki-e/install-action@v2 with: tool: nextest - - name: "Test (nextest)" + - name: Test (nextest) id: nextest env: - GIX_TEST_IGNORE_ARCHIVES: 1 + GIX_TEST_IGNORE_ARCHIVES: '1' run: cargo nextest --profile=with-xml run --workspace --no-fail-fast continue-on-error: true - - name: Check how many tests failed - if: steps.nextest.outcome == 'failure' - env: - # See https://github.com/GitoxideLabs/gitoxide/issues/1358. - EXPECTED_FAILURE_COUNT: 14 + - name: Check for errors + run: | + [xml]$junit_xml = Get-Content -Path 'target/nextest/with-xml/junit.xml' + if ($junit_xml.testsuites.errors -ne 0) { exit 1 } + - name: Collect actual failures + run: | + [xml]$junit_xml = Get-Content -Path 'target/nextest/with-xml/junit.xml' + + $actual_failures = $junit_xml.SelectNodes("//testcase[failure]") | + ForEach-Object { "$($_.classname) $($_.name)" } | + Sort-Object + + Write-Output $actual_failures + Set-Content -Path 'actual-failures.txt' -Value $actual_failures + - name: Compare expected and actual failures run: | - [xml]$junit = Get-Content -Path 'target/nextest/with-xml/junit.xml' - if ($junit.testsuites.errors -ne 0) { exit 1 } - if ($junit.testsuites.failures -gt $env:EXPECTED_FAILURE_COUNT) { exit 1 } + # Fail on any differences, even unexpectedly passing tests, so they can be investigated. + # (If the job is made blocking for PRs, it may make sense to make this less stringent.) + git --no-pager diff --no-index --exit-code --unified=1000000 --color=always -- ` + etc/test-fixtures-windows-expected-failures-see-issue-1358.txt actual-failures.txt test-32bit: runs-on: ubuntu-latest diff --git a/etc/test-fixtures-windows-expected-failures-see-issue-1358.txt b/etc/test-fixtures-windows-expected-failures-see-issue-1358.txt new file mode 100644 index 00000000000..945b94e97b2 --- /dev/null +++ b/etc/test-fixtures-windows-expected-failures-see-issue-1358.txt @@ -0,0 +1,14 @@ +gix-glob::glob pattern::matching::compare_baseline_with_ours +gix-pathspec::pathspec parse::baseline +gix-pathspec::pathspec parse::valid::glob_negations_are_always_literal +gix-pathspec::pathspec parse::valid::whitespace_in_pathspec +gix-pathspec::pathspec search::files +gix-pathspec::pathspec search::prefixes_are_always_case_sensitive +gix-submodule::submodule file::baseline::common_values_and_names_by_path +gix-submodule::submodule file::is_active_platform::pathspecs_matter_even_if_they_do_not_match +gix-submodule::submodule file::is_active_platform::submodules_with_active_config_are_considered_active_or_inactive +gix-submodule::submodule file::is_active_platform::submodules_with_active_config_override_pathspecs +gix-submodule::submodule file::is_active_platform::without_any_additional_settings_all_are_inactive_if_they_have_a_url +gix-submodule::submodule file::is_active_platform::without_submodule_in_index +gix::gix revision::spec::from_bytes::regex::find_youngest_matching_commit::regex_matches +gix::gix revision::spec::from_bytes::regex::with_known_revision::contained_string_matches_in_unanchored_regex_and_disambiguates_automatically