Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Windows: structure_test binary missing .exe extension causes "Open With" dialog instead of running tests

Aperta
#557 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@peakschris ci sta già lavorando.

Dal 6/6/2026.

  • #559 di @peakschris — aperta

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
bash, powershell

Direzione di ricerca

Inizia in container/repositories.bzl e ispeziona il BUILD della toolchain Windows generato e il grafo delle azioni che risolve structure_test. Riproduci il target container_structure_test con driver="tar" su un host Bazel Windows, quindi verifica che il launcher generato risolva un percorso .exe ed esegua i test della struttura invece di aprire una finestra di dialogo. Conferma che il target riporti il risultato effettivo del test.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

On Windows, the structure_test binary downloaded by the Bazel toolchain has no file extension. When the generated .bat launcher script tries to invoke it (via bash.exe calling the binary, or via PowerShell's & operator), Windows does not recognise it as an executable.

Instead of running, Windows displays an "Open With" application picker dialog. The test process then returns exit code 0 (the dialog closes without error), so Bazel marks the test as PASSED without any structure tests having actually run.

Root cause

The Windows toolchain BUILD registers the binary without an extension:

# container/repositories.bzl — generated BUILD for windows_amd64
structure_test_toolchain(
    name = "structure_test_toolchain",
    structure_test = "structure_test"   # no .exe
)

Windows requires an extension to recognise a file as directly executable. The binary is a valid PE (.exe), just named without the extension.

Reproduction

  1. Use container_structure_test with driver = "tar" on a Windows Bazel host.
  2. Run the generated test target.
  3. An "Open With" dialog appears briefly and disappears; the test reports PASSED.
  4. No structure tests were actually executed.

Fix

Symlink the binary to <name>.exe in the Bazel action graph when building on Windows. This is safe — the binary is a valid PE regardless of its name — and the generated launcher scripts use rlocation to resolve the path at runtime, so they automatically pick up the .exe copy.

is_windows = ctx.target_platform_has_constraint(ctx.attr._windows_constraint[...])
if is_windows and not test_bin.basename.endswith(".exe"):
    test_bin_exe = ctx.actions.declare_file(test_bin.basename + ".exe")
    ctx.actions.symlink(output = test_bin_exe, target_file = test_bin)
    test_bin = test_bin_exe

A PR with this fix is attached.

Lingua principale
Go
Stelle
2.5k
Fork
213
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di GoogleContainerTools/container-structure-test

Tutte le issue di GoogleContainerTools/container-structure-test

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.