Check-stage1


#1

It seems to me that check-stage1 is broken. Maybe snapshot is bad? Or is it just me?

$ make check-stage1-cfail
run cfail [x86_64-unknown-linux-gnu]: x86_64-unknown-linux-gnu/stage1/bin/compiletest

running 1833 tests
fatal runtime error: Could not unwind stack, error = 5
Illegal instruction

#2

I think it has been like that for a long time now (bors also doesn’t run the tests on stage1)


#3

Stage1 is built with -Z no-landing-pads these days, so anything that requires unwinding (like compiletest) isn’t going to work.


#4

That’s concerning, if we can’t panic, tests are nearly useless for development. Saw this on stage0 earlier today.


#5

See https://github.com/rust-lang/rust/pull/27417 .


#6

@eefriedman Do you mean that even when “fixed”, we can’t run the testsuite in stage0 or stage1 and see test failures?


#7

@bluss The current version of PR27417 forces testing to always use a stage2 compiletest binary, if that’s what you’re asking.


#8

I don’t think that fixes it?

Scenario:

  • I bugfix something in libcollections
  • I run make check-stage0-collectionstest or make check-stage1-collectionstest
  • Test fails, because I produced a new bug
  • Can I use the panic message in the test to quickly understand why it failed?

If the test failure can’t produce the assertion error message, then tests are suddenly useless for development, unless I build all the way up to stage2.


#9

Oh, you’re right, make check-stage0-collectionstest won’t work because it directly uses the broken stage0 libtest.

make check-stage1-collectionstest should be fine, though.


#10

Ok stage1 working, that’s nice, but stage0 would be the best.