diff options
author | Manish Goregaokar <manish@mozilla.com> | 2016-06-25 11:10:38 +0530 |
---|---|---|
committer | Manish Goregaokar <manish@mozilla.com> | 2016-06-25 11:26:59 +0530 |
commit | fccb08f8cd2035b50a2b0a5e09983180b7411685 (patch) | |
tree | 6d68e0a2118871df9a404501243988e9166b1c34 /gdb/testsuite | |
parent | b5a4b3c5e711be9096423f9765623eda449d8f4d (diff) | |
download | gdb-fccb08f8cd2035b50a2b0a5e09983180b7411685.zip gdb-fccb08f8cd2035b50a2b0a5e09983180b7411685.tar.gz gdb-fccb08f8cd2035b50a2b0a5e09983180b7411685.tar.bz2 |
Add tests for printing of NonZero-optimized enums in Rust
gdb/testsuite/ChangeLog:
2016-06-25 Manish Goregaokar <manish@mozilla.com>
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.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.rust/simple.exp | 11 | ||||
-rw-r--r-- | gdb/testsuite/gdb.rust/simple.rs | 17 |
3 files changed, 34 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 8679965..0db0fc2 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2016-06-25 Manish Goregaokar <manish@mozilla.com> + + 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 <dtaylor@emc.com> * gdb.base/offsets.exp: New file. diff --git a/gdb/testsuite/gdb.rust/simple.exp b/gdb/testsuite/gdb.rust/simple.exp index a4a2190..88f1c89 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<collections::string::String>::Some\\(collections::string::String .*" +gdb_test "print str_none" " = core::option::Option<collections::string::String>::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<Box<u8>>::Some\\(.*\\)" +gdb_test "print box_none" " = core::option::Option<Box<u8>>::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 6d6395a..32da580 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::<String>; + let box_some = Some(Box::new(1u8)); + let box_none = None::<Box<u8>>; + let int_some = Some(1u8); + let int_none = None::<u8>; + let custom_some = NonZeroOptimized::Value("hi".into()); + let custom_none = NonZeroOptimized::Empty; + println!("{}, {}", x.0, x.1); // set breakpoint here println!("{}", diff2(92, 45)); } |