blob: 62ee34b3440f3509d79d58eafa099b2c39d1770e [file] [log] [blame]
#!/usr/bin/env bash
#
# Copyright 2023 The Khronos Group Inc.
#
# SPDX-License-Identifier: Apache-2.0
# testBuild - invoke Makefile with the right options to build the test spec
# that is found under build_tests.
# Usage: testBuild
# Build the test spec in various configurations:
function build_spec() {
build=$1
options=$2
echo "-----------------------"
echo "Building gen-$build ..."
# Clean existing build, if any
rm -rf build_tests/gen-$build
# Note: let options expand, do not quote
./makeSpec -spec $options -genpath build_tests/gen-$build -test html
}
# Core:
build_spec core "core"
build_spec core-1.0 "core -version 1.0"
# With VK_EXT_host_image_copy
build_spec hic "core -extension VK_EXT_host_image_copy"
build_spec hic-1.0 "core -extension VK_EXT_host_image_copy -version 1.0"
# With VK_KHR_copy_commands2
build_spec copy2-1.0 "core -version 1.0 -extension VK_KHR_copy_commands2"
# All:
build_spec all "all"
build_spec all-1.0 "all -version 1.0"
# Test valid usage generation as well
echo "-----------------------"
echo "Generating valid usage ..."
./makeSpec -spec all -genpath build_tests/gen-validusage -test validusage
echo
echo "======================="
# Verify the results against expectations. Note: do this after generating all
# builds. This is to support the build_tests/update-expectations script that
# copies the results over the expectations.
result=0
for build in core core-1.0 hic hic-1.0 copy2-1.0 all all-1.0; do
echo "Verifying gen-$build is as expected..."
if ! diff build_tests/expectations/$build.html build_tests/gen-$build/out/html/vkspec.html; then
echo " FAILED"
result=1
fi
done
echo "Verifying validusage in gen-validusage is as expected..."
if ! diff build_tests/expectations/validusage.json build_tests/gen-validusage/out/validation/validusage.json; then
echo " FAILED"
result=1
fi
if [ "$result" -ne 0 ]; then
echo
echo "All tests have been built successfully, but the results do not match the"
echo "expectations."
echo "If trivial, you can review the diff per the above output."
echo "Otherwise, please review each failing output at:"
echo " - build_tests/gen-*/out/html/vkspec.html, and"
echo " - build_tests/gen-validusage/out/validation/validusage.json"
echo "And ensure they are acceptable. In that case, update the expectations with:"
echo " $ cd build_tests && ./update-expectations"
exit 1
fi
echo "Success"