quicksilver / Quicksilver

Quicksilver Project Source
http://qsapp.com
Apache License 2.0
2.74k stars 286 forks source link

Run all tests #2979

Closed n8henrie closed 1 year ago

n8henrie commented 1 year ago

Fixes https://github.com/quicksilver/Quicksilver/issues/2971

This PR includes a number of changes mostly to the tests, CI, and build toolchain.

It does add a few ifdef TESTING to avoid things like the accessibility checker on CI, which otherwise blocks forever and then fails.

It add a new plist file QSCorePlugIn-Info-Testing.plist to try to avoid indexing "sensitive" directories like ~/Desktop and ~/Documents on startup, which also result in popups that can block further execution.

In several places the default build interface was supposed(?) to be Bezel but was set to Primer; this changes it to Bezel.

It changes several build steps to allow automatic dependency resolution to work, specifically by removing dependencies like the Bezel interface from the Quicksilver target (that I think I put there in the first place) and putting them under Quicksilver Tests. (They are still under Quicksilver Distribution, so I don't think this should change peoples dev workflow.) It also enables parallel testing, which in addition to parallel builds really speeds up the build process on my machine, and configures the testing order to be randomized, to hopefully avoid issues with race conditions between tests that just happen to work in our favor when build alphabetically.

There are a lot of commits, several of which could be dropped (later reverted), but as I went through rebasing and squashing I decided it would be best to leave them separate to enable bisecting in the future if any of them end up being problematic (as opposed to squashing them together and trying to tease the changes apart later).

Finally, this adds a nice little build status badge to the readme and removes a few whitespace errors.

n8henrie commented 1 year ago

@pjrobertson @skurfer I'd like to merge this soon, if you get a chance to take a look, so I can move on to several of the Sonoma bugs, while hopefully ensuring that the fixes aren't unintentionally resulting in backwards incompatible changes.

n8henrie commented 1 year ago

Merging this in to avoid rebase hell.