• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IJHack / QtPass / 35468126808
93%

Build:
DEFAULT BRANCH: main
Ran 19 Sep 2026 08:48PM UTC
Jobs 1
Files 113
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Sep 2026 08:40PM UTC coverage: 78.167% (+0.2%) from 78.0%
35468126808

push

github

web-flow
One parser for WSL commands, used everywhere a configured executable is started or probed (#1850)

* One parser for WSL commands, used by every place that starts or probes one

Three pieces of code each had their own idea of what "a WSL command" is:
Executor::startProcess and translatePathForWsl matched a literal "wsl "
prefix, Pass::resolveGpgconfCommand split the string and accepted wsl and
wsl.exe in any case, and NativeGrep carried its own copy of the wslpath
call. So `wsl.exe gpg` was accepted by the gpgconf lookup but, being handed
to QProcess as a program name with a space in it, never started; `WSL gpg`
the same; and `wsl -d Debian gpg` became `wsl --exec "-d Debian gpg"`, which
runs nothing. None of these reached a shell (the process simply failed to
start, which the Executor reports), but the definitions had drifted apart.

Executor::parseWslCommand() is now the only definition: `wsl` or `wsl.exe`
in any case, bare or as a path, then wsl.exe options (-d/--distribution,
-u/--user, --cd, --shell-type take a value; a user's -e/--exec is dropped
because argv() always adds one), then exactly one program. Anything else
is not a WSL command and is started as written. WslCommand::argv() builds
`<options> --exec <program> <args>`, WslCommand::with() runs another
program (wslpath, gpgconf) in the same distribution. startProcess,
translatePathForWsl, NativeGrep, resolveGpgconfCommand, the first-run
wizard's runnable check, the re-encrypt menu's availability check and
Util::configIsValid all go through it.

Tests: every spelling parses to the same launcher/options/program and, via
the fake wsl on PATH, reaches wsl.exe with the same argv (a hostile file
name arriving as one argument); shell command lines and option-only forms
are rejected; wslpath runs in the configured distribution; the gpgconf
tests cover wsl.exe in upper case.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc... (continued)

47 of 52 new or added lines in 6 files covered. (90.38%)

6831 of 8739 relevant lines covered (78.17%)

74.76 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
52.47
0.0% src/mainwindow.cpp
2
88.0
0.0% src/util.cpp
1
84.95
-0.39% src/pass.cpp
Jobs
ID Job ID Ran Files Coverage
1 35468126808.1 19 Sep 2026 08:48PM UTC 113
78.17
GitHub Action Run
Source Files on build 35468126808
  • Tree
  • List 113
  • Changed 7
  • Source Changed 7
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35468126808
  • 17bd44c9 on github
  • Prev Build on main (#35466109965)
  • Next Build on main (#35470040367)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc