12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // Copyright 2018 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "base/component_export.h"
- #include "testing/gtest/include/gtest/gtest.h"
- namespace base {
- namespace {
- using ComponentExportTest = testing::Test;
- #define IS_TEST_COMPONENT_A_IMPL 1
- #define IS_TEST_COMPONENT_B_IMPL
- #define IS_TEST_COMPONENT_C_IMPL 0
- #define IS_TEST_COMPONENT_D_IMPL 2
- #define IS_TEST_COMPONENT_E_IMPL xyz
- TEST(ComponentExportTest, ImportExport) {
- // Defined as 1. Treat as export.
- EXPECT_EQ(1, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_A));
- // Defined, but empty. Treat as import.
- EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_B));
- // Defined, but 0. Treat as import.
- EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_C));
- // Defined, but some other arbitrary thing that isn't 1. Treat as import.
- EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_D));
- EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_E));
- // Undefined. Treat as import.
- EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_F));
- // And just for good measure, ensure that the macros evaluate properly in the
- // context of preprocessor #if blocks.
- #if INSIDE_COMPONENT_IMPL(TEST_COMPONENT_A)
- EXPECT_TRUE(true);
- #else
- EXPECT_TRUE(false);
- #endif
- #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_B)
- EXPECT_TRUE(true);
- #else
- EXPECT_TRUE(false);
- #endif
- #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_C)
- EXPECT_TRUE(true);
- #else
- EXPECT_TRUE(false);
- #endif
- #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_D)
- EXPECT_TRUE(true);
- #else
- EXPECT_TRUE(false);
- #endif
- #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_E)
- EXPECT_TRUE(true);
- #else
- EXPECT_TRUE(false);
- #endif
- #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_F)
- EXPECT_TRUE(true);
- #else
- EXPECT_TRUE(false);
- #endif
- }
- #undef IS_TEST_COMPONENT_A_IMPL
- #undef IS_TEST_COMPONENT_B_IMPL
- #undef IS_TEST_COMPONENT_C_IMPL
- #undef IS_TEST_COMPONENT_D_IMPL
- #undef IS_TEST_COMPONENT_E_IMPL
- } // namespace
- } // namespace base
|