IXWebSocket/test/run.py

83 lines
1.8 KiB
Python
Raw Normal View History

2019-01-05 02:28:13 +01:00
import os
import platform
import shutil
osName = platform.system()
print('os name = {}'.format(osName))
root = os.path.dirname(os.path.realpath(__file__))
buildDir = os.path.join(root, 'build')
if not os.path.exists(buildDir):
os.mkdir(buildDir)
os.chdir(buildDir)
if osName == 'Windows':
generator = '-G"NMake Makefiles"'
make = 'nmake'
testBinary ='ixwebsocket_unittest.exe'
else:
generator = ''
2019-01-24 21:42:49 +01:00
make = 'make -j6'
testBinary ='./ixwebsocket_unittest'
2019-01-05 02:28:13 +01:00
2019-01-07 03:54:16 +01:00
sanitizersFlags = {
'asan': '-DSANITIZE_ADDRESS=On',
'ubsan': '-DSANITIZE_UNDEFINED=On',
'tsan': '-DSANITIZE_THREAD=On',
'none': ''
}
sanitizer = 'tsan'
if osName == 'Linux':
2019-01-27 05:57:48 +01:00
sanitizer = 'none'
2019-01-07 03:54:16 +01:00
sanitizerFlags = sanitizersFlags[sanitizer]
# if osName == 'Windows':
# os.environ['CC'] = 'clang-cl'
# os.environ['CXX'] = 'clang-cl'
2019-01-07 03:54:16 +01:00
cmakeCmd = 'cmake -DCMAKE_BUILD_TYPE=Debug {} {} ..'.format(generator, sanitizerFlags)
print(cmakeCmd)
ret = os.system(cmakeCmd)
assert ret == 0, 'CMake failed, exiting'
2019-01-05 02:28:13 +01:00
ret = os.system(make)
assert ret == 0, 'Make failed, exiting'
def findFiles(prefix):
'''Find all files under a given directory'''
paths = []
for root, _, files in os.walk(prefix):
for path in files:
fullPath = os.path.join(root, path)
if os.path.islink(fullPath):
continue
paths.append(fullPath)
return paths
2019-01-05 20:42:25 +01:00
#for path in findFiles('.'):
# print(path)
2019-01-05 02:28:13 +01:00
2019-01-05 20:42:25 +01:00
# We need to copy the zlib DLL in the current work directory
2019-01-05 02:28:13 +01:00
shutil.copy(os.path.join(
'..',
'..',
'third_party',
'ZLIB-Windows',
'zlib-1.2.11_deploy_v140',
'release_dynamic',
'x64',
'bin',
'zlib.dll'), '.')
2019-01-05 23:40:17 +01:00
testCommand = '{} {}'.format(testBinary, os.getenv('TEST', ''))
2019-01-06 01:30:22 +01:00
ret = os.system(testCommand)
assert ret == 0, 'Test command failed'