tests: Test Non-API headers
Ensures the non-API headers compile correctly
This commit is contained in:
parent
1401f7a3b3
commit
43946b0feb
16
.github/workflows/linux.yml
vendored
16
.github/workflows/linux.yml
vendored
@ -23,7 +23,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
# Configure/Install the headers.
|
# Configure/Install the headers.
|
||||||
# No need to build since it's a header only library.
|
# No need to build since it's a header only library.
|
||||||
ubuntu-latest:
|
ubuntu-cmake-install:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
@ -35,3 +35,17 @@ jobs:
|
|||||||
run: cmake -S . -B build
|
run: cmake -S . -B build
|
||||||
- name: Install Vulkan-Headers
|
- name: Install Vulkan-Headers
|
||||||
run: cmake --install build --prefix build/install
|
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
|
||||||
|
@ -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)
|
string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL)
|
||||||
|
|
||||||
if (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(GNUInstallDirs)
|
||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Files in this repository originate from:
|
|||||||
* BUILD.gn
|
* BUILD.gn
|
||||||
* BUILD.md
|
* BUILD.md
|
||||||
* CMakeLists.txt
|
* CMakeLists.txt
|
||||||
* cmake/*
|
* tests/*
|
||||||
* CODE_OF_CONDUCT.md
|
* CODE_OF_CONDUCT.md
|
||||||
* INTEGRATION.md
|
* INTEGRATION.md
|
||||||
* LICENSE.txt
|
* LICENSE.txt
|
||||||
|
44
tests/CMakeLists.txt
Normal file
44
tests/CMakeLists.txt
Normal file
@ -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)
|
6
tests/vk_icd.c
Normal file
6
tests/vk_icd.c
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include "vulkan/vk_icd.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
7
tests/vk_layer.c
Normal file
7
tests/vk_layer.c
Normal file
@ -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;
|
||||||
|
}
|
6
tests/vk_sdk_platform.c
Normal file
6
tests/vk_sdk_platform.c
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include "vulkan/vk_sdk_platform.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user