blob: 61b35cf8c64fbd075f276a94760a558600b02f65 [file] [log] [blame]
//! Check that `rustc`'s `--crate-type` flag accepts `--crate-type=<valid_type>` as well as the
//! multi-value version `--crate-type=<valid_type_1>,<valid_type_2>`.
//!
//! This test does not try to check if the output artifacts are valid.
// Single valid crate types should pass
//@ revisions: lib rlib staticlib dylib cdylib bin proc_dash_macro
//@[lib] compile-flags: --crate-type=lib
//@[lib] check-pass
//@[rlib] compile-flags: --crate-type=rlib
//@[rlib] check-pass
//@[staticlib] compile-flags: --crate-type=staticlib
//@[staticlib] check-pass
//@[dylib] needs-crate-type: dylib
//@[dylib] compile-flags: --crate-type=dylib
//@[dylib] check-pass
//@[cdylib] needs-crate-type: cdylib
//@[cdylib] compile-flags: --crate-type=cdylib
//@[cdylib] check-pass
//@[bin] compile-flags: --crate-type=bin
//@[bin] check-pass
//@[proc_dash_macro] needs-crate-type: proc-macro
//@[proc_dash_macro] needs-unwind (panic=abort causes warning to be emitted)
//@[proc_dash_macro] compile-flags: --crate-type=proc-macro
//@[proc_dash_macro] check-pass
//@ revisions: multivalue multivalue_combined
//@[multivalue] compile-flags: --crate-type=lib,rlib,staticlib
//@[multivalue] check-pass
//@[multivalue_combined] compile-flags: --crate-type=lib,rlib --crate-type=staticlib
//@[multivalue_combined] check-pass
// `proc-macro` is accepted, but `proc_macro` is not.
//@ revisions: proc_underscore_macro
//@[proc_underscore_macro] compile-flags: --crate-type=proc_macro
// Empty `--crate-type` not accepted.
//@ revisions: empty_crate_type
//@[empty_crate_type] compile-flags: --crate-type=
// Random unknown crate type. Also check that we can handle non-ASCII.
//@ revisions: unknown
//@[unknown] compile-flags: --crate-type=🤡
fn main() {}
//[proc_underscore_macro]~? ERROR unknown crate type: `proc_macro`
//[empty_crate_type]~? ERROR unknown crate type: ``
//[unknown]~? ERROR unknown crate type: `🤡`