diff options
Diffstat (limited to 'vendor/object/tests/round_trip/coff.rs')
-rw-r--r-- | vendor/object/tests/round_trip/coff.rs | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/vendor/object/tests/round_trip/coff.rs b/vendor/object/tests/round_trip/coff.rs deleted file mode 100644 index 6785dc3..0000000 --- a/vendor/object/tests/round_trip/coff.rs +++ /dev/null @@ -1,56 +0,0 @@ -use object::read::{Object, ObjectSection}; -use object::{read, write}; -use object::{ - Architecture, BinaryFormat, Endianness, RelocationEncoding, RelocationKind, SymbolFlags, - SymbolKind, SymbolScope, -}; - -#[test] -fn reloc_overflow() { - let mut object = - write::Object::new(BinaryFormat::Coff, Architecture::X86_64, Endianness::Little); - let text = object.section_id(write::StandardSection::Text); - object.append_section_data(text, &[0; 4], 4); - let symbol = object.add_symbol(write::Symbol { - name: b"f".to_vec(), - value: 0, - size: 4, - kind: SymbolKind::Text, - scope: SymbolScope::Linkage, - weak: false, - section: write::SymbolSection::Section(text), - flags: SymbolFlags::None, - }); - for i in 0..0x10000 { - object - .add_relocation( - text, - write::Relocation { - offset: i, - size: 64, - kind: RelocationKind::Absolute, - encoding: RelocationEncoding::Generic, - symbol, - addend: 0, - }, - ) - .unwrap(); - } - let bytes = object.write().unwrap(); - - //std::fs::write(&"reloc_overflow.o", &bytes).unwrap(); - - let object = read::File::parse(&*bytes).unwrap(); - assert_eq!(object.format(), BinaryFormat::Coff); - assert_eq!(object.architecture(), Architecture::X86_64); - - let section = object.sections().next().unwrap(); - assert_eq!(section.name(), Ok(".text")); - - let mut i = 0; - for (offset, _relocation) in section.relocations() { - assert_eq!(offset, i); - i += 1; - } - assert_eq!(i, 0x10000); -} |