1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
//! 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.
// FIXME(#132309): add a proper `supports-crate-type` directive.
// 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] ignore-musl (dylibs are not supported)
//@[dylib] ignore-wasm (dylibs are not supported)
//@[dylib] compile-flags: --crate-type=dylib
//@[dylib] check-pass
//@[cdylib] ignore-musl (cdylibs are not supported)
//@[cdylib] compile-flags: --crate-type=cdylib
//@[cdylib] check-pass
//@[bin] compile-flags: --crate-type=bin
//@[bin] check-pass
//@[proc_dash_macro] ignore-wasm (proc-macro is not supported)
//@[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] ignore-musl (dylibs are not supported)
//@[multivalue_combined] ignore-wasm (dylibs are not supported)
//@[multivalue_combined] compile-flags: --crate-type=lib,rlib,staticlib --crate-type=dylib
//@[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
//@[proc_underscore_macro] error-pattern: "unknown crate type: `proc_macro`"
// Empty `--crate-type` not accepted.
//@ revisions: empty_crate_type
//@[empty_crate_type] compile-flags: --crate-type=
//@[empty_crate_type] error-pattern: "unknown crate type: ``"
// Random unknown crate type. Also check that we can handle non-ASCII.
//@ revisions: unknown
//@[unknown] compile-flags: --crate-type=🤡
//@[unknown] error-pattern: "unknown crate type: `🤡`"
fn main() {}
|