diff options
author | Juan Ramos <[email protected]> | 2022-12-20 15:11:39 -0700 |
---|---|---|
committer | Juan Ramos <[email protected]> | 2022-12-20 15:15:25 -0700 |
commit | 43946b0febc78952aebd2559b5222080b1e48ef3 (patch) | |
tree | 1ac9c55bb6d2b9ae8f5b281d2954c58d568030ef | |
parent | 1401f7a3b3db5f8092adc83fdfffe79251e2ede4 (diff) | |
download | Vulkan-Headers-43946b0febc78952aebd2559b5222080b1e48ef3.tar.gz Vulkan-Headers-43946b0febc78952aebd2559b5222080b1e48ef3.zip |
tests: Test Non-API headers
Ensures the non-API headers compile correctly
-rw-r--r-- | .github/workflows/linux.yml | 16 | ||||
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 44 | ||||
-rw-r--r-- | tests/vk_icd.c | 6 | ||||
-rw-r--r-- | tests/vk_layer.c | 7 | ||||
-rw-r--r-- | tests/vk_sdk_platform.c | 6 |
7 files changed, 84 insertions, 2 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index f2dd7d8..36d55cd 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -23,7 +23,7 @@ on: jobs: # Configure/Install the headers. # No need to build since it's a header only library. - ubuntu-latest: + ubuntu-cmake-install: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -35,3 +35,17 @@ jobs: run: cmake -S . -B build - name: Install Vulkan-Headers run: cmake --install build --prefix build/install + + # Enable testing + ubuntu-cmake-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install build dependencies + run: | + sudo apt-get -qq update + sudo apt-get install -y cmake + - name: Configure Vulkan-Headers + run: cmake -S . -B build -D BUILD_TESTS=ON + - name: Build Vulkan-Headers Tests + run: cmake --build build diff --git a/CMakeLists.txt b/CMakeLists.txt index b93fe8a..6a7e4e7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,11 @@ add_library(Vulkan::Registry ALIAS Vulkan-Registry) string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL) if (PROJECT_IS_TOP_LEVEL) + option(BUILD_TESTS "Build the tests" OFF) + if (BUILD_TESTS) + add_subdirectory(tests) + endif() + include(GNUInstallDirs) include(CMakePackageConfigHelpers) @@ -21,7 +21,7 @@ Files in this repository originate from: * BUILD.gn * BUILD.md * CMakeLists.txt -* cmake/* +* tests/* * CODE_OF_CONDUCT.md * INTEGRATION.md * LICENSE.txt diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..1f12be3 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,44 @@ +# ~~~ +# Copyright (c) 2022 LunarG, Inc. +# +# 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. +# ~~~ + +# Test the non-API headers provided by this repo +# NOTE: For us testing just means that these header files compile +# with reasonable warnings. + +set(CMAKE_C_STANDARD 99) +set(CMAKE_C_STANDARD_REQUIRED ON) +set(CMAKE_C_EXTENSIONS OFF) + +if(${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)") + add_compile_options( + -Wpedantic + -Wall + -Wextra + -Werror + ) +endif() + +# vk_icd.h +add_executable(vk_icd vk_icd.c) +target_link_libraries(vk_icd PRIVATE Vulkan::Headers) + +# vk_layer.h +add_library(vk_layer MODULE vk_layer.c) +target_link_libraries(vk_layer PRIVATE Vulkan::Headers) + +# vk_sdk_platform.h +add_executable(vk_sdk_platform vk_sdk_platform.c) +target_link_libraries(vk_sdk_platform PRIVATE Vulkan::Headers) diff --git a/tests/vk_icd.c b/tests/vk_icd.c new file mode 100644 index 0000000..23766e5 --- /dev/null +++ b/tests/vk_icd.c @@ -0,0 +1,6 @@ +#include "vulkan/vk_icd.h" + +int main() +{ + return 0; +} diff --git a/tests/vk_layer.c b/tests/vk_layer.c new file mode 100644 index 0000000..660d29b --- /dev/null +++ b/tests/vk_layer.c @@ -0,0 +1,7 @@ +#include "vulkan/vk_layer.h" + +// Use helper macro intended for vulkan layers to export functions +VK_LAYER_EXPORT int foobar() +{ + return 0; +} diff --git a/tests/vk_sdk_platform.c b/tests/vk_sdk_platform.c new file mode 100644 index 0000000..750e538 --- /dev/null +++ b/tests/vk_sdk_platform.c @@ -0,0 +1,6 @@ +#include "vulkan/vk_sdk_platform.h" + +int main() +{ + return 0; +} |