Fix emulator build error
[platform/framework/web/chromium-efl.git] / base / component_export_unittest.cc
1 // Copyright 2018 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/component_export.h"
6 #include "testing/gtest/include/gtest/gtest.h"
7
8 namespace base {
9 namespace {
10
11 using ComponentExportTest = testing::Test;
12
13 #define IS_TEST_COMPONENT_A_IMPL 1
14 #define IS_TEST_COMPONENT_B_IMPL
15 #define IS_TEST_COMPONENT_C_IMPL 0
16 #define IS_TEST_COMPONENT_D_IMPL 2
17 #define IS_TEST_COMPONENT_E_IMPL xyz
18
19 TEST(ComponentExportTest, ImportExport) {
20   // Defined as 1. Treat as export.
21   EXPECT_EQ(1, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_A));
22
23   // Defined, but empty. Treat as import.
24   EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_B));
25
26   // Defined, but 0. Treat as import.
27   EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_C));
28
29   // Defined, but some other arbitrary thing that isn't 1. Treat as import.
30   EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_D));
31   EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_E));
32
33   // Undefined. Treat as import.
34   EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_F));
35
36   // And just for good measure, ensure that the macros evaluate properly in the
37   // context of preprocessor #if blocks.
38 #if INSIDE_COMPONENT_IMPL(TEST_COMPONENT_A)
39   EXPECT_TRUE(true);
40 #else
41   EXPECT_TRUE(false);
42 #endif
43
44 #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_B)
45   EXPECT_TRUE(true);
46 #else
47   EXPECT_TRUE(false);
48 #endif
49
50 #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_C)
51   EXPECT_TRUE(true);
52 #else
53   EXPECT_TRUE(false);
54 #endif
55
56 #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_D)
57   EXPECT_TRUE(true);
58 #else
59   EXPECT_TRUE(false);
60 #endif
61
62 #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_E)
63   EXPECT_TRUE(true);
64 #else
65   EXPECT_TRUE(false);
66 #endif
67
68 #if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_F)
69   EXPECT_TRUE(true);
70 #else
71   EXPECT_TRUE(false);
72 #endif
73 }
74
75 #undef IS_TEST_COMPONENT_A_IMPL
76 #undef IS_TEST_COMPONENT_B_IMPL
77 #undef IS_TEST_COMPONENT_C_IMPL
78 #undef IS_TEST_COMPONENT_D_IMPL
79 #undef IS_TEST_COMPONENT_E_IMPL
80
81 }  // namespace
82 }  // namespace base