in src/compiler/msvc.rs [1723:1780]
fn test_parse_arguments_clang_passthrough() {
let args = ovec![
"-Fohost_dictionary.obj",
"-c",
"-Xclang",
"-MP",
"-Xclang",
"-dependency-file",
"-Xclang",
".deps/host_dictionary.obj.pp",
"-Xclang",
"-MT",
"-Xclang",
"host_dictionary.obj",
"-clang:-fprofile-generate",
"-clang:-fprofile-use=xyz.profdata",
"dictionary.c"
];
let ParsedArguments {
dependency_args,
preprocessor_args,
common_args,
profile_generate,
extra_hash_files,
..
} = match parse_arguments(args) {
CompilerArguments::Ok(args) => args,
o => panic!("Got unexpected parse result: {:?}", o),
};
assert!(profile_generate);
assert!(preprocessor_args.is_empty());
assert_eq!(
dependency_args,
ovec!(
"-Xclang",
"-MP",
"-Xclang",
"-dependency-file",
"-Xclang",
".deps/host_dictionary.obj.pp",
"-Xclang",
"-MT",
"-Xclang",
"host_dictionary.obj"
)
);
assert_eq!(
common_args,
ovec!(
"-clang:-fprofile-generate",
"-clang:-fprofile-use=xyz.profdata"
)
);
assert_eq!(
extra_hash_files,
ovec!(std::env::current_dir().unwrap().join("xyz.profdata"))
);
}