Merge branch '1.3-rel' (1a2c9ee2)
[iotivity.git] / service / notification / unittest / SConscript
1 #******************************************************************
2 #
3 # Copyright 2016 Samsung Electronics All Rights Reserved.
4 #
5 #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #      http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 #
19 #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 ##
22 # Notification Unit Test build script
23 ##
24
25 import os
26 from tools.scons.RunTest import run_test
27
28 Import('env')
29
30 if env.get('RELEASE'):
31     env.AppendUnique(CCFLAGS=['-Os'])
32     env.AppendUnique(CPPDEFINES=['NDEBUG'])
33 else:
34     env.AppendUnique(CCFLAGS=['-g'])
35
36 if env.get('LOGGING'):
37     env.AppendUnique(CPPDEFINES=['TB_LOG'])
38
39 gtest_env = SConscript('#extlibs/gtest/SConscript')
40 lib_env = gtest_env.Clone()
41 SConscript('#service/third_party_libs.scons', 'lib_env')
42
43 ######################################################################
44 #unit test setting
45 ######################################################################
46 src_dir = lib_env.get('SRC_DIR')
47
48 notification_test_env = lib_env.Clone()
49 target_os = env.get('TARGET_OS')
50
51 ######################################################################
52 # Build flags
53 ######################################################################
54 notification_test_env.AppendUnique(LIBPATH=[lib_env.get('BUILD_DIR')])
55 notification_test_env.AppendUnique(LIBS=[
56     'resource_directory',
57     'oc',
58     'octbstack',
59     'connectivity_abstraction',
60     'oc_logger',
61     'coap',
62 ])
63
64 if target_os not in ['windows', 'winrt']:
65     notification_test_env.AppendUnique(
66         CXXFLAGS=['-O2', '-g', '-Wall', '-fmessage-length=0', '-std=c++0x'])
67
68 notification_test_env.AppendUnique(LINKFLAGS=['-Wl,--no-as-needed'])
69 notification_test_env.AppendUnique(CXXFLAGS=['-pthread'])
70 notification_test_env.AppendUnique(LIBS=['pthread'])
71
72 notification_test_env.PrependUnique(CPPPATH=[
73     '#/extlibs/hippomocks/hippomocks',
74     '../include',
75     '../src/consumer',
76     '../src/provider',
77     '../src/common',
78     src_dir + '/resource/csdk/connectivity/api',
79 ])
80
81 if env.get('WITH_TCP') == True:
82     notification_test_env.AppendUnique(CPPDEFINES=['WITH_TCP'])
83 if env.get('SECURED') == '1':
84     notification_test_env.AppendUnique(
85         LIBS=['mbedtls', 'mbedx509', 'mbedcrypto'])
86     notification_test_env.AppendUnique(
87         CPPPATH=['#/resource/csdk/security/include'])
88
89 ######################################################################
90 # Build Test
91 ######################################################################
92
93 notification_consumer_test_env = notification_test_env.Clone()
94 notification_consumer_test_env.AppendUnique(LIBS=['notification_consumer'])
95
96 notification_provider_test_env = notification_test_env.Clone()
97 notification_provider_test_env.AppendUnique(LIBS=['notification_provider'])
98
99 notification_consumer_test_src = env.Glob('./NSConsumerTest2.cpp')
100 notification_consumer_test = notification_consumer_test_env.Program(
101     'notification_consumer_test', notification_consumer_test_src)
102 Alias("notification_consumer_test", notification_consumer_test)
103 env.AppendTarget('notification_consumer_test')
104
105 notification_consumer_test_src = env.Glob('./NSConsumerTest.cpp')
106 notification_consumer_internaltest = notification_consumer_test_env.Program(
107     'notification_consumer_internaltest', notification_consumer_test_src)
108 Alias("notification_consumer_internaltest", notification_consumer_internaltest)
109
110 notification_provider_test_src = env.Glob('./NSProviderTest2.cpp')
111 notification_provider_test = notification_provider_test_env.Program(
112     'notification_provider_test', notification_provider_test_src)
113 Alias("notification_provider_test", notification_provider_test)
114 env.AppendTarget('notification_provider_test')
115
116 notification_provider_test_src = env.Glob('./NSProviderTest.cpp')
117 notification_provider_internaltest = notification_provider_test_env.Program(
118     'notification_provider_internaltest', notification_provider_test_src)
119 Alias("notification_provider_internaltest", notification_provider_internaltest)
120
121 if env.get('TEST') == '1':
122     if target_os in ['linux'] and env.get('SECURED') != '1':
123         run_test(
124             notification_consumer_test_env,
125             #'service_notification_unittest_notification_consumer_test.memcheck',
126             '',  # TODO: Fix this test for MLK and enable previous line
127             'service/notification/unittest/notification_consumer_test')
128         run_test(
129             notification_provider_test_env,
130             #'service_notification_unittest_notification_provider_test.memcheck',
131             '',  # TODO: Fix this test for MLK and enable previous line
132             'service/notification/unittest/notification_provider_test')
133 else:
134     notification_consumer_test_env.AppendUnique(CPPDEFINES=['LOCAL_RUNNING'])
135     notification_provider_test_env.AppendUnique(CPPDEFINES=['LOCAL_RUNNING'])
136     src_dir = notification_consumer_test_env.get('SRC_DIR')
137     svr_db_src_dir = os.path.join(src_dir, 'service/notification/unittest/')
138     svr_db_build_dir = os.path.join(
139         notification_consumer_test_env.get('BUILD_DIR'), 'service',
140         'notification', 'unittest') + os.sep
141     notification_consumer_test_env.Alias(
142         "install",
143         notification_consumer_test_env.Install(
144             svr_db_build_dir, os.path.join(svr_db_src_dir, 'oic_svr_db_ns.dat')))