Skip to content

Commit

Permalink
Add test for depfile flags for MSVC
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexei-Barnes authored and sylvestre committed Apr 24, 2023
1 parent ee5f3e8 commit 39632a7
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions src/compiler/msvc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1325,6 +1325,8 @@ impl<'a> Iterator for SplitMsvcResponseFileArgs<'a> {

#[cfg(test)]
mod test {
use std::str::FromStr;

use super::*;
use crate::compiler::*;
use crate::mock_command::*;
Expand Down Expand Up @@ -1489,6 +1491,53 @@ mod test {
assert!(!msvc_show_includes);
}

#[test]
fn parse_deps_arguments() {
let arg_sets = vec![
ovec!["-c", "foo.c", "/Fofoo.obj", "/depsfoo.obj.pp"],
ovec!["-c", "foo.c", "/Fofoo.obj", "/sourceDependenciesfoo.obj.pp"],
ovec![
"-c",
"foo.c",
"/Fofoo.obj",
"/sourceDependencies",
"foo.obj.pp"
],
];

for args in arg_sets {
let ParsedArguments {
input,
language,
outputs,
preprocessor_args,
msvc_show_includes,
common_args,
depfile,
..
} = match parse_arguments(args) {
CompilerArguments::Ok(args) => args,
o => panic!("Got unexpected parse result: {:?}", o),
};
assert_eq!(Some("foo.c"), input.to_str());
assert_eq!(Language::C, language);
assert_eq!(Some(PathBuf::from_str("foo.obj.pp").unwrap()), depfile);
assert_map_contains!(
outputs,
(
"obj",
ArtifactDescriptor {
path: PathBuf::from("foo.obj"),
optional: false
}
)
);
assert!(preprocessor_args.is_empty());
assert!(common_args.is_empty());
assert!(!msvc_show_includes);
}
}

#[test]
fn test_parse_arguments_clang_passthrough() {
let args = ovec![
Expand Down

0 comments on commit 39632a7

Please sign in to comment.