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.
9cabe47started runningcargo teston 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
PATHof/usr/bin:/binand 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.
/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_commentfs::canonicalizereturns 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_oneOs { code: 123, InvalidFilename }an_invalid_configuration_names_its_file_without_ringing_the_terminal,staged_new_rename_delete_and_unusual_paths_are_handled_from_index_blobsthe_checked_in_completions_are_the_ones_the_binary_generates,the_checked_in_manual_page_is_the_one_the_binary_renderscurlfailure worded differently by the platform's builda_missing_plugin_tool_names_it_its_purpose_and_doctordoctor_reports_the_environment_it_resolvedUntil this is closed, the Windows leg of
host-smokeruns the suite and iscontinue-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
9cabe47was 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.