From baf0508027872f50198e838fe1148b73a9b11b1f Mon Sep 17 00:00:00 2001 From: Erwin Jansen Date: Wed, 21 Nov 2018 16:09:40 -0800 Subject: CMake support to enable compilation under Visual Studio - Add support for cmake - Template fix to enable compilation with visual studio. - Exclusion of static type tests under visual studio - Fix unit tests due to declaration issues Note we do not build the fuzzing target. Test: All unit tests green on VS2017, MacOs, Linux Change-Id: Ie8437f61d187fff03279c99fde0ff565e8f39b50 --- src/base/CMakeLists.txt | 27 +++++++++++++++++++++++++++ src/base/test/bottom_n_test.cpp | 27 ++++++++++++++++++--------- src/base/test/type_traits_test.cpp | 2 ++ 3 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 src/base/CMakeLists.txt (limited to 'src/base') diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt new file mode 100644 index 0000000..2cd27ae --- /dev/null +++ b/src/base/CMakeLists.txt @@ -0,0 +1,27 @@ +# Copyright 2018 Google LLC +# +# 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 +# +# https://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. +add_library(base INTERFACE) +target_include_directories(base INTERFACE ../..) + +if(OPTION_ASTC_TESTS) + add_executable(base_test + test/bit_stream_test.cpp + test/bottom_n_test.cpp + test/math_utils_test.cpp + test/optional_test.cpp + test/string_utils_test.cpp + test/type_traits_test.cpp + test/uint128_test.cpp) + target_link_libraries(base_test base gmock_main) + add_test(base_test base_test) +endif() diff --git a/src/base/test/bottom_n_test.cpp b/src/base/test/bottom_n_test.cpp index 76f0123..71265d7 100644 --- a/src/base/test/bottom_n_test.cpp +++ b/src/base/test/bottom_n_test.cpp @@ -33,7 +33,8 @@ TEST(BottomN, Sort) { { BottomN heap(10); EXPECT_TRUE(heap.Empty()); - pushAll(heap, (int[]){1, 2}); + int list[] = { 1,2 }; + pushAll(heap, list); EXPECT_EQ(heap.Size(), 2); EXPECT_FALSE(heap.Empty()); @@ -42,7 +43,8 @@ TEST(BottomN, Sort) { { BottomN heap(6); - pushAll(heap, (int[]){1, 4, 3, 2, 2, 1}); + int list[] = {1, 4, 3, 2, 2, 1}; + pushAll(heap, list); EXPECT_EQ(heap.Size(), 6); EXPECT_THAT(heap.Pop(), ElementsAre(1, 1, 2, 2, 3, 4)); @@ -52,7 +54,8 @@ TEST(BottomN, Sort) { TEST(BottomN, Bounds) { { BottomN heap(4); - pushAll(heap, (int[]){1, 2, 3, 4}); + int list[] = { 1, 2, 3, 4 }; + pushAll(heap, list); EXPECT_EQ(heap.Size(), 4); heap.Push(0); @@ -63,10 +66,12 @@ TEST(BottomN, Bounds) { { BottomN heap(4); - pushAll(heap, (int[]){4, 3, 2, 1}); + int list[] = { 4, 3, 2,1 }; + pushAll(heap, list); EXPECT_EQ(heap.Size(), 4); - pushAll(heap, (int[]){4, 4, 4, 4}); + int list2[] = { 4,4,4,4 }; + pushAll(heap, list2); EXPECT_EQ(heap.Size(), 4); EXPECT_THAT(heap.Pop(), ElementsAre(1, 2, 3, 4)); @@ -74,10 +79,12 @@ TEST(BottomN, Bounds) { { BottomN heap(4); - pushAll(heap, (int[]){4, 3, 2, 1}); + int list[] = { 4, 3, 2, 1 }; + pushAll(heap, list); EXPECT_EQ(heap.Size(), 4); - pushAll(heap, (int[]){5, 5, 5, 5}); + int list2[] = { 5, 5, 5, 5 }; + pushAll(heap, list2); EXPECT_EQ(heap.Size(), 4); EXPECT_THAT(heap.Pop(), ElementsAre(1, 2, 3, 4)); @@ -85,10 +92,12 @@ TEST(BottomN, Bounds) { { BottomN heap(4); - pushAll(heap, (int[]){4, 3, 2, 1}); + int list[] = { 4, 3, 2, 1 }; + pushAll(heap, list); EXPECT_EQ(heap.Size(), 4); - pushAll(heap, (int[]){0, 0, 0, 0}); + int list2[] = { 0, 0, 0, 0 }; + pushAll(heap, list2); EXPECT_EQ(heap.Size(), 4); EXPECT_THAT(heap.Pop(), ElementsAre(0, 0, 0, 0)); diff --git a/src/base/test/type_traits_test.cpp b/src/base/test/type_traits_test.cpp index b858c01..c724cbe 100644 --- a/src/base/test/type_traits_test.cpp +++ b/src/base/test/type_traits_test.cpp @@ -105,6 +105,7 @@ TEST(TypeTraits, IsTemplateInstantiation) { "nested std::vector<> is an instance of vector"); } +#ifndef _MSC_VER TEST(TypeTraits, IsRange) { static_assert(is_range>::value, "vector<> should be detected as a range"); @@ -123,6 +124,7 @@ TEST(TypeTraits, IsRange) { static_assert(!is_range::value, "even const int* shouldn't be a range"); } +#endif } // namespace base } // namespace astc_codec -- cgit v1.2.3