Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crates/cargo-wdk/src/actions/build/build_task.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ impl<'a> BuildTask<'a> {
/// * `BuildTaskError::CargoBuild` - If there is an error running the cargo
/// build command
pub fn run(&self) -> Result<(), BuildTaskError> {
info!("Running cargo build for package: {}", self.package_name);
info!("Running cargo build");
let mut args = vec!["build".to_string()];
args.push("-p".to_string());
args.push(self.package_name.to_string());
Expand Down
27 changes: 7 additions & 20 deletions crates/cargo-wdk/src/actions/build/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ impl<'a> BuildAction<'a> {
package_name: &str,
target_dir: &Path,
) -> Result<(), BuildActionError> {
info!("Processing package: {}", package_name);
info!("Processing build for package: {package_name}");
BuildTask::new(
package_name,
working_dir,
Expand All @@ -360,20 +360,13 @@ impl<'a> BuildAction<'a> {
debug!("Found wdk metadata in package: {}", package_name);
wdk_metadata
} else {
warn!(
"WDK metadata is not available. Skipping driver build workflow for package: {}",
package_name
);
warn!("Invalid WDK metadata. Skipping package task");
return Ok(());
};

// TODO: Do we need this check anymore?
// Identifying non driver packages
if package.metadata.get("wdk").is_none() {
warn!(
"No package.metadata.wdk section found. Skipping driver build workflow for \
package: {}",
package_name
);
info!("Packaging task skipped for non-driver package");
return Ok(());
}

Expand All @@ -382,10 +375,7 @@ impl<'a> BuildAction<'a> {
.iter()
.any(|t| t.kind.contains(&TargetKind::CDyLib))
{
warn!(
"No cdylib target found. Skipping driver build workflow for package: {}",
package_name
);
warn!("No cdylib target found. Skipping package task");
return Ok(());
}

Expand All @@ -394,10 +384,7 @@ impl<'a> BuildAction<'a> {
let target_arch = match self.target_arch {
TargetArch::Default(arch) | TargetArch::Selected(arch) => arch,
};
debug!(
"Target architecture for package: {} is: {}",
package_name, target_arch
);
debug!("Target architecture for package: {package_name} is: {target_arch}");
let mut target_dir = target_dir.to_path_buf();
if let TargetArch::Selected(arch) = self.target_arch {
target_dir = target_dir.join(to_target_triple(arch));
Expand Down Expand Up @@ -428,7 +415,7 @@ impl<'a> BuildAction<'a> {
)?
.run()?;

info!("Processing completed for package: {}", package_name);
info!("Processing completed");
Ok(())
}
}
27 changes: 13 additions & 14 deletions crates/cargo-wdk/tests/build_command_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,11 @@ fn mixed_package_kmdf_workspace_builds_successfully() {
with_file_lock(|| {
let stdout = run_build_cmd("tests/mixed-package-kmdf-workspace");

assert!(stdout.contains("Processing completed for package: driver"));
assert!(stdout.contains(
"No package.metadata.wdk section found. Skipping driver build workflow for package: \
non_driver_crate"
));

assert!(stdout.contains("Processing build for package: driver"));
assert!(stdout.contains("Processing build for package: non_driver_crate"));
assert!(stdout.contains("Processing completed"));
assert!(stdout.contains("Packaging task skipped for non-driver package"));
assert!(stdout.contains("Build completed successfully"));
verify_driver_package_files("tests/mixed-package-kmdf-workspace", "driver", "sys");
});
}
Expand Down Expand Up @@ -77,16 +76,14 @@ fn emulated_workspace_builds_successfully() {
let emulated_workspace_path = "tests/emulated-workspace";
let stdout = run_build_cmd(emulated_workspace_path);

assert!(stdout.contains("Processing build for package: driver_1"));
assert!(stdout.contains("Processing build for package: driver_2"));
// Matches warning about WDK metadata not being available for non driver project
// but a valid rust project
assert!(stdout.contains(
"WDK metadata is not available. Skipping driver build workflow for package: \
rust-project"
));
assert!(stdout.contains("Invalid WDK metadata. Skipping package task"));

assert!(stdout.contains("Processing completed for package: driver_1"));
assert!(stdout.contains("Processing completed for package: driver_2"));
assert!(stdout.contains(r"Build completed successfully"));
assert!(stdout.matches("Processing completed").count() == 2);
assert!(stdout.contains("Build completed successfully"));

let umdf_driver_workspace_path = format!("{emulated_workspace_path}/umdf-driver-workspace");
verify_driver_package_files(&umdf_driver_workspace_path, "driver_1", "dll");
Expand All @@ -100,7 +97,9 @@ fn build_driver_project(driver_type: &str) {

let stdout = run_build_cmd(&driver_path);

assert!(stdout.contains(&format!("Processing completed for package: {driver_name}")));
assert!(stdout.contains(&format!("Processing build for package: {driver_name}")));
assert!(stdout.contains("Processing completed"));
assert!(stdout.contains("Build completed successfully"));

let driver_binary_extension = match driver_type {
"kmdf" | "wdm" => "sys",
Expand Down
Loading