From 36b88f268dd868d433c96ac834191a72428036a5 Mon Sep 17 00:00:00 2001 From: Wim Hueskes Date: Sun, 24 Jul 2016 21:51:21 +0200 Subject: [PATCH] od: enable hexadecimal output --- src/od/od.rs | 4 ++++ tests/test_od.rs | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/od/od.rs b/src/od/od.rs index 707b75ee1..8600f6e31 100644 --- a/src/od/od.rs +++ b/src/od/od.rs @@ -66,9 +66,13 @@ pub fn uumain(args: Vec) -> i32 { opts.optflag("I", "", "decimal 2-byte units"); opts.optflag("L", "", "decimal 2-byte units"); opts.optflag("i", "", "decimal 2-byte units"); + opts.optflag("x", "", "hexadecimal 2-byte units"); + opts.optflag("h", "", "hexadecimal 2-byte units"); opts.optflag("O", "", "octal 4-byte units"); opts.optflag("s", "", "decimal 4-byte units"); + opts.optflag("X", "", "hexadecimal 4-byte units"); + opts.optflag("H", "", "hexadecimal 4-byte units"); opts.optflag("e", "", "floating point double precision (64-bit) units"); opts.optflag("f", "", "floating point single precision (32-bit) units"); diff --git a/tests/test_od.rs b/tests/test_od.rs index 98d399826..651e85c65 100644 --- a/tests/test_od.rs +++ b/tests/test_od.rs @@ -166,6 +166,38 @@ fn test_dec() { } +#[test] +fn test_hex16(){ + + let input : [u8; 9] = [ + 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0xff]; + let expected_output = unindent(" + 0000000 2301 6745 ab89 efcd 00ff + 0000011 + "); + let result = new_ucmd!().arg("-x").run_piped_stdin(&input[..]); + + assert_empty_stderr!(result); + assert!(result.success); + assert_eq!(result.stdout, expected_output); +} + +#[test] +fn test_hex32(){ + + let input : [u8; 9] = [ + 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0xff]; + let expected_output = unindent(" + 0000000 67452301 efcdab89 000000ff + 0000011 + "); + let result = new_ucmd!().arg("-X").run_piped_stdin(&input[..]); + + assert_empty_stderr!(result); + assert!(result.success); + assert_eq!(result.stdout, expected_output); +} + #[test] fn test_f32(){