-
Notifications
You must be signed in to change notification settings - Fork 249
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
[CI] Fix regression tests #1140
Conversation
…e number changes in cpp2util.h
I am curious, is there something we could do to avoid these repeating PRs? My only guess is that it's only possible if Herb decides to do every change through a PR (and thus run the CI before merging), which might not sound amusing to him 😅 |
Interesting... so if I did all my commits as PRs, that would update the regression tests CI? (I appreciate the help with the CI but don't myself grok its inner workings.) |
CI runs all the available compilers and creates git patches that you can download and apply locally, you can apply those changes in that same unmerged PR and avoid "breaking" the main branch. Another option I thought of, is to account for your current workflow and create a bot that automatically opens these kind of PRs after commits have been pushed to main. This would have less friction for you, and also don't have users wasting valuable time updating tests every time. But of course we would actually need to write and deploy that bot. |
That sounds promising, and would give a way to review the impact, albeit post-commit. A third option would be to check in only the tests that I run myself (including that I run them on others' PRs before merging): Those are currently MSVC latest, GCC 10 and 14, and Clang 12, and for completeness I could add Clang 18. That would cover the lowest-supported and pretty-most-recent versions of GCC and Clang. The major thing missing is it would not cover Apple Clang, which was the original motivation to check in additional builds I wasn't doing myself (because it requires a Mac, and I'm not currently set up for that)... but if I always did { MSVC, GCC 10, GCC latest, Clang 12, and Clang latest }, and in addition we only had Apple Clang latest test results supplied some other way, that would still reduce the number of files and keep all but one of the regression tests accurate. WDYT? |
Personally I don't have strong feelings one way or another, and I think this is more of a question for @bluetarpmedia and co., to me it just feels kind of bad seeing them open a PR to update tests after every change. #1137 should help with that, since only "compiler negative cases" (that is, cases that should fail to compile on the C++ compiler) would need to be updated. |
I've been thinking about a couple things but hadn't put them down in writing yet so this is a good opportunity: First, I've been wondering if we should drop some of the compiler configurations for the regression tests, firstly to simplify the amount of files but secondly because I'm not sure we're getting much value from some of them. Here's what I'm thinking:
So after the change there'd be:
I think that's close to what Herb suggested above, except I think it's also valuable to test the min supported MSVC in C++20 mode and not only the C++latest? The other thing that's been on my mind is regarding the What do you think about stripping out the line & column numbers from the compiler output before running the So lines like this:
would be edited to:
and then run the |
I guess in principle is not that bad of an idea: Just test the minimally supported compiler set and hope implementers didn't change anything or introduce a regression. My problem with this is that the amount of of files is not really about the target count, but about our current regression test implementation. For the 2nd, I am not too sure... Its reasonable to think that if you change the file and now it errors out in a different place, that you'd need to refresh the regression tests, to me the problem isn't the conflict, is that its maybe too cumbersome to update them at the moment. |
…e number changes in cpp2util.h (hsutter#1140)
Since this wasn't answered directly: No, it would just tell you that the tests failed in the PR branch instead of in |
Update a couple of test-results caused by line number changes in cpp2util.h