@@ -74,6 +74,10 @@ pub fn coredump_with_classes_3_3_0() -> CoreDump {
7474 load_coredump ( "ruby-coredump-with-classes-3.3.0.gz" ) . unwrap ( )
7575}
7676
77+ pub fn coredump_complex_3_4_5 ( ) -> CoreDump {
78+ load_coredump ( "ruby-coredump-complex-3.4.5.gz" ) . unwrap ( )
79+ }
80+
7781/// Allows testing offline with a core dump of a Ruby process.
7882pub struct CoreDump {
7983 raw_memory : Vec < u8 > ,
@@ -199,10 +203,13 @@ mod tests {
199203 ) ;
200204
201205 let coredump = load_coredump ( "ruby-coredump-3.3.0.gz" ) . unwrap ( ) ;
202- assert_eq ! ( coredump. elf_section_headers. len( ) , 122 ) ;
206+ assert_eq ! ( coredump. elf_section_headers. len( ) , 151 ) ;
203207 let buf = & mut [ 0u8 ; 16 ] ;
204- coredump. read ( 0x7f7ff21f1868 , buf) . expect ( "read failed" ) ;
205- assert_eq ! ( buf, & [ 16 , 3 , 62 , 88 , 13 , 86 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ) ;
208+ coredump. read ( 0x7f43435f4988 , buf) . expect ( "read failed" ) ;
209+ assert_eq ! (
210+ buf,
211+ & [ 16 , 51 , 89 , 134 , 131 , 85 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
212+ ) ;
206213
207214 let coredump = load_coredump ( "ruby-coredump-with-classes-3.3.0.gz" ) . unwrap ( ) ;
208215 assert_eq ! ( coredump. elf_section_headers. len( ) , 124 ) ;
@@ -212,5 +219,14 @@ mod tests {
212219 buf,
213220 & [ 16 , 115 , 177 , 241 , 196 , 85 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
214221 ) ;
222+
223+ let coredump = load_coredump ( "ruby-coredump-complex-3.4.5.gz" ) . unwrap ( ) ;
224+ assert_eq ! ( coredump. elf_section_headers. len( ) , 152 ) ;
225+ let buf = & mut [ 0u8 ; 16 ] ;
226+ coredump. read ( 0x7f271feb5390 , buf) . expect ( "read failed" ) ;
227+ assert_eq ! (
228+ buf,
229+ & [ 16 , 19 , 104 , 91 , 119 , 85 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
230+ ) ;
215231 }
216232}
0 commit comments