From d7418625d9bbcf98281cbc7ee1630eb48e3a304d Mon Sep 17 00:00:00 2001 From: Juan Ramos Date: Thu, 5 Oct 2023 17:12:11 -0600 Subject: [PATCH] ci: Add armeabi-v7a to CI closes #140 --- .github/workflows/ci.yml | 8 +++++--- tests/CMakeLists.txt | 4 ++++ tests/struct_helper.cpp | 4 ++++ tests/test_interface.cpp | 23 ++++++++++++++++------- 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70fe283..c023373 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,6 +49,9 @@ jobs: android: runs-on: ubuntu-22.04 + strategy: + matrix: + abi: [ armeabi-v7a, arm64-v8a ] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 @@ -59,14 +62,13 @@ jobs: run: | cmake -S . -B build/ --toolchain $ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake \ -D ANDROID_PLATFORM=26 \ - -D CMAKE_ANDROID_ARCH_ABI=x86_64 \ + -D CMAKE_ANDROID_ARCH_ABI=${{matrix.abi}} \ -D CMAKE_ANDROID_STL_TYPE=c++_static \ - -D CMAKE_ANDROID_RTTI=YES \ - -D CMAKE_ANDROID_EXCEPTIONS=YES \ -D ANDROID_USE_LEGACY_TOOLCHAIN_FILE=NO \ -D VUL_WERROR=ON \ -D CMAKE_BUILD_TYPE=Release \ -D UPDATE_DEPS=ON \ + -D BUILD_TESTS=ON \ -G "Ninja" - name: Build run: cmake --build build diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3f7cbd1..c039f5d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -37,4 +37,8 @@ target_link_libraries(vul_tests PRIVATE Vulkan::CompilerConfiguration ) +if (CMAKE_CROSSCOMPILING) + return() +endif() + gtest_discover_tests(vul_tests DISCOVERY_TIMEOUT 100) diff --git a/tests/struct_helper.cpp b/tests/struct_helper.cpp index 57a1d2d..06a11f2 100644 --- a/tests/struct_helper.cpp +++ b/tests/struct_helper.cpp @@ -90,6 +90,8 @@ TEST(struct_helper, struct_defaults_correct) { ASSERT_EQ(s.t4.sType, VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO); } +#if VK_USE_64_BIT_PTR_DEFINES == 1 + TEST(struct_helper, get_object_type) { ASSERT_EQ(vku::GetObjectType(), VK_OBJECT_TYPE_INSTANCE); ASSERT_EQ(vku::GetObjectType(), VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL); @@ -97,3 +99,5 @@ TEST(struct_helper, get_object_type) { ASSERT_EQ(vku::GetObjectType(), VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR); ASSERT_EQ(vku::GetObjectType(), VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV); } + +#endif // VK_USE_64_BIT_PTR_DEFINES == 1 diff --git a/tests/test_interface.cpp b/tests/test_interface.cpp index 1cbbc21..5102f8d 100644 --- a/tests/test_interface.cpp +++ b/tests/test_interface.cpp @@ -10,20 +10,29 @@ #include // Only exists so that local_vkGetDeviceProcAddr can return a 'real' function pointer -inline void empty_func() {} +inline VKAPI_ATTR void empty_func() {} -inline PFN_vkVoidFunction local_vkGetInstanceProcAddr(VkInstance instance, const char *pName) { - if (instance == VK_NULL_HANDLE) return NULL; +inline VKAPI_ATTR PFN_vkVoidFunction local_vkGetInstanceProcAddr(VkInstance instance, const char *pName) { + if (instance == VK_NULL_HANDLE) { + return NULL; + } - if (strcmp(pName, "vkGetInstanceProcAddr")) return reinterpret_cast(&local_vkGetInstanceProcAddr); + if (strcmp(pName, "vkGetInstanceProcAddr")) { + return reinterpret_cast(&local_vkGetInstanceProcAddr); + } return reinterpret_cast(&empty_func); } -inline PFN_vkVoidFunction local_vkGetDeviceProcAddr(VkDevice device, const char *pName) { - if (device == VK_NULL_HANDLE) return NULL; +inline VKAPI_ATTR PFN_vkVoidFunction local_vkGetDeviceProcAddr(VkDevice device, const char *pName) { + if (device == VK_NULL_HANDLE) { + return NULL; + } + + if (strcmp(pName, "vkGetDeviceProcAddr")) { + return reinterpret_cast(&local_vkGetDeviceProcAddr); + } - if (strcmp(pName, "vkGetDeviceProcAddr")) return reinterpret_cast(&local_vkGetDeviceProcAddr); return reinterpret_cast(&empty_func); }