Skip to content

The test suite does not pass on Windows #65

Description

@P4suta

9cabe47 started running cargo test on the systems this repository ships a binary for.
Windows had until then only been measured by ocomment.exe --version, and because that step went green the whole run did — reading as "Windows passes".

It does not.
Thirty-eight cases failed the first time the suite ran there.
Twenty-seven were one cause and are fixed in #64: the suite handed every run a fixed PATH of /usr/bin:/bin and called Git as /usr/bin/git, neither of which means anything on Windows.

Eleven remain, and each is the suite's problem rather than the binary's.

Cause Cases
A path separator asserted as / where Windows prints \ an_implicit_target_keeps_the_hidden_and_size_limits, a_whole_tree_staged_pathspec_keeps_the_project_limits, check_explain_names_the_override_and_the_pattern_that_kept_a_comment
fs::canonicalize returns a \\?\ prefix, and the temporary directory is reported under its 8.3 name (RUNNER~1) a_missing_path_says_where_it_was_looked_for, a_configuration_without_a_version_says_how_to_add_one
A fixture filename Windows will not hold — Os { code: 123, InvalidFilename } an_invalid_configuration_names_its_file_without_ringing_the_terminal, staged_new_rename_delete_and_unusual_paths_are_handled_from_index_blobs
A generated artifact compared byte-for-byte against one written with CRLF the_checked_in_completions_are_the_ones_the_binary_generates, the_checked_in_manual_page_is_the_one_the_binary_renders
A curl failure worded differently by the platform's build a_missing_plugin_tool_names_it_its_purpose_and_doctor
Not yet read doctor_reports_the_environment_it_resolved

Until this is closed, the Windows leg of host-smoke runs the suite and is continue-on-error.
That is deliberate rather than a dodge: the job still runs and still prints what fails, so the count above cannot quietly grow, and a red job nobody may merge past would either stop the repository or be deleted — which is the state 9cabe47 was written to end.

The fix is a port, not a change to what OComment does.
Worth doing as its own change, with the platform differences named where they are handled rather than papered over with a #[cfg(not(windows))] that would make the suite quietly smaller on the platform it was just taught to cover.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions