From cbdea0386230f0baf7277fd22d039f249e3065f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 22 Jun 2020 17:49:07 +0200 Subject: [PATCH] Vk: test coverage with various extensions and versions. --- package/archlinux/PKGBUILD | 3 +++ package/archlinux/PKGBUILD-coverage | 5 ++++ package/archlinux/PKGBUILD-release | 3 +++ src/Magnum/Vk/Test/InstanceVkTest.cpp | 33 +++++++++++++++++++++++++++ 4 files changed, 44 insertions(+) diff --git a/package/archlinux/PKGBUILD b/package/archlinux/PKGBUILD index 9f4158cb5..b4fed704a 100644 --- a/package/archlinux/PKGBUILD +++ b/package/archlinux/PKGBUILD @@ -69,6 +69,9 @@ check() { MAGNUM_DISABLE_EXTENSIONS="GL_ARB_get_texture_sub_image" CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest MAGNUM_DISABLE_EXTENSIONS="GL_ARB_vertex_array_object" CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest MAGNUM_DISABLE_EXTENSIONS="GL_KHR_debug" CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest + + MAGNUM_VULKAN_VERSION=1.0 CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R VkTest + MAGNUM_DISABLE_EXTENSIONS=VK_KHR_get_physical_device_properties2 MAGNUM_VULKAN_VERSION=1.0 CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R VkTest } package() { diff --git a/package/archlinux/PKGBUILD-coverage b/package/archlinux/PKGBUILD-coverage index b7166d540..38b55ccef 100644 --- a/package/archlinux/PKGBUILD-coverage +++ b/package/archlinux/PKGBUILD-coverage @@ -65,11 +65,16 @@ build() { check() { cd "$_rootdir/build-coverage" CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 || true + MAGNUM_DISABLE_EXTENSIONS="GL_ARB_invalidate_subdata GL_ARB_multi_bind GL_ARB_separate_shader_objects GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_multisample GL_ARB_shading_language_420pack GL_ARB_explicit_uniform_location GL_ARB_explicit_attrib_location GL_ARB_texture_filter_anisotropic" CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true MAGNUM_DISABLE_EXTENSIONS="GL_ARB_direct_state_access GL_ARB_robustness GL_ARB_multi_bind" CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true MAGNUM_DISABLE_EXTENSIONS="GL_ARB_get_texture_sub_image" CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true MAGNUM_DISABLE_EXTENSIONS="GL_ARB_vertex_array_object" CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true MAGNUM_DISABLE_EXTENSIONS="GL_KHR_debug" CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest || true + + MAGNUM_VULKAN_VERSION=1.0 CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R VkTest || true + MAGNUM_DISABLE_EXTENSIONS=VK_KHR_get_physical_device_properties2 MAGNUM_VULKAN_VERSION=1.0 CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R VkTest || true + ./Debug/bin/magnum-al-info > /dev/null ./Debug/bin/magnum-gl-info --limits > /dev/null diff --git a/package/archlinux/PKGBUILD-release b/package/archlinux/PKGBUILD-release index 7d793b45a..9d88f0980 100644 --- a/package/archlinux/PKGBUILD-release +++ b/package/archlinux/PKGBUILD-release @@ -106,6 +106,9 @@ check() { MAGNUM_DISABLE_EXTENSIONS="GL_ARB_get_texture_sub_image" CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest MAGNUM_DISABLE_EXTENSIONS="GL_ARB_vertex_array_object" CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest MAGNUM_DISABLE_EXTENSIONS="GL_KHR_debug" CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R GLTest + + MAGNUM_VULKAN_VERSION=1.0 CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R VkTest + MAGNUM_DISABLE_EXTENSIONS=VK_KHR_get_physical_device_properties2 MAGNUM_VULKAN_VERSION=1.0 CORRADE_TEST_SKIP_BENCHMARKS=ON CORRADE_TEST_COLOR=ON ctest --output-on-failure -j5 -R VkTest done } diff --git a/src/Magnum/Vk/Test/InstanceVkTest.cpp b/src/Magnum/Vk/Test/InstanceVkTest.cpp index 999fc16c1..4ce261e36 100644 --- a/src/Magnum/Vk/Test/InstanceVkTest.cpp +++ b/src/Magnum/Vk/Test/InstanceVkTest.cpp @@ -171,6 +171,9 @@ InstanceVkTest::InstanceVkTest() { using namespace Containers::Literals; void InstanceVkTest::createInfoConstructDefault() { + if(std::getenv("MAGNUM_VULKAN_VERSION")) + CORRADE_SKIP("Can't test with the MAGNUM_VULKAN_VERSION environment variable set"); + InstanceCreateInfo info; CORRADE_VERIFY(info->sType); CORRADE_VERIFY(!info->pNext); @@ -186,6 +189,9 @@ void InstanceVkTest::createInfoConstructDefault() { } void InstanceVkTest::createInfoConstructNoImplicitExtensions() { + if(std::getenv("MAGNUM_VULKAN_VERSION")) + CORRADE_SKIP("Can't test with the MAGNUM_VULKAN_VERSION environment variable set"); + InstanceCreateInfo info{InstanceCreateInfo::Flag::NoImplicitExtensions}; CORRADE_VERIFY(info->sType); CORRADE_VERIFY(!info->pNext); @@ -248,6 +254,9 @@ void InstanceVkTest::createInfoLayers() { } void InstanceVkTest::createInfoExtensions() { + if(std::getenv("MAGNUM_DISABLE_EXTENSIONS")) + CORRADE_SKIP("Can't test with the MAGNUM_DISABLE_EXTENSIONS environment variable set"); + InstanceCreateInfo info{InstanceCreateInfo::Flag::NoImplicitExtensions}; CORRADE_VERIFY(!info->ppEnabledExtensionNames); CORRADE_COMPARE(info->enabledExtensionCount, 0); @@ -294,6 +303,9 @@ void InstanceVkTest::createInfoCopiedStrings() { } void InstanceVkTest::construct() { + if(std::getenv("MAGNUM_VULKAN_VERSION")) + CORRADE_SKIP("Can't test with the MAGNUM_VULKAN_VERSION environment variable set"); + { Instance instance; CORRADE_VERIFY(instance.handle()); @@ -315,6 +327,9 @@ void InstanceVkTest::construct() { } void InstanceVkTest::constructLayerExtension() { + if(std::getenv("MAGNUM_DISABLE_EXTENSIONS")) + CORRADE_SKIP("Can't test with the MAGNUM_DISABLE_EXTENSIONS environment variable set"); + if(!enumerateLayerProperties().isSupported("VK_LAYER_KHRONOS_validation")) CORRADE_SKIP("VK_LAYER_KHRONOS_validation not supported, can't test"); if(!enumerateInstanceExtensionProperties({"VK_LAYER_KHRONOS_validation"}).isSupported()) @@ -341,6 +356,11 @@ void InstanceVkTest::constructCommandLineDisable() { auto&& data = ConstructCommandLineData[testCaseInstanceId()]; setTestCaseDescription(data.nameDisable); + if(std::getenv("MAGNUM_VULKAN_VERSION")) + CORRADE_SKIP("Can't test with the MAGNUM_VULKAN_VERSION environment variable set"); + if(std::getenv("MAGNUM_DISABLE_EXTENSIONS")) + CORRADE_SKIP("Can't test with the MAGNUM_DISABLE_EXTENSIONS environment variable set"); + if(!enumerateLayerProperties().isSupported("VK_LAYER_KHRONOS_validation")) CORRADE_SKIP("VK_LAYER_KHRONOS_validation not supported, can't test"); if(!enumerateInstanceExtensionProperties({"VK_LAYER_KHRONOS_validation"}).isSupported()) @@ -376,6 +396,11 @@ void InstanceVkTest::constructCommandLineEnable() { auto&& data = ConstructCommandLineData[testCaseInstanceId()]; setTestCaseDescription(data.nameEnable); + if(std::getenv("MAGNUM_VULKAN_VERSION")) + CORRADE_SKIP("Can't test with the MAGNUM_VULKAN_VERSION environment variable set"); + if(std::getenv("MAGNUM_DISABLE_EXTENSIONS")) + CORRADE_SKIP("Can't test with the MAGNUM_DISABLE_EXTENSIONS environment variable set"); + if(!enumerateLayerProperties().isSupported("VK_LAYER_KHRONOS_validation")) CORRADE_SKIP("VK_LAYER_KHRONOS_validation not supported, can't test"); if(!enumerateInstanceExtensionProperties({"VK_LAYER_KHRONOS_validation"}).isSupported()) @@ -406,6 +431,9 @@ void InstanceVkTest::constructCommandLineEnable() { } void InstanceVkTest::constructMove() { + if(std::getenv("MAGNUM_DISABLE_EXTENSIONS")) + CORRADE_SKIP("Can't test with the MAGNUM_DISABLE_EXTENSIONS environment variable set"); + InstanceExtensionProperties extensions = enumerateInstanceExtensionProperties(); if(!extensions.isSupported()) CORRADE_SKIP("VK_KHR_get_physical_device_properties2 not supported, can't test"); @@ -465,6 +493,11 @@ void InstanceVkTest::constructUnknownExtension() { } void InstanceVkTest::wrap() { + if(std::getenv("MAGNUM_VULKAN_VERSION")) + CORRADE_SKIP("Can't test with the MAGNUM_VULKAN_VERSION environment variable set"); + if(std::getenv("MAGNUM_DISABLE_EXTENSIONS")) + CORRADE_SKIP("Can't test with the MAGNUM_DISABLE_EXTENSIONS environment variable set"); + InstanceExtensionProperties properties = enumerateInstanceExtensionProperties(); if(!properties.isSupported()) CORRADE_SKIP("VK_EXT_debug_report not supported, can't test");