You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
7.6 KiB
Bash
182 lines
7.6 KiB
Bash
#!/usr/bin/env bash
|
|
# test for ISOs which follow Annex G of EXIF 2.3 spec, i.e. ISOs,
|
|
# which cannot be represented by Exif.Photo.ISOSpeedRatings due to
|
|
# being larger than 65k
|
|
|
|
# All tests use the summary view as a result-check, because it uses
|
|
# the isoSpeed() "easyaccess" function, which handles the higher ISO
|
|
# readout.
|
|
#
|
|
# Tests getting executed:
|
|
#
|
|
|
|
source ./functions.source
|
|
|
|
( cd "$testdir"
|
|
|
|
num=0001
|
|
# Checks for old way of ISO readout based on the 16bit value
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings being set to something <65k
|
|
# output:
|
|
# - value of Exif.Photo.ISOSpeedRatings
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.ISOSpeedRatings 60001' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0002
|
|
# Old ISO is read out first, so if it doesn't indicate that
|
|
# some higher ISO is used, the 16bit value should be returned,
|
|
# ignoring the other tags (for now)
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings being set to something <65k
|
|
# - Exif.Photo.SensitivityType being set to "REI"
|
|
# - Exif.Photo.RecommendedExposureIndex being set to != ISOSpeedRatings
|
|
# output:
|
|
# - value of Exif.Photo.ISOSpeedRatings
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.ISOSpeedRatings 60002' $filename
|
|
runTest exiv2 -M'set Exif.Photo.SensitivityType 2' $filename
|
|
runTest exiv2 -M'set Exif.Photo.RecommendedExposureIndex 444444' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0003
|
|
# Corner case check (highest ISO value not indicating possible
|
|
# 16bit overflow in ISO)
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings being set to 65534
|
|
# output:
|
|
# - value of Exif.Photo.ISOSpeedRatings
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.ISOSpeedRatings 65534' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0004
|
|
# Corner case check (ISO value indicating possible overflow,
|
|
# but no additional informations available)
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings being set to 65535
|
|
# - Exif.Photo.SensitivityType NOT SET
|
|
# output:
|
|
# - value of Exif.Photo.ISOSpeedRatings
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.ISOSpeedRatings 65535' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0005
|
|
# possible ISO value overflow, but additional information not valid
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings being set to 65535
|
|
# - Exif.Photo.SensitivityType being set to 0
|
|
# output:
|
|
# - value of Exif.Photo.ISOSpeedRatings
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.ISOSpeedRatings 65535' $filename
|
|
runTest exiv2 -M'set Exif.Photo.SensitivityType 0' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0006
|
|
# possible ISO value overflow, but additional information not valid
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings being set to 65535
|
|
# - Exif.Photo.SensitivityType being set to 8
|
|
# output:
|
|
# - value of Exif.Photo.ISOSpeedRatings
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.ISOSpeedRatings 65535' $filename
|
|
runTest exiv2 -M'set Exif.Photo.SensitivityType 8' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0007
|
|
# possible ISO value overflow, but additional information partially valid
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings being set to 65535
|
|
# - Exif.Photo.SensitivityType being set to 2 ("REI")
|
|
# - Exif.Photo.RecommendedExposureIndex NOT SET
|
|
# output:
|
|
# - value of Exif.Photo.ISOSpeedRatings
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.ISOSpeedRatings 65535' $filename
|
|
runTest exiv2 -M'set Exif.Photo.SensitivityType 2' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0008
|
|
# ISO value overflow, REI contains same value as 16bit ISO, though
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings being set to 65535
|
|
# - Exif.Photo.SensitivityType being set to 2 ("REI")
|
|
# - Exif.Photo.RecommendedExposureIndex set to 65530
|
|
# output:
|
|
# - value of Exif.Photo.RecommendedExposureIndex
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.ISOSpeedRatings 65535' $filename
|
|
runTest exiv2 -M'set Exif.Photo.SensitivityType 2' $filename
|
|
runTest exiv2 -M'set Exif.Photo.RecommendedExposureIndex 65530' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0009
|
|
# ISO value overflow, REI contains 16bit ISO value +1
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings being set to 65535
|
|
# - Exif.Photo.SensitivityType being set to 2 ("REI")
|
|
# - Exif.Photo.RecommendedExposureIndex set to 65536
|
|
# output:
|
|
# - value of Exif.Photo.RecommendedExposureIndex
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.ISOSpeedRatings 65535' $filename
|
|
runTest exiv2 -M'set Exif.Photo.SensitivityType 2' $filename
|
|
runTest exiv2 -M'set Exif.Photo.RecommendedExposureIndex 65536' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0010
|
|
# old ISO not set
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings is NOT SET
|
|
# - Exif.Photo.SensitivityType being set to 2 ("REI")
|
|
# - Exif.Photo.RecommendedExposureIndex set to <65k
|
|
# output:
|
|
# - value of Exif.Photo.RecommendedExposureIndex
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.SensitivityType 2' $filename
|
|
runTest exiv2 -M'set Exif.Photo.RecommendedExposureIndex 60010' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
num=0011
|
|
# old ISO not set
|
|
# input:
|
|
# - Exif.Photo.ISOSpeedRatings is NOT SET
|
|
# - Exif.Photo.SensitivityType being set to 2 ("REI")
|
|
# - Exif.Photo.RecommendedExposureIndex set to >65k
|
|
# output:
|
|
# - value of Exif.Photo.RecommendedExposureIndex
|
|
echo '------>' iso65k test $num '<-------' >&2
|
|
filename=exiv2-iso65k-$num.jpg
|
|
copyTestFile exiv2-empty.jpg $filename
|
|
runTest exiv2 -M'set Exif.Photo.SensitivityType 2' $filename
|
|
runTest exiv2 -M'set Exif.Photo.RecommendedExposureIndex 100011' $filename
|
|
runTest exiv2 -ps $filename
|
|
|
|
) > $testdir/iso65k-test.out 2>&1
|
|
|
|
reportTest
|