Windows Runner Drops CTest Failure Output
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 1.4k
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 24
Description
Describe the bug
On Windows, runner drops terminal output from the test scenarios spawned by ctest.
Working on Actions + Linux:
https://github.com/equalsraf/neovim-qt/pull/885/checks?check_run_id=3094273077
Working on AppVeyor + Win:
https://ci.appveyor.com/project/equalsraf/neovim-qt/builds/40031037/job/ddhiyj6vtqyaclt9
No Output on Actions + Win:
https://github.com/equalsraf/neovim-qt/pull/885/checks?check_run_id=3094273084
You can RDP into the Windows runner, manually run the test and observe the correct output.
The output is being dropped by the GitHub Actions Runner.
See https://github.com/equalsraf/neovim-qt/issues/884 for more details.
To Reproduce
Example scenario: https://github.com/equalsraf/neovim-qt/pull/885
- Run
ctestwithin the action containing failures on Linux and Windows - Notice failure output is present on Linux:
FAIL! : ... - Notice Windows drops failure output only when run inside GitHub Actions. No
FAIL!: ...orPASS: ...
Expected behavior
GitHub actions should pipe output from ctest, and output from the tests it spawns.
You should see output for the failing tests such as tst_encoding. FAIL!: ...
Runner Version and Platform
Latest Github Actions hosted runner.
Does not work with windows-latest.
Works with ubuntu-latest and macos-latest.
AppVeyor + Windows example provided to demonstrate the underlying code works on Windows.
What's not working?
Please include error messages and screenshots.
Output from the failing test cases is missing. Only for GitHub Actions hosted instances running Windows.
Linux/MacOS work fine. Other CI tools work fine.
Actions + Linux (Good):
12/19 Test #12: tst_input_common_unix ............***Failed 0.05 sec
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-runner'
********* Start testing of TestInputCommon *********
Config: Using QtTest library 5.12.8, Qt 5.12.8 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 9.3.0)
PASS : TestInputCommon::initTestCase()
FAIL! : TestInputCommon::LessThanKey() 'false' returned FALSE. ()
Loc: [../test/tst_input_common.cpp(32)]
PASS : TestInputCommon::ModifierOnlyKeyEventsIgnored()
PASS : TestInputCommon::VolumeKeysIgnored()
PASS : TestInputCommon::ShiftKeyEventWellFormed()
PASS : TestInputCommon::CapsLockIgnored()
PASS : TestInputCommon::AltGrAloneIgnored()
PASS : TestInputCommon::AltGrKeyEventWellFormed()
PASS : TestInputCommon::ShiftSpaceWellFormed()
PASS : TestInputCommon::ShiftBackSpaceWellFormed()
PASS : TestInputCommon::MouseLeftClick()
PASS : TestInputCommon::MouseRightClick()
PASS : TestInputCommon::MouseMiddleClick()
PASS : TestInputCommon::cleanupTestCase()
Totals: 13 passed, 1 failed, 0 skipped, 0 blacklisted, 1ms
********* Finished testing of TestInputCommon *********
Start 13: tst_input_common_win32
AppVeyor + Windows (Good):
12: Test command: C:\projects\neovim-qt\build\bin\tst_input_common_unix.exe
12: Test timeout computed to be: 10000000
12: ********* Start testing of TestInputCommon *********
12: Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-llp64 shared (dynamic) release build; by GCC 8.1.0), windows server2016
12: PASS : TestInputCommon::initTestCase()
12: FAIL! : TestInputCommon::LessThanKey() 'false' returned FALSE. ()
12: C:\projects\neovim-qt\test\tst_input_common.cpp(32) : failure location
12: PASS : TestInputCommon::ModifierOnlyKeyEventsIgnored()
12: PASS : TestInputCommon::VolumeKeysIgnored()
12: PASS : TestInputCommon::ShiftKeyEventWellFormed()
12: PASS : TestInputCommon::CapsLockIgnored()
12: PASS : TestInputCommon::AltGrAloneIgnored()
12: PASS : TestInputCommon::AltGrKeyEventWellFormed()
12: PASS : TestInputCommon::ShiftSpaceWellFormed()
12: PASS : TestInputCommon::ShiftBackSpaceWellFormed()
12: PASS : TestInputCommon::MouseLeftClick()
12: PASS : TestInputCommon::MouseRightClick()
12: PASS : TestInputCommon::MouseMiddleClick()
12: PASS : TestInputCommon::cleanupTestCase()
12: Totals: 13 passed, 1 failed, 0 skipped, 0 blacklisted, 1ms
12: ********* Finished testing of TestInputCommon *********
12/19 Test #12: tst_input_common_unix ............***Failed 0.05 sec
test 13
Start 13: tst_input_common_win32
Actions + Windows (Bad):
12/19 Test #12: tst_input_common_unix ............***Failed 0.04 sec
Start 13: tst_input_common_win32
Runner and Worker's Diagnostic Logs
Here are logs from the example above:
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the attached runner diagnostic logs and the ctest reproduction in PR 885, comparing Windows Actions output with the Linux and AppVeyor examples and issue 884. Trace how the GitHub Actions Runner handles output from spawned ctest processes; done means Windows hosted runs show the QtTest PASS/FAIL lines and failure details.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, github-actions
- Domain
- ci-cd, devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100