1 #******************************************************************
3 # Copyright 2015 Samsung Electronics All Rights Reserved.
5 #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
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
11 # http://www.apache.org/licenses/LICENSE-2.0
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.
19 #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 # ResourceContainer (rcs_container) Unit Test build script
27 # SConscript file for Local PKI google tests
28 gtest_env = SConscript('#extlibs/gtest/SConscript')
29 lib_env = gtest_env.Clone()
30 target_os = lib_env.get('TARGET_OS')
31 src_dir = lib_env.get('SRC_DIR')
33 containerJavaSupport = ARGUMENTS.get('containerJavaSupport',0)
35 def filtered_glob(env, pattern, omit=[],
36 ondisk=True, source=False, strings=False):
38 lambda f: os.path.basename(f.path) not in omit,
39 lib_env.Glob(pattern))
41 lib_env.AddMethod(filtered_glob, "FilteredGlob");
43 if lib_env.get('RELEASE'):
44 lib_env.AppendUnique(CCFLAGS = ['-Os'])
45 lib_env.AppendUnique(CPPDEFINES = ['NDEBUG'])
47 lib_env.AppendUnique(CCFLAGS = ['-g'])
49 if lib_env.get('LOGGING'):
50 lib_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
55 # Add third party libraries
56 SConscript(src_dir + '/service/third_party_libs.scons', 'lib_env')
58 container_gtest_env = lib_env.Clone()
60 if int(containerJavaSupport):
62 print 'Java Home: ', os.environ['JAVA_HOME']
63 print 'Java Lib: ', os.environ['JAVA_LIB']
64 container_gtest_env.Append(CPPDEFINES={'JAVA_SUPPORT_TEST':1})
67 *********************************** Error *************************************
68 * Building resource container without Java support. JAVA_HOME or JAVA_LIB are not set properly
69 * Please configure JAVA_HOME to point to your Java 7 JDK and
70 * JAVA_LIB to your folder containing libjvm
71 * Example: export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
72 * export JAVA_LIB=/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/server/
73 *******************************************************************************
75 container_gtest_env.Append(CPPDEFINES={'JAVA_SUPPORT_TEST':0})
79 ######################### unit test setting ##########################
80 ######################################################################
83 ######################################################################
85 ######################################################################
86 container_gtest_env.AppendUnique(
90 '../../resource-encapsulation/include',
91 '../../resource-encapsulation/src/common/utils/include',
92 '../bundle-api/include',
96 if int(containerJavaSupport):
98 container_gtest_env.AppendUnique(
100 os.environ['JAVA_HOME']+'/include',
101 os.environ['JAVA_HOME']+'/include/linux'
106 if target_os not in ['windows']:
107 container_gtest_env.AppendUnique(LIBS = ['dl'])
108 container_gtest_env.AppendUnique(CCFLAGS = ['-Wnoexcept'])
110 container_gtest_env.PrependUnique(LIBS = ['rcs_container', 'rcs_client', 'rcs_server', 'rcs_common',
111 'oc','octbstack', 'oc_logger', 'oc_logger_core',
112 'connectivity_abstraction'])
114 if target_os in ['android']:
115 container_gtest_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
116 container_gtest_env.PrependUnique(LIBS = ['gnustl_shared', 'compatibility', 'log'])
118 container_gtest_env.PrependUnique(CPPPATH = [src_dir + '/extlibs/hippomocks-master'])
120 if int(containerJavaSupport):
122 container_gtest_env.AppendUnique(LIBPATH = [os.environ['JAVA_LIB']])
125 container_gtest_env.PrependUnique(LIBS = ['rcs_container', 'rcs_client', 'rcs_server', 'rcs_common',
126 'oc','octbstack', 'oc_logger', 'oc_logger_core',
127 'connectivity_abstraction',
128 'gtest', 'gtest_main'])
130 if int(containerJavaSupport):
132 print 'Java Lib: ', os.environ['JAVA_LIB']
133 container_gtest_env.AppendUnique(LIBS = ['jvm'])
137 ######################################################################
139 ######################################################################
140 test_bundle_env = container_gtest_env.Clone()
141 test_bundle_env.AppendUnique(CCFLAGS = ['-fPIC'])
143 if target_os not in ['darwin', 'ios', 'windows']:
144 test_bundle_env.AppendUnique(LINKFLAGS = ['-Wl,--no-undefined'])
146 TEST_BUNDLE_DIR = 'TestBundle/'
147 test_bundle_env.AppendUnique(CPPPATH = [
148 TEST_BUNDLE_DIR + 'include'
151 test_bundle_src = [ Glob(TEST_BUNDLE_DIR + 'src/*.cpp'), Glob('src/*.cpp')]
153 TestBundle = test_bundle_env.SharedLibrary('TestBundle', test_bundle_src)
154 test_bundle_env.InstallTarget(TestBundle, 'libTestBundle')
157 ######################################################################
159 ######################################################################
160 container_gtest_src = container_gtest_env.Glob('./*.cpp')
162 container_test = container_gtest_env.Program('container_test', container_gtest_src)
163 Alias("container_test", container_test)
164 container_gtest_env.AppendTarget('container_test')
166 # Copy test configuration
167 Command("./ResourceContainerTestConfig.xml","./ResourceContainerTestConfig.xml", Copy("$TARGET", "$SOURCE"))
168 Ignore("./ResourceContainerTestConfig.xml", "./ResourceContainerTestConfig.xml")
169 Command("./ResourceContainerInvalidConfig.xml","./ResourceContainerInvalidConfig.xml", Copy("$TARGET", "$SOURCE"))
170 Ignore("./ResourceContainerInvalidConfig.xml", "./ResourceContainerInvalidConfig.xml")
171 Command("./TestBundleJava/hue-0.1-jar-with-dependencies.jar","./TestBundleJava/hue-0.1-jar-with-dependencies.jar", Copy("$TARGET", "$SOURCE"))
172 Ignore("./TestBundleJava/hue-0.1-jar-with-dependencies.jar", "./TestBundleJava/hue-0.1-jar-with-dependencies.jar")
174 if container_gtest_env.get('TEST') == '1':
175 if target_os in ['linux']:
176 from tools.scons.RunTest import *
177 run_test(container_gtest_env,
179 'service/resource-container/unittests/container_test')