diff --git a/src/uu/lsmem/src/lsmem.rs b/src/uu/lsmem/src/lsmem.rs index f03d946..88ba98c 100644 --- a/src/uu/lsmem/src/lsmem.rs +++ b/src/uu/lsmem/src/lsmem.rs @@ -242,12 +242,6 @@ impl TableRow { self.range, self.size, self.state, self.removable, self.block ) } - fn to_raw_string(&self) -> String { - format!( - r#"{} {} {} {} {}"#, - self.range, self.size, self.state, self.removable, self.block - ) - } } #[derive(Serialize)] @@ -538,7 +532,7 @@ fn print_table(lsmem: &Lsmem, opts: &Options) { let table_rows = create_table_rows(lsmem, opts); let mut col_widths = vec![0; opts.columns.len()]; - // Initialize column widths based on column names + // Initialize column widths based on pre-defined width hints for (i, column) in opts.columns.iter().enumerate() { col_widths[i] = column.get_width_hint(); } @@ -611,19 +605,25 @@ fn print_pairs(lsmem: &Lsmem, opts: &Options) { } fn print_raw(lsmem: &Lsmem, opts: &Options) { + let table_rows = create_table_rows(lsmem, opts); + if !opts.noheadings { - println!("RANGE SIZE STATE REMOVABLE BLOCK"); + let headings = opts + .columns + .iter() + .map(|col| col.get_name().to_string()) + .collect::<Vec<String>>(); + println!("{}", headings.join(" ")); } - let table_rows = create_table_rows(lsmem, opts); - let mut table_raw_string = String::new(); for row in table_rows { - table_raw_string += &row.to_raw_string(); - table_raw_string += "\n"; + let columns = opts + .columns + .iter() + .map(|col| row.get_value(col).to_string()) + .collect::<Vec<String>>(); + println!("{}", columns.join(" ")); } - // remove the last newline - table_raw_string.pop(); - println!("{table_raw_string}"); } fn print_summary(lsmem: &Lsmem, opts: &Options) { diff --git a/tests/by-util/test_lsmem.rs b/tests/by-util/test_lsmem.rs index 16bc60a..0f78d74 100644 --- a/tests/by-util/test_lsmem.rs +++ b/tests/by-util/test_lsmem.rs @@ -31,14 +31,13 @@ fn test_columns_table() { sysroot_test_with_args("test_lsmem_columns_table.expected", &["-o", "block,size"]); } -// FAILS, COMMENT FOR NOW - TODO -// #[test] -// fn test_columns_raw() { -// sysroot_test_with_args( -// "test_lsmem_columns_raw.expected", -// &["-o", "block,size", "-r"], -// ); -// } +#[test] +fn test_columns_raw() { + sysroot_test_with_args( + "test_lsmem_columns_raw.expected", + &["-o", "block,size", "-r"], + ); +} // FAILS, COMMENT FOR NOW - TODO // #[test]