From 7c3a06c34918567e6b0ab67bded60725ff63073b Mon Sep 17 00:00:00 2001 From: Lukas Stockner Date: Wed, 10 Aug 2016 20:48:35 +0200 Subject: Cycles Tests: Add test for correct 16 byte alignment of KernelData structs --- intern/cycles/test/CMakeLists.txt | 1 + intern/cycles/test/kernel_struct_align_test.cpp | 60 +++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 intern/cycles/test/kernel_struct_align_test.cpp (limited to 'intern') diff --git a/intern/cycles/test/CMakeLists.txt b/intern/cycles/test/CMakeLists.txt index 9af777fb9dd..e97332392a0 100644 --- a/intern/cycles/test/CMakeLists.txt +++ b/intern/cycles/test/CMakeLists.txt @@ -69,3 +69,4 @@ CYCLES_TEST(util_aligned_malloc "cycles_util") CYCLES_TEST(util_path "cycles_util;${BOOST_LIBRARIES};${OPENIMAGEIO_LIBRARIES}") CYCLES_TEST(util_string "cycles_util;${BOOST_LIBRARIES}") CYCLES_TEST(util_task "cycles_util;${BOOST_LIBRARIES}") +CYCLES_TEST(kernel_struct_align "") diff --git a/intern/cycles/test/kernel_struct_align_test.cpp b/intern/cycles/test/kernel_struct_align_test.cpp new file mode 100644 index 00000000000..d078b8d0524 --- /dev/null +++ b/intern/cycles/test/kernel_struct_align_test.cpp @@ -0,0 +1,60 @@ +/* + * Copyright 2011-2016 Blender Foundation + * + * 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. + */ + +#include "testing/testing.h" + +#include "kernel/kernel_types.h" + +CCL_NAMESPACE_BEGIN + +#define TEST_IS_ALIGNED(name) ((sizeof(name) % 16) == 0) + +TEST(kernel_struct_align, KernelCamera) +{ + EXPECT_TRUE(TEST_IS_ALIGNED(KernelCamera)); +} + +TEST(kernel_struct_align, KernelFilm) +{ + EXPECT_TRUE(TEST_IS_ALIGNED(KernelFilm)); +} + +TEST(kernel_struct_align, KernelBackground) +{ + EXPECT_TRUE(TEST_IS_ALIGNED(KernelBackground)); +} + +TEST(kernel_struct_align, KernelIntegrator) +{ + EXPECT_TRUE(TEST_IS_ALIGNED(KernelIntegrator)); +} + +TEST(kernel_struct_align, KernelBVH) +{ + EXPECT_TRUE(TEST_IS_ALIGNED(KernelBVH)); +} + +TEST(kernel_struct_align, KernelCurves) +{ + EXPECT_TRUE(TEST_IS_ALIGNED(KernelCurves)); +} + +TEST(kernel_struct_align, KernelTables) +{ + EXPECT_TRUE(TEST_IS_ALIGNED(KernelTables)); +} + +CCL_NAMESPACE_END -- cgit v1.2.3