summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/display.rs67
-rw-r--r--cli/main.rs27
-rw-r--r--cli/tools/test.rs48
3 files changed, 83 insertions, 59 deletions
diff --git a/cli/display.rs b/cli/display.rs
new file mode 100644
index 000000000..bf7254306
--- /dev/null
+++ b/cli/display.rs
@@ -0,0 +1,67 @@
+// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
+
+/// A function that converts a float to a string the represents a human
+/// readable version of that number.
+pub fn human_size(size: f64) -> String {
+ let negative = if size.is_sign_positive() { "" } else { "-" };
+ let size = size.abs();
+ let units = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
+ if size < 1_f64 {
+ return format!("{}{}{}", negative, size, "B");
+ }
+ let delimiter = 1024_f64;
+ let exponent = std::cmp::min(
+ (size.ln() / delimiter.ln()).floor() as i32,
+ (units.len() - 1) as i32,
+ );
+ let pretty_bytes = format!("{:.2}", size / delimiter.powi(exponent))
+ .parse::<f64>()
+ .unwrap()
+ * 1_f64;
+ let unit = units[exponent as usize];
+ format!("{}{}{}", negative, pretty_bytes, unit)
+}
+
+/// A function that converts a milisecond elapsed time to a string that
+/// represents a human readable version of that time.
+pub fn human_elapsed(elapsed: u128) -> String {
+ if elapsed < 1_000 {
+ return format!("{}ms", elapsed);
+ }
+ if elapsed < 1_000 * 60 {
+ return format!("{}s", elapsed / 1000);
+ }
+
+ let seconds = elapsed / 1_000;
+ let minutes = seconds / 60;
+ let seconds_remainder = seconds % 60;
+ format!("{}m{}s", minutes, seconds_remainder)
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_human_size() {
+ assert_eq!(human_size(1_f64), "1B");
+ assert_eq!(human_size((12 * 1024) as f64), "12KB");
+ assert_eq!(human_size((24_i64 * 1024 * 1024) as f64), "24MB");
+ assert_eq!(human_size((24_i64 * 1024 * 1024 * 1024) as f64), "24GB");
+ assert_eq!(
+ human_size((24_i64 * 1024 * 1024 * 1024 * 1024) as f64),
+ "24TB"
+ );
+ }
+
+ #[test]
+ fn test_human_elapsed() {
+ assert_eq!(human_elapsed(1), "1ms");
+ assert_eq!(human_elapsed(256), "256ms");
+ assert_eq!(human_elapsed(1000), "1s");
+ assert_eq!(human_elapsed(1001), "1s");
+ assert_eq!(human_elapsed(1020), "1s");
+ assert_eq!(human_elapsed(70 * 1000), "1m10s");
+ assert_eq!(human_elapsed(86 * 1000 + 100), "1m26s");
+ }
+}
diff --git a/cli/main.rs b/cli/main.rs
index 1bbc839e8..8d0a7a2ba 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -10,6 +10,7 @@ mod deno_dir;
mod diagnostics;
mod diff;
mod disk_cache;
+mod display;
mod emit;
mod errors;
mod file_fetcher;
@@ -755,28 +756,6 @@ fn bundle_module_graph(
)
}
-/// A function that converts a float to a string the represents a human
-/// readable version of that number.
-fn human_size(size: f64) -> String {
- let negative = if size.is_sign_positive() { "" } else { "-" };
- let size = size.abs();
- let units = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
- if size < 1_f64 {
- return format!("{}{}{}", negative, size, "B");
- }
- let delimiter = 1024_f64;
- let exponent = std::cmp::min(
- (size.ln() / delimiter.ln()).floor() as i32,
- (units.len() - 1) as i32,
- );
- let pretty_bytes = format!("{:.2}", size / delimiter.powi(exponent))
- .parse::<f64>()
- .unwrap()
- * 1_f64;
- let unit = units[exponent as usize];
- format!("{}{}{}", negative, pretty_bytes, unit)
-}
-
async fn bundle_command(
flags: Flags,
bundle_flags: BundleFlags,
@@ -843,7 +822,7 @@ async fn bundle_command(
"{} {:?} ({})",
colors::green("Emit"),
out_file,
- colors::gray(human_size(output_len as f64))
+ colors::gray(display::human_size(output_len as f64))
);
if let Some(bundle_map) = maybe_bundle_map {
let map_bytes = bundle_map.as_bytes();
@@ -859,7 +838,7 @@ async fn bundle_command(
"{} {:?} ({})",
colors::green("Emit"),
map_out_file,
- colors::gray(human_size(map_len as f64))
+ colors::gray(display::human_size(map_len as f64))
);
}
} else {
diff --git a/cli/tools/test.rs b/cli/tools/test.rs
index b6e9e3d70..7e673fac4 100644
--- a/cli/tools/test.rs
+++ b/cli/tools/test.rs
@@ -5,6 +5,7 @@ use crate::cache::CacherLoader;
use crate::colors;
use crate::compat;
use crate::create_main_worker;
+use crate::display;
use crate::emit;
use crate::file_fetcher::File;
use crate::file_watcher;
@@ -269,7 +270,11 @@ impl PrettyTestReporter {
print!("{}", " ".repeat(description.level));
}
- println!("{} {}", status, colors::gray(human_elapsed(elapsed.into())));
+ println!(
+ "{} {}",
+ status,
+ colors::gray(format!("({})", display::human_elapsed(elapsed.into())))
+ );
if let Some(error_text) = result.error() {
for line in error_text.lines() {
@@ -279,22 +284,6 @@ impl PrettyTestReporter {
}
}
-/// A function that converts a milisecond elapsed time to a string that
-/// represents a human readable version of that time.
-fn human_elapsed(elapsed: u128) -> String {
- if elapsed < 1_000 {
- return format!("({}ms)", elapsed);
- }
- if elapsed < 1_000 * 60 {
- return format!("({}s)", elapsed / 1000);
- }
-
- let seconds = elapsed / 1_000;
- let minutes = seconds / 60;
- let seconds_remainder = seconds % 60;
- format!("({}m{}s)", minutes, seconds_remainder)
-}
-
impl TestReporter for PrettyTestReporter {
fn report_plan(&mut self, plan: &TestPlan) {
let inflection = if plan.total == 1 { "test" } else { "tests" };
@@ -355,7 +344,11 @@ impl TestReporter for PrettyTestReporter {
print!(" ");
}
- println!("{} {}", status, colors::gray(human_elapsed(elapsed.into())));
+ println!(
+ "{} {}",
+ status,
+ colors::gray(format!("({})", display::human_elapsed(elapsed.into())))
+ );
}
fn report_step_wait(&mut self, description: &TestStepDescription) {
@@ -432,7 +425,8 @@ impl TestReporter for PrettyTestReporter {
get_steps_text(summary.ignored_steps),
summary.measured,
summary.filtered_out,
- colors::gray(human_elapsed(elapsed.as_millis())),
+ colors::gray(
+ format!("({})", display::human_elapsed(elapsed.as_millis()))),
);
}
}
@@ -1303,19 +1297,3 @@ pub async fn run_tests_with_watch(
Ok(())
}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn test_human_elapsed() {
- assert_eq!(human_elapsed(1), "(1ms)");
- assert_eq!(human_elapsed(256), "(256ms)");
- assert_eq!(human_elapsed(1000), "(1s)");
- assert_eq!(human_elapsed(1001), "(1s)");
- assert_eq!(human_elapsed(1020), "(1s)");
- assert_eq!(human_elapsed(70 * 1000), "(1m10s)");
- assert_eq!(human_elapsed(86 * 1000 + 100), "(1m26s)");
- }
-}