infertux / bashcov

Code coverage tool for Bash
MIT License
150 stars 19 forks source link

Problems with bashcov on bash for Windows #87

Open ale5000-git opened 2 months ago

ale5000-git commented 2 months ago

I run it like this (bashcov 3.1.2 on Windows 10):

bash
BASHCOV_BASH_PATH='bash' bashcov -- ./my_script.sh

and I get:

bashcov: warning: running as root is NOT recommended, Bashcov may not work properly.
C:/Ruby-x64/lib/ruby/gems/3.0.0/gems/bashcov-3.1.2/lib/bashcov/runner.rb:59:in `spawn': wrong file descriptor (4) (ArgumentError)
        from C:/Ruby-x64/lib/ruby/gems/3.0.0/gems/bashcov-3.1.2/lib/bashcov/runner.rb:59:in `block in run'
        from C:/Ruby-x64/lib/ruby/gems/3.0.0/gems/bashcov-3.1.2/lib/bashcov/runner.rb:118:in `with_xtrace_flag'
        from C:/Ruby-x64/lib/ruby/gems/3.0.0/gems/bashcov-3.1.2/lib/bashcov/runner.rb:58:in `run'
        from C:/Ruby-x64/lib/ruby/gems/3.0.0/gems/bashcov-3.1.2/bin/bashcov:12:in `<top (required)>'
        from C:/Ruby-x64/bin/bashcov:32:in `load'
        from C:/Ruby-x64/bin/bashcov:32:in `<main>'

1) It isn't root, the detection doesn't work. 2) If I comment the line 34 options[fd] = fd # bind FDs to the child process, then the script go on (obviously without this line doesn't work correctly).

infertux commented 1 month ago

I don't have a Windows machine to debug this but looking at the Ruby documentation, it seems Windows doesn't provide IO.pipe: Not available on all platforms.