wavefnd / wavefnd/Wave

Add unit tests for Windows ARM64 diagnostic probe logging

Open Beginner friendly
#654 0 comments 0 reactions 0 assignees View on GitHub
good first issue needs testing
Dominant language
Rust
Stars
53
Forks
16
Avg merge
4h 22m
Merged PRs (30d)
46

Description

## Current evidence

`tools/diagnose_windows_arm64.py` uses `probe()` to run a command through the shared process-tree helper, capture stdout/stderr, record native exit codes in decimal and hexadecimal, handle timeouts and launch failures, write a per-probe log, print the same evidence, and return a status used by the higher-level diagnostic flow.

The `probe()` function itself is portable and can be tested without a Windows ARM64 machine, but its success and failure paths currently have no focused unit coverage.

## Scope

- Add Python unit tests for `probe()` using temporary directories and small local commands.
- Cover successful output capture, a nonzero exit code, timeout handling, and an `OSError`/missing-command path.
- Assert that the generated log contains the label, command, relevant output/error text, and exit or timeout information.
- Keep the native ARM64 PE validation, compiler matrix, and LLDB invocation in `main()` unchanged.

## Completion criteria

- Focused tests run on ordinary CI/development hosts with the Python standard library only.
- Tests do not require Windows ARM64, LLVM, LLDB, or a Wave compiler build.
- Existing diagnostic log format remains useful for the native workflow.

Contributor guide

Open the contributing guide

Research direction

Start with tools/diagnose_windows_arm64.py and inspect probe(), including its process-tree helper call, logging, output, exit-status, timeout, and launch-failure paths. Add standard-library unit tests using temporary directories and small local commands, then verify logs contain the label, command, relevant output or error text, and exit or timeout information without changing main().

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
testing, tooling
Issue type
Feature
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
88/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.