Add one or more Go projects to the integration tests suite
So we can detect changes in the linter output in a little more reliable way.
Per-checker tests can miss some corner cases handling that may be present in the code we could vendor for testing.
Probably this can be done as a yet another makefile step :D
- Download/checkout list of repos.
- Run
go-criticover them.
I'm sceptical about adding such test on CI. Even if it's happening in parallel.
I'm sceptical about adding such test on CI. Even if it's happening in parallel.
Why? NoVerify has ~8 vendored projects and it helps a lot to detect the unwanted changes in the linter.
Meh, I'm scared that this will make CI slower. Even if it's parallel. My assumptions are based on: fetch repos (few minutes), build critic, run it. And due to CI machines in the cloud it might hang up. So running them locally (there is no so many contributors anyway) might be a better start.
And also, it can be a test that is ignored unless tested manually via makefile.
But you don't need to fetch them. I'm proposing to store a local copy in testdata. These copies will ~never be updated, that's the point. We create a baseline of warnings and check that the same code is verified in the same way as before. No versioning needed.
Growing testdata isn't much better imo. Why do we need to throw additional KBs of code for tests? + updates + fetch time (see CI). This will be even more heavier solution :(
Good thing to start https://github.com/mvdan/corpus/
AFAIR it's done via https://github.com/go-critic/extern-testdata Closing?