more tests

This commit is contained in:
nora 2022-12-20 21:14:16 +01:00
parent 75108c8553
commit 4f4afa627d
7 changed files with 69 additions and 24 deletions

View file

@ -15,6 +15,8 @@ mod expand;
use anyhow::{Context, Result};
use dylib_flag::RustFunction;
use processor::Minimizer;
use tracing::Level;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter, Registry};
use crate::processor::Processor;
@ -92,6 +94,21 @@ pub fn minimize(options: Options) -> Result<()> {
Ok(())
}
pub fn init_recommended_tracing_subscriber() {
let registry = Registry::default().with(
EnvFilter::builder()
.with_default_directive(Level::INFO.into())
.from_env()
.unwrap(),
);
let tree_layer = tracing_tree::HierarchicalLayer::new(2)
.with_targets(true)
.with_bracketed_fields(true);
registry.with(tree_layer).init();
}
impl Default for Options {
fn default() -> Self {
Self {

View file

@ -1,29 +1,12 @@
use anyhow::Result;
use cargo_minimize::{Cargo, Parser};
use tracing::{error, info, Level};
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter, Registry};
use tracing::error;
fn main() -> Result<()> {
fn main() {
let Cargo::Minimize(options) = Cargo::parse();
let registry = Registry::default().with(
EnvFilter::builder()
.with_default_directive(Level::INFO.into())
.from_env()
.unwrap(),
);
info!("Starting cargo-minimize");
let tree_layer = tracing_tree::HierarchicalLayer::new(2)
.with_targets(true)
.with_bracketed_fields(true);
registry.with(tree_layer).init();
cargo_minimize::init_recommended_tracing_subscriber();
if let Err(err) = cargo_minimize::minimize(options) {
error!("An error occured:\n{err}");
}
Ok(())
}

View file

@ -1,10 +1,11 @@
use anyhow::{Context, Result};
use std::{
fmt::Debug,
fs,
path::{Path, PathBuf},
};
#[derive(Debug, PartialEq, Eq, Clone, Hash)]
#[derive(PartialEq, Eq, Clone, Hash)]
pub(crate) struct SourceFile {
pub(crate) path: PathBuf,
}
@ -77,3 +78,9 @@ impl Changes {
self.any_change
}
}
impl Debug for SourceFile {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
<Path as Debug>::fmt(&self.path, f)
}
}

View file

@ -130,6 +130,7 @@ impl Minimizer {
}
}
#[instrument(skip(self, pass, invalidated_files, changes), fields(pass = %pass.name()), level = "debug")]
fn process_file<'file>(
&self,
pass: &mut dyn Processor,

View file

@ -32,6 +32,8 @@ impl Minimizer {
.get_diags()
.context("getting suggestions from rustc")?;
debug!(?diags, "Got diagnostics");
let mut suggestions_for_file = HashMap::<_, Vec<_>>::new();
for suggestion in &suggestions {
suggestions_for_file
@ -197,7 +199,8 @@ impl<'a> FindUnusedFunction<'a> {
"encountered multiline span in dead_code"
);
if Path::new(&span.file_name) != file.path {
// When the project directory is remapped, the path may be absolute or generally have some prefix.
if !file.path.ends_with(&span.file_name) {
return None;
}