Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libavif for openSUSE:Factory checked 
in at 2022-11-15 13:18:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libavif (Old)
 and      /work/SRC/openSUSE:Factory/.libavif.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libavif"

Tue Nov 15 13:18:23 2022 rev:19 rq:1035657 version:0.11.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libavif/libavif.changes  2022-11-01 
13:40:25.763213393 +0100
+++ /work/SRC/openSUSE:Factory/.libavif.new.1597/libavif.changes        
2022-11-15 13:21:08.948715168 +0100
@@ -1,0 +2,10 @@
+Mon Nov 14 11:41:20 UTC 2022 - ecsos <ec...@opensuse.org>
+
+- Update to version 0.11.1:
+  * Changed:
+    - avifincrtest_helpers: Cast 64-bit offset to size_t
+    - avifmetadatatest: don't include avif/internal.h
+    - avifrgbtoyuvtest: skip if no libsharpyuv
+    - Disable tests that may fail if the codec is not aom (#1176)
+
+-------------------------------------------------------------------

Old:
----
  libavif-0.11.0.tar.gz

New:
----
  libavif-0.11.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libavif.spec ++++++
--- /var/tmp/diff_new_pack.wvx8gl/_old  2022-11-15 13:21:09.360717295 +0100
+++ /var/tmp/diff_new_pack.wvx8gl/_new  2022-11-15 13:21:09.364717316 +0100
@@ -29,7 +29,7 @@
 %global lib_name libavif%{lib_soversion}
 
 Name:           libavif
-Version:        0.11.0
+Version:        0.11.1
 Release:        0
 Summary:        Library for encoding and decoding .avif files
 License:        BSD-2-Clause

++++++ libavif-0.11.0.tar.gz -> libavif-0.11.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/CHANGELOG.md 
new/libavif-0.11.1/CHANGELOG.md
--- old/libavif-0.11.0/CHANGELOG.md     2022-10-12 23:58:15.000000000 +0200
+++ new/libavif-0.11.1/CHANGELOG.md     2022-10-19 23:32:35.000000000 +0200
@@ -6,6 +6,14 @@
 
 ## [Unreleased]
 
+## [0.11.1] - 2022-10-19
+
+### Changed
+* avifincrtest_helpers: Cast 64-bit offset to size_t
+* avifmetadatatest: don't include avif/internal.h
+* avifrgbtoyuvtest: skip if no libsharpyuv
+* Disable tests that may fail if the codec is not aom (#1176)
+
 ## [0.11.0] - 2022-10-12
 
 There are incompatible ABI changes in this release. The alphaRange member was
@@ -866,7 +874,8 @@
 - Constants `AVIF_VERSION`, `AVIF_VERSION_MAJOR`, `AVIF_VERSION_MINOR`, 
`AVIF_VERSION_PATCH`
 - `avifVersion()` function
 
-[Unreleased]: https://github.com/AOMediaCodec/libavif/compare/v0.11.0...HEAD
+[Unreleased]: https://github.com/AOMediaCodec/libavif/compare/v0.11.1...HEAD
+[0.11.1]: https://github.com/AOMediaCodec/libavif/compare/v0.11.0...v0.11.1
 [0.11.0]: https://github.com/AOMediaCodec/libavif/compare/v0.10.1...v0.11.0
 [0.10.1]: https://github.com/AOMediaCodec/libavif/compare/v0.10.0...v0.10.1
 [0.10.0]: https://github.com/AOMediaCodec/libavif/compare/v0.9.3...v0.10.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/CMakeLists.txt 
new/libavif-0.11.1/CMakeLists.txt
--- old/libavif-0.11.0/CMakeLists.txt   2022-10-12 23:58:15.000000000 +0200
+++ new/libavif-0.11.1/CMakeLists.txt   2022-10-19 23:32:35.000000000 +0200
@@ -11,7 +11,7 @@
 # Specify search path for CMake modules to be loaded by include() and 
find_package()
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
 
-project(libavif LANGUAGES C VERSION 0.11.0)
+project(libavif LANGUAGES C VERSION 0.11.1)
 
 # Set C99 as the default
 set(CMAKE_C_STANDARD 99)
@@ -25,7 +25,7 @@
 #     Increment PATCH.
 set(LIBRARY_VERSION_MAJOR 15)
 set(LIBRARY_VERSION_MINOR 0)
-set(LIBRARY_VERSION_PATCH 0)
+set(LIBRARY_VERSION_PATCH 1)
 set(LIBRARY_VERSION 
"${LIBRARY_VERSION_MAJOR}.${LIBRARY_VERSION_MINOR}.${LIBRARY_VERSION_PATCH}")
 set(LIBRARY_SOVERSION ${LIBRARY_VERSION_MAJOR})
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/include/avif/avif.h 
new/libavif-0.11.1/include/avif/avif.h
--- old/libavif-0.11.0/include/avif/avif.h      2022-10-12 23:58:15.000000000 
+0200
+++ new/libavif-0.11.1/include/avif/avif.h      2022-10-19 23:32:35.000000000 
+0200
@@ -57,7 +57,7 @@
 // to leverage in-development code without breaking their stable builds.
 #define AVIF_VERSION_MAJOR 0
 #define AVIF_VERSION_MINOR 11
-#define AVIF_VERSION_PATCH 0
+#define AVIF_VERSION_PATCH 1
 #define AVIF_VERSION_DEVEL 0
 #define AVIF_VERSION \
     ((AVIF_VERSION_MAJOR * 1000000) + (AVIF_VERSION_MINOR * 10000) + 
(AVIF_VERSION_PATCH * 100) + AVIF_VERSION_DEVEL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/tests/CMakeLists.txt 
new/libavif-0.11.1/tests/CMakeLists.txt
--- old/libavif-0.11.0/tests/CMakeLists.txt     2022-10-12 23:58:15.000000000 
+0200
+++ new/libavif-0.11.1/tests/CMakeLists.txt     2022-10-19 23:32:35.000000000 
+0200
@@ -116,6 +116,19 @@
     target_link_libraries(avify4mtest aviftest_helpers ${GTEST_BOTH_LIBRARIES})
     target_include_directories(avify4mtest PRIVATE ${GTEST_INCLUDE_DIRS})
     add_test(NAME avify4mtest COMMAND avify4mtest)
+
+    if(NOT AVIF_CODEC_AOM OR NOT AVIF_CODEC_AOM_ENCODE OR NOT 
AVIF_CODEC_AOM_DECODE)
+        # These tests are supported with aom being the encoder and decoder. If 
aom is unavailable,
+        # these tests are disabled because other codecs may not implement all 
the necessary features.
+        # For example, SVT-AV1 requires 4:2:0 images with even dimensions of 
at least 64x64 px.
+        set_tests_properties(avifallocationtest avifgridapitest 
avifmetadatatest avifincrtest PROPERTIES DISABLED True)
+
+        message(STATUS "Some tests are disabled because aom is unavailable for 
encoding or decoding.")
+    endif()
+
+    if(NOT libsharpyuv_FOUND)
+        message(STATUS "Some tests are skipped because libsharpyuv is 
unavailable.")
+    endif()
 else()
     message(STATUS "Most tests are disabled because AVIF_ENABLE_GTEST is OFF.")
 endif()
@@ -131,4 +144,22 @@
     add_test(NAME test_cmd COMMAND bash 
${CMAKE_CURRENT_SOURCE_DIR}/test_cmd.sh ${CMAKE_BINARY_DIR}
                                    ${CMAKE_CURRENT_SOURCE_DIR}/data
     )
+    add_test(NAME test_cmd_lossless COMMAND bash 
${CMAKE_CURRENT_SOURCE_DIR}/test_cmd_lossless.sh ${CMAKE_BINARY_DIR}
+                                            ${CMAKE_CURRENT_SOURCE_DIR}/data
+    )
+    add_test(NAME test_cmd_metadata COMMAND bash 
${CMAKE_CURRENT_SOURCE_DIR}/test_cmd_metadata.sh ${CMAKE_BINARY_DIR}
+                                            ${CMAKE_CURRENT_SOURCE_DIR}/data
+    )
+
+    if(NOT AVIF_CODEC_AOM OR NOT AVIF_CODEC_AOM_ENCODE)
+        # Only aom encoder supports lossless encoding.
+        set_property(TEST test_cmd_lossless PROPERTY DISABLED True)
+
+        # SVT-AV1 does not support the images with odd dimensions that are 
used in this test.
+        if(NOT AVIF_CODEC_RAV1E)
+            set_property(TEST test_cmd_metadata PROPERTY DISABLED True)
+        endif()
+
+        message(STATUS "Some tests are disabled because aom is unavailable for 
encoding.")
+    endif()
 endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/tests/docker/build.sh 
new/libavif-0.11.1/tests/docker/build.sh
--- old/libavif-0.11.0/tests/docker/build.sh    2022-10-12 23:58:15.000000000 
+0200
+++ new/libavif-0.11.1/tests/docker/build.sh    2022-10-19 23:32:35.000000000 
+0200
@@ -19,21 +19,12 @@
 
 # build env
 apt update
-DEBIAN_FRONTEND="noninteractive" apt install -y build-essential libjpeg-dev 
libpng-dev libssl-dev ninja-build cmake pkg-config git perl vim curl python3-pip
-pip3 install meson
+DEBIAN_FRONTEND="noninteractive" apt install -y build-essential libjpeg-dev 
libpng-dev libssl-dev ninja-build cmake pkg-config git perl vim meson cargo nasm
 
 # Rust env
-curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
-source $HOME/.cargo/env
+export PATH="$HOME/.cargo/bin:$PATH"
 cargo install cargo-c
 
-# NASM
-cd
-curl -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.gz 
| tar xvz
-cd nasm-2.15.05
-./configure --prefix=/usr && make -j2 && make install
-nasm --version
-
 # aom
 cd
 git clone -b v3.5.0 --depth 1 https://aomedia.googlesource.com/aom
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/tests/gtest/avifincrtest_helpers.cc 
new/libavif-0.11.1/tests/gtest/avifincrtest_helpers.cc
--- old/libavif-0.11.0/tests/gtest/avifincrtest_helpers.cc      2022-10-12 
23:58:15.000000000 +0200
+++ new/libavif-0.11.1/tests/gtest/avifincrtest_helpers.cc      2022-10-19 
23:32:35.000000000 +0200
@@ -126,13 +126,15 @@
 
 // Implementation of avifIOReadFunc simulating a stream from an array. See
 // avifIOReadFunc documentation. io->data is expected to point to PartialData.
-avifResult PartialRead(struct avifIO* io, uint32_t read_flags, uint64_t offset,
-                       size_t size, avifROData* out) {
+avifResult PartialRead(struct avifIO* io, uint32_t read_flags,
+                       uint64_t offset64, size_t size, avifROData* out) {
   PartialData* data = reinterpret_cast<PartialData*>(io->data);
-  if ((read_flags != 0) || !data || (data->full_size < offset)) {
+  if ((read_flags != 0) || !data || (data->full_size < offset64)) {
     return AVIF_RESULT_IO_ERROR;
   }
-  if (data->full_size < (offset + size)) {
+  const size_t offset = static_cast<size_t>(offset64);
+  // Use |offset| instead of |offset64| from this point on.
+  if (size > (data->full_size - offset)) {
     size = data->full_size - offset;
   }
   if (data->available.size < (offset + size)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/tests/gtest/avifmetadatatest.cc 
new/libavif-0.11.1/tests/gtest/avifmetadatatest.cc
--- old/libavif-0.11.0/tests/gtest/avifmetadatatest.cc  2022-10-12 
23:58:15.000000000 +0200
+++ new/libavif-0.11.1/tests/gtest/avifmetadatatest.cc  2022-10-19 
23:32:35.000000000 +0200
@@ -4,7 +4,7 @@
 #include <array>
 #include <tuple>
 
-#include "avif/internal.h"
+#include "avif/avif.h"
 #include "aviftest_helpers.h"
 #include "gtest/gtest.h"
 
@@ -305,12 +305,18 @@
       0,   0,   0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  // tag, type, count, 
valueOffset
       0,   0,   0, 8  // Invalid IFD offset, infinitely looping back to 0th 
IFD.
   };
-  avifRWDataSet(&image->exif, kBadExifPayload,
-                sizeof(kBadExifPayload) / sizeof(kBadExifPayload[0]));
-  // avifImageExtractExifOrientationToIrotImir() does not verify  the whole
-  // payload, only the parts necessary to extract Exif orientation.
-  ASSERT_EQ(avifImageExtractExifOrientationToIrotImir(image.get()),
-            AVIF_RESULT_OK);
+  // avifImageSetMetadataExif() calls
+  // avifImageExtractExifOrientationToIrotImir() internally.
+  // The avifImageExtractExifOrientationToIrotImir() call should not enter an
+  // infinite loop.
+  //
+  // TODO(wtc): When we change avifImageSetMetadataExif() to return avifResult,
+  // assert that the avifImageSetMetadataExif() call returns AVIF_RESULT_OK
+  // because avifImageExtractExifOrientationToIrotImir() does not verify the
+  // whole payload, only the parts necessary to extract Exif orientation.
+  avifImageSetMetadataExif(
+      image.get(), kBadExifPayload,
+      sizeof(kBadExifPayload) / sizeof(kBadExifPayload[0]));
 }
 
 
//------------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/tests/gtest/avifrgbtoyuvtest.cc 
new/libavif-0.11.1/tests/gtest/avifrgbtoyuvtest.cc
--- old/libavif-0.11.0/tests/gtest/avifrgbtoyuvtest.cc  2022-10-12 
23:58:15.000000000 +0200
+++ new/libavif-0.11.1/tests/gtest/avifrgbtoyuvtest.cc  2022-10-19 
23:32:35.000000000 +0200
@@ -203,7 +203,13 @@
             ModifyImageChannel(&src_rgb, offsets.b, kBlueNoise);
           }
 
-          ASSERT_EQ(avifImageRGBToYUV(yuv.get(), &src_rgb), AVIF_RESULT_OK);
+          const avifResult result = avifImageRGBToYUV(yuv.get(), &src_rgb);
+          if (result == AVIF_RESULT_NOT_IMPLEMENTED &&
+              src_rgb.chromaDownsampling ==
+                  AVIF_CHROMA_DOWNSAMPLING_SHARP_YUV) {
+            GTEST_SKIP() << "libsharpyuv unavailable, skip test.";
+          }
+          ASSERT_EQ(result, AVIF_RESULT_OK);
           ASSERT_EQ(avifImageYUVToRGB(yuv.get(), &dst_rgb), AVIF_RESULT_OK);
           GetDiffSumAndSqDiffSum(src_rgb, dst_rgb, &diff_sum, &abs_diff_sum,
                                  &sq_diff_sum, &max_abs_diff);
@@ -290,7 +296,12 @@
         testutil::FillImageChannel(&src_rgb, offsets.a, rgb_max);
       }
 
-      ASSERT_EQ(avifImageRGBToYUV(yuv.get(), &src_rgb), AVIF_RESULT_OK);
+      const avifResult result = avifImageRGBToYUV(yuv.get(), &src_rgb);
+      if (result == AVIF_RESULT_NOT_IMPLEMENTED &&
+          src_rgb.chromaDownsampling == AVIF_CHROMA_DOWNSAMPLING_SHARP_YUV) {
+        GTEST_SKIP() << "libsharpyuv unavailable, skip test.";
+      }
+      ASSERT_EQ(result, AVIF_RESULT_OK);
       ASSERT_EQ(avifImageYUVToRGB(yuv.get(), &dst_rgb), AVIF_RESULT_OK);
       GetDiffSumAndSqDiffSum(src_rgb, dst_rgb, &diff_sum, &abs_diff_sum,
                              &sq_diff_sum, &max_abs_diff);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/tests/test_cmd.sh 
new/libavif-0.11.1/tests/test_cmd.sh
--- old/libavif-0.11.0/tests/test_cmd.sh        2022-10-12 23:58:15.000000000 
+0200
+++ new/libavif-0.11.1/tests/test_cmd.sh        2022-10-19 23:32:35.000000000 
+0200
@@ -47,20 +47,15 @@
 
 # Input file paths.
 INPUT_Y4M="${TESTDATA_DIR}/kodim03_yuv420_8bpc.y4m"
-INPUT_PNG="${TESTDATA_DIR}/paris_icc_exif_xmp.png"
-INPUT_JPG="${TESTDATA_DIR}/paris_exif_xmp_icc.jpg"
 # Output file names.
 ENCODED_FILE="avif_test_cmd_encoded.avif"
-ENCODED_FILE_NO_METADATA="avif_test_cmd_encoded_no_metadata.avif"
 ENCODED_FILE_WITH_DASH="-avif_test_cmd_encoded.avif"
 DECODED_FILE="avif_test_cmd_decoded.png"
-DECODED_FILE_LOSSLESS="avif_test_cmd_decoded_lossless.png"
 
 # Cleanup
 cleanup() {
   pushd ${TMP_DIR}
-    rm -- "${ENCODED_FILE}" "${ENCODED_FILE_NO_METADATA}" \
-          "${ENCODED_FILE_WITH_DASH}" "${DECODED_FILE}" 
"${DECODED_FILE_LOSSLESS}"
+    rm -- "${ENCODED_FILE}" "${ENCODED_FILE_WITH_DASH}" "${DECODED_FILE}"
   popd
 }
 trap cleanup EXIT
@@ -72,33 +67,13 @@
   "${AVIFDEC}" "${ENCODED_FILE}" "${DECODED_FILE}"
   "${ARE_IMAGES_EQUAL}" "${INPUT_Y4M}" "${DECODED_FILE}" 0 && exit 1
 
-  # Lossless test. The decoded pixels should be the same as the original image.
-  echo "Testing basic lossless"
-  # TODO(yguyon): Make this test pass with INPUT_PNG instead of DECODED_FILE.
-  "${AVIFENC}" -s 10 -l "${DECODED_FILE}" -o "${ENCODED_FILE}"
-  "${AVIFDEC}" "${ENCODED_FILE}" "${DECODED_FILE_LOSSLESS}"
-  "${ARE_IMAGES_EQUAL}" "${DECODED_FILE}" "${DECODED_FILE_LOSSLESS}" 0
-
   # Argument parsing test with filenames starting with a dash.
   echo "Testing arguments"
-  "${AVIFENC}" -s 10 "${INPUT_PNG}" -- "${ENCODED_FILE_WITH_DASH}"
+  "${AVIFENC}" -s 10 "${INPUT_Y4M}" -- "${ENCODED_FILE_WITH_DASH}"
   "${AVIFDEC}" --info  -- "${ENCODED_FILE_WITH_DASH}"
   # Passing a filename starting with a dash without using -- should fail.
-  "${AVIFENC}" -s 10 "${INPUT_PNG}" "${ENCODED_FILE_WITH_DASH}" && exit 1
+  "${AVIFENC}" -s 10 "${INPUT_Y4M}" "${ENCODED_FILE_WITH_DASH}" && exit 1
   "${AVIFDEC}" --info "${ENCODED_FILE_WITH_DASH}" && exit 1
-
-  # Metadata test.
-  echo "Testing metadata enc/dec"
-  for INPUT in "${INPUT_PNG}" "${INPUT_JPG}"; do
-    "${AVIFENC}" "${INPUT}" -o "${ENCODED_FILE}"
-    # Ignoring a metadata chunk should produce a different output file.
-    "${AVIFENC}" "${INPUT}" -o "${ENCODED_FILE_NO_METADATA}" --ignore-icc
-    cmp "${ENCODED_FILE}" "${ENCODED_FILE_NO_METADATA}" && exit 1
-    "${AVIFENC}" "${INPUT}" -o "${ENCODED_FILE_NO_METADATA}" --ignore-exif
-    cmp "${ENCODED_FILE}" "${ENCODED_FILE_NO_METADATA}" && exit 1
-    "${AVIFENC}" "${INPUT}" -o "${ENCODED_FILE_NO_METADATA}" --ignore-xmp
-    cmp "${ENCODED_FILE}" "${ENCODED_FILE_NO_METADATA}" && exit 1
-  done
 popd
 
 exit 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/tests/test_cmd_lossless.sh 
new/libavif-0.11.1/tests/test_cmd_lossless.sh
--- old/libavif-0.11.0/tests/test_cmd_lossless.sh       1970-01-01 
01:00:00.000000000 +0100
+++ new/libavif-0.11.1/tests/test_cmd_lossless.sh       2022-10-19 
23:32:35.000000000 +0200
@@ -0,0 +1,72 @@
+#!/bin/bash
+# Copyright 2022 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# 
------------------------------------------------------------------------------
+#
+# tests for command lines (lossless)
+
+# Very verbose but useful for debugging.
+set -ex
+
+if [[ "$#" -ge 1 ]]; then
+  # eval so that the passed in directory can contain variables.
+  BINARY_DIR="$(eval echo "$1")"
+else
+  # Assume "tests" is the current directory.
+  BINARY_DIR="$(pwd)/.."
+fi
+if [[ "$#" -ge 2 ]]; then
+  TESTDATA_DIR="$(eval echo "$2")"
+else
+  TESTDATA_DIR="$(pwd)/data"
+fi
+if [[ "$#" -ge 3 ]]; then
+  TMP_DIR="$(eval echo "$3")"
+else
+  TMP_DIR="$(mktemp -d)"
+fi
+
+AVIFENC="${BINARY_DIR}/avifenc"
+AVIFDEC="${BINARY_DIR}/avifdec"
+ARE_IMAGES_EQUAL="${BINARY_DIR}/tests/are_images_equal"
+
+# Input file paths.
+INPUT_PNG="${TESTDATA_DIR}/paris_icc_exif_xmp.png"
+# Output file names.
+ENCODED_FILE="avif_test_cmd_lossless_encoded.avif"
+DECODED_FILE="avif_test_cmd_lossless_decoded.png"
+DECODED_FILE_LOSSLESS="avif_test_cmd_lossless_decoded_lossless.png"
+
+# Cleanup
+cleanup() {
+  pushd ${TMP_DIR}
+    rm -- "${ENCODED_FILE}" "${DECODED_FILE}" "${DECODED_FILE_LOSSLESS}"
+  popd
+}
+trap cleanup EXIT
+
+pushd ${TMP_DIR}
+  # Generate test data.
+  "${AVIFENC}" -s 8 "${INPUT_PNG}" -o "${ENCODED_FILE}"
+  "${AVIFDEC}" "${ENCODED_FILE}" "${DECODED_FILE}"
+
+  # Lossless test. The decoded pixels should be the same as the original image.
+  echo "Testing basic lossless"
+  # TODO(yguyon): Make this test pass with INPUT_PNG instead of DECODED_FILE.
+  "${AVIFENC}" -s 10 -l "${DECODED_FILE}" -o "${ENCODED_FILE}"
+  "${AVIFDEC}" "${ENCODED_FILE}" "${DECODED_FILE_LOSSLESS}"
+  "${ARE_IMAGES_EQUAL}" "${DECODED_FILE}" "${DECODED_FILE_LOSSLESS}" 0
+popd
+
+exit 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libavif-0.11.0/tests/test_cmd_metadata.sh 
new/libavif-0.11.1/tests/test_cmd_metadata.sh
--- old/libavif-0.11.0/tests/test_cmd_metadata.sh       1970-01-01 
01:00:00.000000000 +0100
+++ new/libavif-0.11.1/tests/test_cmd_metadata.sh       2022-10-19 
23:32:35.000000000 +0200
@@ -0,0 +1,72 @@
+#!/bin/bash
+# Copyright 2022 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# 
------------------------------------------------------------------------------
+#
+# tests for command lines (metadata)
+
+# Very verbose but useful for debugging.
+set -ex
+
+if [[ "$#" -ge 1 ]]; then
+  # eval so that the passed in directory can contain variables.
+  BINARY_DIR="$(eval echo "$1")"
+else
+  # Assume "tests" is the current directory.
+  BINARY_DIR="$(pwd)/.."
+fi
+if [[ "$#" -ge 2 ]]; then
+  TESTDATA_DIR="$(eval echo "$2")"
+else
+  TESTDATA_DIR="$(pwd)/data"
+fi
+if [[ "$#" -ge 3 ]]; then
+  TMP_DIR="$(eval echo "$3")"
+else
+  TMP_DIR="$(mktemp -d)"
+fi
+
+AVIFENC="${BINARY_DIR}/avifenc"
+
+# Input file paths.
+INPUT_PNG="${TESTDATA_DIR}/paris_icc_exif_xmp.png"
+INPUT_JPG="${TESTDATA_DIR}/paris_exif_xmp_icc.jpg"
+# Output file names.
+ENCODED_FILE="avif_test_cmd_metadata_encoded.avif"
+ENCODED_FILE_NO_METADATA="avif_test_cmd_metadata_encoded_no_metadata.avif"
+
+# Cleanup
+cleanup() {
+  pushd ${TMP_DIR}
+    rm -- "${ENCODED_FILE}" "${ENCODED_FILE_NO_METADATA}"
+  popd
+}
+trap cleanup EXIT
+
+pushd ${TMP_DIR}
+  # Metadata test.
+  echo "Testing metadata enc"
+  for INPUT in "${INPUT_PNG}" "${INPUT_JPG}"; do
+    "${AVIFENC}" "${INPUT}" -o "${ENCODED_FILE}"
+    # Ignoring a metadata chunk should produce a different output file.
+    "${AVIFENC}" "${INPUT}" -o "${ENCODED_FILE_NO_METADATA}" --ignore-icc
+    cmp "${ENCODED_FILE}" "${ENCODED_FILE_NO_METADATA}" && exit 1
+    "${AVIFENC}" "${INPUT}" -o "${ENCODED_FILE_NO_METADATA}" --ignore-exif
+    cmp "${ENCODED_FILE}" "${ENCODED_FILE_NO_METADATA}" && exit 1
+    "${AVIFENC}" "${INPUT}" -o "${ENCODED_FILE_NO_METADATA}" --ignore-xmp
+    cmp "${ENCODED_FILE}" "${ENCODED_FILE_NO_METADATA}" && exit 1
+  done
+popd
+
+exit 0

Reply via email to