테스트 관련 기타 정보
RUSTC_BOOTSTRAP와 안정성
이것은 부트스트랩/컴파일러 구현 세부 사항이지만, 테스트에도 유용하게 쓰일 수 있습니다:
RUSTC_BOOTSTRAP=1은 “편법“을 써서 일반적인 안정성 검사를 우회하므로, 안정 버전rustc에서도 불안정 기능과 CLI 플래그를 사용할 수 있습니다.RUSTC_BOOTSTRAP=-1을 설정하면 해당rustc가 실제로는 nightlyrustc이더라도 안정 버전 컴파일러인 것처럼 동작하도록 강제합니다. 컴파일러가 nightly인지 아닌지에 따라 컴파일러의 일부 동작(예: 진단)이 달라질 수 있으므로 이 기능은 유용합니다.
ui 테스트와 //@ rustc-env를 지원하는 다른 테스트 스위트에서는 다음과 같이 지정할 수 있습니다
// Force unstable features to be usable on stable rustc
//@ rustc-env:RUSTC_BOOTSTRAP=1
// Or force nightly rustc to pretend it is a stable rustc
//@ rustc-env:RUSTC_BOOTSTRAP=-1
run-make/run-make-cargo 테스트에서는 //@ rustc-env가 지원되지 않습니다. 개별 rustc 호출에는 다음과 같은 방식을 사용할 수 있습니다.
use run_make_support::rustc;
fn main() {
rustc()
// Pretend that I am very stable
.env("RUSTC_BOOTSTRAP", "-1")
//...
.run();
}