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.
This commit is contained in:
parent
b5a4b3c5e7
commit
fccb08f8cd
3 changed files with 34 additions and 0 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue