-
Notifications
You must be signed in to change notification settings - Fork 802
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix tests #1931
Fix tests #1931
Conversation
b04b077
to
80bbfe2
Compare
Is this related to Arch Linux passing CI on #1926? |
Yes |
06d679a
to
e4319c3
Compare
@jralls this still needs to merge to allow failing guile tests to signal ninja. Any idea if it'll affect guile coverage tests? |
@christopherlam I got that half-done and got distracted by working on the macOS tests and by my laptop breaking over the weekend. But you can test it yourself, follow the coverage instructions and compare the reports results with the last regular test results. |
@christopherlam OK, I built it and ran tests with GUILE_COVERAGE. Works fine, though the Scheme coverage info shows up under share/guile/3.0/gnucash which surprised me a little. I know it would be a bit more work to just get rid of gnc:test-runner, but it would really be better than leaving the tombstone. I don't think we need the comment, the commit message should be sufficient. |
Ok I'll get rid of |
Hmm even this branch doesn't stop CMake incorrectly passing failing scheme tests. I am not familiar enough with the %load-hook mechanism to repair this. |
Maybe you could add a test that fails and ctest doesn't notice on Arch. That will give us something to compare between the CI builds that might help track down what's going on. |
In the stable build? It's easy to modify any test-equal assertion to make test fail. |
|
No, in this PR so we can see it in CI. Make it a separate commit so it's easy to back out before we merge. |
See this latest commit should make ci barf |
185148d
to
755852b
Compare
So it turns out that removing our test runner is counterproductive: With the test runner CI passes only on Arch Linux, without it passes everywhere. Here's the LastTest.log fragment from Arch:
|
On ubuntu 22-04
macOS looks the same. It isn't about cmake version, macOS at least is also using the latest 3.29.3. |
@christopherlam I found a difference. Do this
And look at the test output either with
And ctest always treats that as true. |
https://git.savannah.gnu.org/cgit/guile.git/log/module/srfi/srfi-64/testing.scm describes the 2 srfi-64 changes between 2.0.10 (introduce srfi-64) and 3.0.9. Can you figure out what would have changed? I can't understand the %load-hook hack. |
Comparing the commit dates with the releases shows the first went into 3.0.5 and the second into 3.0.7. I applied the first one to guile 2.2 and it makes test-core-utils pass.
|
@christopherlam I think so, I was waiting for you to check it. |
Guile 3.0.5 fixed what they thought was a bug whering run-test returned the rv of test-runner-on-final instead of the current test runner. Ctest considered the returned object to be a successful test and always reported the test passing.
Tests were passing incorrectly.
This branch removes the srfi-64 test runner customisation, using the default
test-runner-simple
. The test output is less nice, but it does not incorrectly signal test passes.I'm not sure of the effect upon the guile coverage tests.
@jralls