221 lines
5.1 KiB
Bash
Executable File
221 lines
5.1 KiB
Bash
Executable File
#! /bin/bash
|
|
# -*- tab-width: 4; -*-
|
|
# vi: set sw=2 ts=4 expandtab:
|
|
|
|
# Regression tests for ktx2check
|
|
|
|
# -------------------------------------------------------------------------
|
|
#
|
|
# Copyright 2010-2020 The Khronos Group, Inc.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# -------------------------------------------------------------------------
|
|
|
|
# Depth of this script relative to the project root
|
|
depth=..
|
|
|
|
# Change dir to the testimages folder, a child of the script location...
|
|
cd $(dirname $0)/testimages
|
|
# ...and adjust depth
|
|
depth=$depth/..
|
|
|
|
# Make paths relative to the testimages directory.
|
|
ktx_root=$depth
|
|
ktx2check_vs2013=$ktx_root/build/msvs/win/vs2013/x64/Release/ktx2check.exe
|
|
ktx2check_vs2015=$ktx_root/build/msvs/win/vs2015/x64/Release/ktx2check.exe
|
|
ktx2check_cmake=$ktx_root/build/cmake/linux/Release/ktx2check
|
|
ktx2check_cmake_d=$ktx_root/build/cmake/linux/Debug/ktx2check
|
|
ktx2check_make=$ktx_root/build/make/linux/out/Release/ktx2check
|
|
ktx2check_make_d=$ktx_root/build/make/linux/out/Debug/ktx2check
|
|
|
|
declare -i numtests=0
|
|
declare -i passed=0
|
|
declare -i failed=0
|
|
|
|
if [ -n "$1" -a -x "$1" ]; then
|
|
ktx2check="$1"
|
|
elif [ -x "$ktx2check_vs2013" ]; then
|
|
ktx2check=$ktx2check_vs2013
|
|
elif [ -x "$ktx2check_vs2015" ]; then
|
|
ktx2check=$ktx2check_vs2015
|
|
elif [ -x "$ktx2check_cmake" ]; then
|
|
ktx2check=$ktx2check_cmake
|
|
elif [ -x "$ktx2check_cmake_d" ]; then
|
|
ktx2check=$ktx2check_cmake_d
|
|
elif [ -x "$ktx2check_make" ]; then
|
|
ktx2check=$ktx2check_make
|
|
elif [ -x "$ktx2check_make_d" ]; then
|
|
ktx2check=$ktx2check_make_d
|
|
elif ! ktx2check=$(which ktx2check); then
|
|
echo $0: None of $ktx2check_vs2013, $ktx2check_vs2015, $ktx2check_gmake,
|
|
echo $ktx2check_make_d, $ktx2check_cmake or $ktx2check_cmake_d found.
|
|
echo $0: Aborting test
|
|
exit 1
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
if $ktx2check --help 2> /dev/null; then
|
|
passed=$passed+1
|
|
else
|
|
echo "--help not recognized"
|
|
failed=$failed+1
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
if $ktx2check --version 2> /dev/null; then
|
|
passed=$passed+1
|
|
else
|
|
echo "--version not recognized"
|
|
failed=$failed+1
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
$ktx2check --foobar 2> /dev/null
|
|
status=$?
|
|
if [ $status -eq 1 ]; then
|
|
passed=$passed+1
|
|
elif [ $status -gt 1 ]; then
|
|
echo "wrong exit code for invalid option."
|
|
failed=$failed+1
|
|
else
|
|
echo "invalid option --foobar accepted"
|
|
failed=$failed+1
|
|
fi
|
|
|
|
#function cmpktx () {
|
|
# if diff $1 $2; then
|
|
# passed=$passed+1
|
|
# rm $1
|
|
# return 0
|
|
# else
|
|
# failed=$failed+1
|
|
# echo "Created ktx file differs from target $2. Bad file saved in $PWD/$1"
|
|
# return 1
|
|
# fi
|
|
#}
|
|
|
|
#function mktmp() {
|
|
# # Git Bash does not include mktemp.
|
|
# if which mktemp > /dev/null; then
|
|
# mktemp toktx.XXXX
|
|
# else
|
|
# toktx.$numtests
|
|
# fi
|
|
#}
|
|
|
|
# Generate ktx file and compare with reference
|
|
# gencmpktx <reference> <toktx args> <toktx infile> ...
|
|
#function gencmpktx() {
|
|
# numtests=$numtests+1
|
|
# local args
|
|
# local reference=$1; shift
|
|
# local tempfile=$(mktmp)
|
|
# for i in $*; do
|
|
# if [ ${i:0:2} == "--" ]; then
|
|
# args="$args $i"
|
|
# shift
|
|
# fi
|
|
# done
|
|
# #echo $toktx $args $tempfile $*
|
|
# if $toktx $args $tempfile $*; then
|
|
# cmpktx $tempfile $reference
|
|
# fi
|
|
#}
|
|
|
|
#---------------- Tests start here -----------------------
|
|
|
|
numtests=$numtests+1
|
|
if $ktx2check *.ktx2; then
|
|
passed=$passed+1
|
|
else
|
|
echo "Valid file(s) failed validation."
|
|
failed=$failed+1
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
$ktx2check --quiet *.ktx2
|
|
status=$?
|
|
if [ $status -eq 0 ]; then
|
|
if [ -z $output ]; then
|
|
passed=$passed+1
|
|
else
|
|
echo "Output written with --quiet."
|
|
failed=$failed+1
|
|
fi
|
|
elif [ $status -eq 1 ]; then
|
|
echo "--quiet not recognized."
|
|
failed=$failed+1
|
|
else
|
|
echo "Valid file(s) failed validation."
|
|
failed=$failed+1
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
if ktx2check < color_grid_uastc_zstd.ktx2; then
|
|
passed=$passed+1
|
|
else
|
|
echo "Valid file read via stdin failed validation."
|
|
failed=$failed+1
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
if cat color_grid_uastc_zstd.ktx2 | ktx2check; then
|
|
passed=$passed+1
|
|
else
|
|
echo "Valid file read via stdin failed validation."
|
|
failed=$failed+1
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
cd ../badktx2
|
|
if $ktx2check invalid_face_count.ktx2 > /dev/null; then
|
|
echo "Invalid face count not spotted."
|
|
failed=$failed+1
|
|
else
|
|
passed=$passed+1
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
output=$($ktx2check --quiet invalid_face_count.ktx2)
|
|
if [ $? -eq 0 ]; then
|
|
echo "Invalid face count not spotted."
|
|
failed=$failed+1
|
|
else
|
|
if [ -z $output ]; then
|
|
passed=$passed+1
|
|
else
|
|
echo "Output written with --quiet."
|
|
failed=$failed+1
|
|
fi
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
cd ../badktx2
|
|
if $ktx2check incorrect_mip_layout_and_padding.ktx2 > /dev/null; then
|
|
echo "Invalid mip layout not spotted."
|
|
failed=$failed+1
|
|
else
|
|
passed=$passed+1
|
|
fi
|
|
|
|
numtests=$numtests+1
|
|
output=$($ktx2check --quiet incorrect_mip_layout_and_padding.ktx2)
|
|
if [ $? -eq 0 ]; then
|
|
echo "Invalid mip layout not spotted."
|
|
failed=$failed+1
|
|
else
|
|
if [ -z $output ]; then
|
|
passed=$passed+1
|
|
else
|
|
echo "Output written with --quiet."
|
|
failed=$failed+1
|
|
fi
|
|
fi
|
|
echo "Tests run: $numtests; passed: $passed; failed: $failed"
|
|
if [ $failed -gt 0 ]; then
|
|
exit 1;
|
|
else
|
|
exit 0;
|
|
fi
|
|
|