summaryrefslogtreecommitdiffstats
path: root/tests/debuginfo/gdb-pretty-struct-and-enums.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/debuginfo/gdb-pretty-struct-and-enums.rs')
-rw-r--r--tests/debuginfo/gdb-pretty-struct-and-enums.rs62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/debuginfo/gdb-pretty-struct-and-enums.rs b/tests/debuginfo/gdb-pretty-struct-and-enums.rs
new file mode 100644
index 000000000..3314f0a4e
--- /dev/null
+++ b/tests/debuginfo/gdb-pretty-struct-and-enums.rs
@@ -0,0 +1,62 @@
+// ignore-lldb
+// ignore-android: FIXME(#10381)
+// min-gdb-version: 8.1
+
+// compile-flags:-g
+
+// gdb-command: run
+
+// gdb-command: print regular_struct
+// gdbg-check:$1 = {the_first_field = 101, the_second_field = 102.5, the_third_field = false}
+// gdbr-check:$1 = gdb_pretty_struct_and_enums::RegularStruct {the_first_field: 101, the_second_field: 102.5, the_third_field: false}
+
+// gdb-command: print empty_struct
+// gdbg-check:$2 = EmptyStruct
+// gdbr-check:$2 = gdb_pretty_struct_and_enums::EmptyStruct
+
+// gdb-command: print c_style_enum1
+// gdbg-check:$3 = CStyleEnumVar1
+// gdbr-check:$3 = gdb_pretty_struct_and_enums::CStyleEnum::CStyleEnumVar1
+
+// gdb-command: print c_style_enum2
+// gdbg-check:$4 = CStyleEnumVar2
+// gdbr-check:$4 = gdb_pretty_struct_and_enums::CStyleEnum::CStyleEnumVar2
+
+// gdb-command: print c_style_enum3
+// gdbg-check:$5 = CStyleEnumVar3
+// gdbr-check:$5 = gdb_pretty_struct_and_enums::CStyleEnum::CStyleEnumVar3
+
+#![allow(dead_code, unused_variables)]
+
+struct RegularStruct {
+ the_first_field: isize,
+ the_second_field: f64,
+ the_third_field: bool,
+}
+
+struct EmptyStruct;
+
+enum CStyleEnum {
+ CStyleEnumVar1,
+ CStyleEnumVar2,
+ CStyleEnumVar3,
+}
+
+fn main() {
+
+ let regular_struct = RegularStruct {
+ the_first_field: 101,
+ the_second_field: 102.5,
+ the_third_field: false
+ };
+
+ let empty_struct = EmptyStruct;
+
+ let c_style_enum1 = CStyleEnum::CStyleEnumVar1;
+ let c_style_enum2 = CStyleEnum::CStyleEnumVar2;
+ let c_style_enum3 = CStyleEnum::CStyleEnumVar3;
+
+ zzz(); // #break
+}
+
+fn zzz() { () }