From 5d210b25ffce3832588df26cc0190c0241c3b299 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Tue, 4 Jun 2019 11:07:10 +0100 Subject: [PATCH] Add second test case to binaryenopt --- libchisel/src/binaryenopt.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/libchisel/src/binaryenopt.rs b/libchisel/src/binaryenopt.rs index 5ebb36a..d1f0333 100644 --- a/libchisel/src/binaryenopt.rs +++ b/libchisel/src/binaryenopt.rs @@ -116,6 +116,7 @@ fn binaryen_optimiser( #[cfg(test)] mod tests { use super::*; + use rustc_hex::FromHex; #[test] fn smoke_test_o0() { @@ -137,4 +138,26 @@ mod tests { let serialized = result.to_bytes().unwrap(); assert_eq!(expected, serialized); } + + #[test] + fn test_keep_names_section() { + let input = FromHex::from_hex( + "0061736d010000000104016000000303020000070801046d61696e00010a +0a020300010b040010000b0014046e616d65010d0200047465737401046d +61696e", + ) + .unwrap(); + let module = Module::from_bytes(&input) + .unwrap() + .parse_names() + .expect("parsing the names section failed"); + assert_eq!(module.has_names_section(), true); + + let translator = BinaryenOptimiser::with_preset("O0").unwrap(); + let result = translator.translate(&module).unwrap().unwrap(); + assert_eq!(result.has_names_section(), true); + + let output = result.to_bytes().unwrap(); + assert_eq!(input, output); + } }