Skip to content

Windows: the durability suites run zero tests (cfg(unix)) #6

Description

@nullarch

crates/attemptdb-storage/tests/{crash,repair}.rs and crates/attemptdb-capture/tests/daemon.rs carry #![cfg(unix)]. On Windows those test binaries run zero tests and report ok, so a green Windows CI job today proves the code compiles and passes unit tests — not that it recovers from a crash.

This is written down at the item that is easiest to misread as done (TODO.md, Cross-platform CI), and it is the largest gap in the durability story.

What to do

Port the harness rather than the individual tests. The Unix-specific pieces are:

  • process kill (SIGKILL / SIGABRT of the crash_writer example) → TerminateProcess;
  • fork-free child spawning is already std::process, so most of it should carry over;
  • file locking and "delete a file another process has open" semantics differ on Windows and are exactly what needs testing — expect real engine findings here, not just test plumbing.

Start with one scenario end to end (kill during WAL append) and land it; do not port all 28 in one pull request.

Done when

At least the WAL-append, segment-flush and manifest-update kills run on windows-latest in CI and pass, and the cfg(unix) gate is narrowed to only what is genuinely POSIX-only.

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

    help wantedExtra attention is neededplatformWindows, Linux, or macOS specific

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions