-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Pass tests on Windows #670
Comments
Is there a way to run these tests automatically with travis? On Tue, Apr 8, 2014 at 11:10 PM, Adrian Sampson notifications@git.luolix.topwrote:
|
Alas, not yet: travis-ci/travis-ci#216 |
Made some progress on fixing the tests on Windows today. Ran into a couple of more challenging issues:
|
Identified while tackling #670, but this should actually solve some legitimate problems with cataloging music on a network drive.
Doing test-specific cleanup in tearDown before general sandbox deletion helps avoiding contamination of global state between tests when cleanup fails. Current Windows status: Ran 1106 tests in 72.373s FAILED (SKIP=10, errors=13, failures=15) Closer!
@sampsyo |
I'm actually not sure that they are that cheap. Closing and re-opening the connection on every transaction would mean going to the OS to open the file, loading the schema, invoking SQLite's integrity checks, etc. every time we need to read from or write to the database. I think that's a little bit overkill. Some way to clean up the connection when a thread is actually done would be ideal. One nice thing is that this can be conservative—closing the connection early does not need to lead to correctness issues, since it will be re-opened on demand. It's just a performance thing. |
Alright, we now have a Windows continuous integration service up and running! https://ci.appveyor.com/project/sampsyo/beets Here's the current status:
94% passes ain't bad! 😃 Let the fixing begin. |
Is there a reason that AppVeyor always reports a success, even if some tests fail? For example here. In this build, 51 tests failed, 38 errors and the command even exited with code 1 (highlighted in red at the end) but AppVeyor still says everything is fine. |
I've told Appveyor to ignore all failures, since our test suite doesn't yet pass on Windows. Otherwise, we'd get "checks failed" for every PR. |
Aha! I might try working out some of the Windows issues, 51 failed tests out of over 1500 isn't bad! |
I did a little more work on the Windows tests today. I ran into a couple of obvious loose ends:
There's still something mysterious going on with plugin loading too. I haven't worked out what it is yet because the problem seems to go away if you run any of the test files individually; the problem only arises as an inter-test dependency. 😢 Current status:
|
That |
In 8264026, I fixed an absolutely maddening bug that caused almost all plugin tests to fail because of some old, broken code in
|
I fiddled with some of the database closing issues today, which made up the bulk of the remaining unhandled exceptions:
Pretty close! Most of the remaining failures have to do with filename vagaries. |
I'm having fun making this a running log! I got some more of the low-hanging fruit today:
There's a bunch of vexing path stuff in those remaining 13 tests. |
A few more path-related fixes and a judicious skip brings us ever closer:
No more unhandled exceptions! That's something, right? |
Great work on this so far @sampsyo! Windows support is ever-nearing 🎉 😄. |
On my machine, we're down to one last test!!!!!!!!!!!!
It's a tricky one: it's a weird interaction with ImageMagick where my setup is saying "Invalid Parameter" for no reason I can discern.
|
can you run the command it runs manually with |
Yeah, and weirdly the command works fine. A little fiddling with that did narrow it down, though: for whatever reason, |
Hmm, have you tried setting |
Good call; |
Yeah it does. It seems that
This doesn't apply when using I'm not entirely sure what the implications are of this, maybe we need to use the absolute path to |
Yeah, an absolute path to In the mean time, though, I'm going to address the other problem here: that the check for ImageMagick "lies" and says everything is working fine even though |
I finally got a Windows VM up and running to try out our test suite there. The results were unsurprising:
We should get to the bottom of these so that we can confidently run the test suite on Windows before each release. Even better would be to add new tests for Windows-specific dangers like Unicode path handling and subprocess invocations.
Help from Windows natives would be enormously helpful here.
The text was updated successfully, but these errors were encountered: