-
Notifications
You must be signed in to change notification settings - Fork 15
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
How to mark test as busted? #65
Comments
For OptionU128 i believe you want |
That works, thanks! |
I don't understand the failure at https://github.com/rust-lang/rustc_codegen_cranelift/actions/runs/9857308482/job/27216123414 I already specified that all f16 and f128 tests should be ignored with + if test.test == "f16" || test.test == "f128" {
+ result.check = Random;
+ } |
Hmm yeah not sure what's happening there, it's like the process aborts or something -- you can use |
That seems to have skipped those tests, but now I'm getting effectively the same behavior on another test except there are no errors emitted by the C compiler: https://github.com/rust-lang/rustc_codegen_cranelift/actions/runs/9858813686/job/27221057461 And if you download the raw logs you will see more warnings than in the rendered view. |
EmptyEtruct is definitely another test that's expected to make compilers sad... The raw logs are interesting here;
What on earth is |
Assuming this is in fact a linux error code that would suggest it's SIGILL... |
Do you by any chance use catch_unwind somewhere inside abi-cafe? |
I do not, but we do a lot of tokio async and running FFI code in-process so there's a lot of places for weird panic boundaries. |
@bjorn3 it's possible the latest main is less prone to hard aborting? unfortunately I don't have a repro of this issue on my own systems. |
Ah cool I can reproduce this on my computer with:
|
Aha it's OptionU128 that illegals |
Specifically:
That is, both of these sigill:
|
Ok yes so! This runs the suite to completion with no aborts:
This sigills:
The only gap between these two is dlopening and running the resulting dylib, so I'm reasonably confident the compiled program is so UBful that it sigills for real. So for us to improve this specific situation we need #11, which is maybe overdue but also some really nontrivial work to make some kind of i/o protocol for the child to talk to the parent. |
NB: i recommend just marking this test as "skip" for now |
Thanks, that worked for Linux! On Windows it seems like I have a bunch of tests that fail with SIGILL too. https://github.com/rust-lang/rustc_codegen_cranelift/actions/runs/9921467869 |
Wow ok #11 was easier than I thought, I've got it locally and spitting out stuff like this |
New main should hopefully no longer have chaos aborts? |
Indeed, it now reports the test failures: https://github.com/rust-lang/rustc_codegen_cranelift/actions/runs/9922087277/job/27410745118 |
Almost there. It seems to hang on x86_64-pc-windows-gnu though: https://github.com/rust-lang/rustc_codegen_cranelift/actions/runs/9922164254/job/27410913291 |
pc-windows-gnu eh... I definitely don't run that in my CI and don't have that setup locally... hmm... |
Running out of steam for the day, I would suggest trying to EmptyStruct, EmptyStructInside, f16, f128 And hopefully that produces stable enough compiles to avoid the hangs? I'm considering adding process timeouts but honestly I don't even know if it's hanging in execution or compilation or... |
also FYI, last thing that requires you to actually vendor ABI-cafe instead of Goal is for the harness to be able to suggest the entries for you when your tests fail so you can just copy-paste exactly what happened and get CI green before investigating what went wrong. (Unfortunately won't fix the damn infinite hang...) |
I tried
but I'm getting results like
It somehow marks the test as fixed despite clearly showing several failed subtests and the test summary shows
The text was updated successfully, but these errors were encountered: