* Build an octbstack_test static library.
* Link test executables against aforementioned static library.
* Remove octbstack_test.def file.
* Light cleanup of various SCons scripts
Note: This patch also fixes an issue where the build would fail
when TEST=0 was specified on Windows.
Change-Id: Ied7457fd5857396f4ce32bff37380998d66adeff
Signed-off-by: David Antler <david.a.antler@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/12115
Reviewed-by: Phil Coval <philippe.coval@osg.samsung.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Dan Mihai <Daniel.Mihai@microsoft.com>
Reviewed-by: Dave Thaler <dthaler@microsoft.com>
######################################################################
# Build flags
######################################################################
-randomtest_env.PrependUnique(CPPPATH = [
- '../include',
- '../../logger/include',
- '../../../oc_logger/include',
- ])
+randomtest_env.PrependUnique(CPPPATH = ['../include'])
-randomtest_env.AppendUnique(LIBPATH = [randomtest_env.get('BUILD_DIR')])
-randomtest_env.PrependUnique(LIBS = ['octbstack',
- 'connectivity_abstraction',
- 'uuid'])
+randomtest_env.AppendUnique(LIBPATH = [os.path.join(randomtest_env.get('BUILD_DIR'), 'resource', 'c_common')])
+randomtest_env.PrependUnique(LIBS = ['c_common'])
if target_os in ['linux']:
randomtest_env.AppendUnique(LIBS = ['m'])
-if randomtest_env.get('SECURED') == '1':
- if randomtest_env.get('WITH_TCP') == True:
- randomtest_env.AppendUnique(LIBS = ['mbedtls', 'mbedx509','mbedcrypto'])
-
if randomtest_env.get('LOGGING'):
randomtest_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
if target_os in ['windows', 'msys_nt']:
# octbstack.def specifies the list of functions exported by octbstack.dll.
liboctbstack_env.Replace(WINDOWS_INSERT_DEF = ['1'])
- if env.get('TEST') == '1':
- liboctbstack_env.Textfile(target = 'octbstack_not_secured.def', source = [File('octbstack_product.def'), File('octbstack_test.def')])
- else:
- liboctbstack_env.Textfile(target = 'octbstack_not_secured.def', source = [File('octbstack_product.def')])
-
if env.get('SECURED') == '1':
# octbstack.dll is exporting ocpmapi APIs on Windows - there is no ocpmapi.dll.
liboctbstack_env.PrependUnique(LIBS = ['ocpmapi'])
- liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_not_secured.def'), File('octbstack_product_secured.def')])
+ liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_product.def'), File('octbstack_product_secured.def')])
else:
- liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_not_secured.def')])
+ liboctbstack_env.Textfile(target = 'octbstack.def', source = [File('octbstack_product.def')])
liboctbstack_env.AppendUnique(LIBS = ['ws2_32', 'advapi32', 'iphlpapi'])
else:
if with_tcp == True:
liboctbstack_src.append(OCTBSTACK_SRC + 'oickeepalive.c')
+if target_os in ['linux']:
+ # Linux uses a Shared library because SCons chooses the shared library on Linux
+ # when only 'octbstack' is added to the LIBS.
+ # TODO: Switch Linux to use a Static library for testing like every other OS.
+ test_liboctbstack = liboctbstack_env.SharedLibrary('octbstack_test', liboctbstack_src)
+else:
+ test_liboctbstack = liboctbstack_env.StaticLibrary('octbstack_test', liboctbstack_src)
+
+octbstack_libs = Flatten(test_liboctbstack)
+
if target_os in ['windows', 'msys_nt']:
# Avoid a name conflict with the octbstack.lib target of the SharedLibrary.
static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack_static', liboctbstack_src)
else:
static_liboctbstack = liboctbstack_env.StaticLibrary('octbstack', liboctbstack_src)
-octbstack_libs = Flatten(static_liboctbstack)
+octbstack_libs += Flatten(static_liboctbstack)
if target_os not in ['arduino','darwin','ios'] :
shared_liboctbstack = liboctbstack_env.SharedLibrary('octbstack', liboctbstack_src)
])
catest_env.AppendUnique(LIBPATH = [catest_env.get('BUILD_DIR')])
-catest_env.PrependUnique(LIBS = ['gtest', 'gtest_main'])
-catest_env.PrependUnique(LIBS = ['octbstack',
+catest_env.PrependUnique(LIBS = ['octbstack_test',
'connectivity_abstraction',
'coap'])
EXPORTS
-; Windows octbstack.dll exports that are required for both products and tests.
+; Windows octbstack.dll exports that are required for products.
_cbor_value_decode_int64_internal
_cbor_value_dup_string
+++ /dev/null
-; Windows octbstack.dll exports that are required just for tests.
-
-encodeAddressForRFC6874
-
-OCByteStringCopy
-OCConvertPayload
-OCDevicePayloadCreate
-OCParsePayload
sptest_env.AppendUnique(LIBPATH = [sptest_env.get('BUILD_DIR')])
sptest_env.PrependUnique(LIBS = [ 'ocpmapi',
'oc',
+ 'octbstack_test',
'ocsrm',
- 'octbstack',
'oc_logger',
'connectivity_abstraction',
'coap'])
srmtest_env.AppendUnique(LIBPATH = [srmtest_env.get('BUILD_DIR')])
srmtest_env.PrependUnique(LIBS = ['ocsrm',
- 'octbstack',
+ 'octbstack_test',
'oc_logger',
'connectivity_abstraction',
'coap'])
os.makedirs(result_dir)
srmtest_env.AppendENVPath('GTEST_OUTPUT', ['xml:'+ result_dir])
srmtest_env.AppendENVPath('LD_LIBRARY_PATH', [out_dir])
- srmtest_env.AppendENVPath('PATH', [os.path.join(out_dir, 'resource', 'csdk')])
from tools.scons.RunTest import *
run_test(srmtest_env,'ut','resource/csdk/security/unittest/unittest')
])
stacktest_env.AppendUnique(LIBPATH = [stacktest_env.get('BUILD_DIR')])
-stacktest_env.PrependUnique(LIBS = ['octbstack',
+stacktest_env.PrependUnique(LIBS = ['octbstack_test',
'ocsrm',
'connectivity_abstraction',
'coap'])
stacktest_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
if target_os in ['msys_nt', 'windows']:
- stacktest_env.AppendUnique(LIBS = ['ws2_32', 'iphlpapi', 'kernel32'])
+ stacktest_env.AppendUnique(LIBS = ['ws2_32', 'iphlpapi', 'kernel32', 'advapi32'])
else:
stacktest_env.PrependUnique(LIBS = ['m'])
stacktest_env.AppendTarget('test')
if stacktest_env.get('TEST') == '1':
- if target_os in ['windows']:
- stacktest_env.AppendENVPath('PATH', [os.path.join(stacktest_env.get('BUILD_DIR'), 'resource', 'csdk')])
if target_os in ['linux', 'windows']:
from tools.scons.RunTest import *
run_test(stacktest_env,
'ocprovision',
'oc',
'ocpmapi',
- 'octbstack',
+ 'octbstack_test',
'oc_logger',
'connectivity_abstraction',
'coap'
])
if target_os in ['windows']:
- unittests_env.AppendUnique(LIBS = ['ws2_32'])
+ unittests_env.AppendUnique(LIBS = ['ws2_32', 'advapi32', 'iphlpapi'])
unittests_env.AppendUnique(CPPPATH = ['#extlibs/boost/boost'])
+if unittests_env.get('SECURED') == '1':
+ unittests_env.AppendUnique(LIBS = ['ocsrm'])
+
unittests_env.AppendUnique(LIBPATH = [unittests_env.get('BUILD_DIR')])
unittests_env.PrependUnique(LIBS = [
'oc',
- 'octbstack',
+ 'octbstack_test',
'oc_logger',
'connectivity_abstraction',
'coap'