From 32dda6e11f43d3deebbccce67f31b3f59ab38397 Mon Sep 17 00:00:00 2001 From: "A. Molzer" <5550310+197g@users.noreply.github.com> Date: Wed, 14 Jan 2026 19:06:43 +0100 Subject: [PATCH] Add integration test for exif copy --- tests/metadata.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/metadata.rs diff --git a/tests/metadata.rs b/tests/metadata.rs new file mode 100644 index 0000000..842c14c --- /dev/null +++ b/tests/metadata.rs @@ -0,0 +1,37 @@ +use tiff::{ + decoder::Decoder, + encoder::{colortype::Gray8, EncodeMetadataOptions, TiffEncoder}, + tags::Tag, +}; + +#[test] +fn copies_exif_data() { + let src = std::path::PathBuf::from(concat!( + env!("CARGO_MANIFEST_DIR"), + "/tests/images/predictor-3-gray-f32.tif" + )); + + let src = std::fs::File::open(src).unwrap(); + let mut src = Decoder::new(src).unwrap(); + + let mut data = std::io::Cursor::new(vec![]); + { + let mut dst = TiffEncoder::new(&mut data).unwrap(); + let mut img = dst.new_image::(1, 1).unwrap(); + + let report = img + .write_metadata_copy_from(&mut src, EncodeMetadataOptions::default()) + .unwrap(); + + assert_eq!(report.copied, 8); + assert_eq!(report.filtered, 0, "There are no tags we do not recognize"); + img.write_data(&[0x80]).unwrap(); + } + + data.set_position(0); + + { + let mut roundtrip = Decoder::new(data).unwrap(); + assert!(roundtrip.find_tag(Tag::DateTime).unwrap().is_some()); + } +}