From: Manish Goregaokar Date: Sat, 25 Jun 2016 05:40:38 +0000 (+0530) Subject: Add tests for printing of NonZero-optimized enums in Rust X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fccb08f8cd2035b50a2b0a5e09983180b7411685;p=binutils-gdb.git Add tests for printing of NonZero-optimized enums in Rust gdb/testsuite/ChangeLog: 2016-06-25 Manish Goregaokar PR gdb/20239 * gdb.rust/simple.rs: Add more tests for printing NonZero enums. * gdb.rust/simple.exp: Add test expectations for new NonZero tests. --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 86799654eea..0db0fc2d1fe 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2016-06-25 Manish Goregaokar + + PR gdb/20239 + * gdb.rust/simple.rs: Add more tests for printing NonZero enums. + * gdb.rust/simple.exp: Add test expectations for new NonZero tests. + 2016-06-24 David Taylor * gdb.base/offsets.exp: New file. diff --git a/gdb/testsuite/gdb.rust/simple.exp b/gdb/testsuite/gdb.rust/simple.exp index a4a21904426..88f1c89a748 100644 --- a/gdb/testsuite/gdb.rust/simple.exp +++ b/gdb/testsuite/gdb.rust/simple.exp @@ -169,6 +169,17 @@ gdb_test "print ..5" " = .*::ops::RangeTo.* \\{end: 5\\}" gdb_test "print 5.." " = .*::ops::RangeFrom.* \\{start: 5\\}" gdb_test "print .." " = .*::ops::RangeFull" +gdb_test "print str_some" \ + " = core::option::Option::Some\\(collections::string::String .*" +gdb_test "print str_none" " = core::option::Option::None" +gdb_test "print int_some" " = core::option::Option::Some\\(1\\)" +gdb_test "print int_none" " = core::option::Option::None" +gdb_test "print box_some" " = core::option::Option>::Some\\(.*\\)" +gdb_test "print box_none" " = core::option::Option>::None" +gdb_test "print custom_some" \ + " = simple::NonZeroOptimized::Value\\(collections::string::String .*" +gdb_test "print custom_none" " = simple::NonZeroOptimized::Empty" + proc test_one_slice {svar length base range} { global hex diff --git a/gdb/testsuite/gdb.rust/simple.rs b/gdb/testsuite/gdb.rust/simple.rs index 6d6395a8c33..32da5807b7f 100644 --- a/gdb/testsuite/gdb.rust/simple.rs +++ b/gdb/testsuite/gdb.rust/simple.rs @@ -38,6 +38,12 @@ enum MoreComplicated { Four{this: bool, is: u8, a: char, struct_: u64, variant: u32}, } +// tests the nonzero optimization, but fields are reversed +enum NonZeroOptimized { + Empty, + Value(String), +} + fn diff2(x: i32, y: i32) -> i32 { x - y } @@ -92,6 +98,17 @@ fn main () { let to1 = &w[..3]; let to2 = &slice[..1]; + // tests for enum optimizations + + let str_some = Some("hi".to_string()); + let str_none = None::; + let box_some = Some(Box::new(1u8)); + let box_none = None::>; + let int_some = Some(1u8); + let int_none = None::; + let custom_some = NonZeroOptimized::Value("hi".into()); + let custom_none = NonZeroOptimized::Empty; + println!("{}, {}", x.0, x.1); // set breakpoint here println!("{}", diff2(92, 45)); }