From 077807f94198124d0f326913c2fe299c966560eb Mon Sep 17 00:00:00 2001 From: Dan Liew Date: Mon, 17 Nov 2014 21:04:03 +0000 Subject: Make run-unittests.py executable under Linux/OSX. This required changing the line endings so that it uses unix line endings. --- Source/UnitTests/run-unittests.py | 248 +++++++++++++++++++------------------- 1 file changed, 124 insertions(+), 124 deletions(-) mode change 100644 => 100755 Source/UnitTests/run-unittests.py (limited to 'Source/UnitTests') diff --git a/Source/UnitTests/run-unittests.py b/Source/UnitTests/run-unittests.py old mode 100644 new mode 100755 index be906edd..29033943 --- a/Source/UnitTests/run-unittests.py +++ b/Source/UnitTests/run-unittests.py @@ -1,124 +1,124 @@ -#!/usr/bin/env python -""" -This is a simple script to invoke nunit-console.exe -on Windows or Linux on all UnitTest libraries. -""" -import argparse -import logging -import os -import subprocess -import sys - -class ReturnCode: - SUCCESS = 0 - CONFIG_ERROR = 1 - RUN_ERROR = 2 - - -def main(args): - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('BuildType', choices=['Release', 'Debug'], - help='Build type of unit test libraries') - parser.add_argument('-l','--log-level', - choices=['critical', 'error', 'warning', 'info', 'debug'], - default='info', - dest='log_level', - help='Logging level. Default %(default)s') - parser.add_argument('--nunit-console-path', default='', - help='Path to nunit-console tool. If not set the script will try to guess its location', - dest='nunit_console_path' - ) - parser.add_argument('-e', '--nunit-console-extra-args', action='append', - help='Pass extra arguments to nunit-console. This can be used multiple times', - default=[], - dest='nunit_console_extra_args' - ) - parser.add_argument('--no-progress', - action='store_true', - dest='no_progress', - help='Suppress nunit-console progress information') - - - parsedArgs = parser.parse_args(args) - logging.basicConfig(level=getattr(logging, parsedArgs.log_level.upper())) - buildType=parsedArgs.BuildType - - logging.info('Build type is {}'.format(buildType)) - - if parsedArgs.no_progress: - parsedArgs.nunit_console_extra_args.append('-nodots') - - logging.info('Extra arguments to nunit-console "{}"'.format(parsedArgs.nunit_console_extra_args)) - - UnitTestDirRoot = os.path.dirname(os.path.abspath(__file__)) - - # Find nunit-console.exe - if parsedArgs.nunit_console_path == "": - # Try to guess where the tool is - nunitConsolePath = os.path.join(os.path.join(UnitTestDirRoot,'..'), - "packages", - "NUnit.Runners.2.6.3", - "tools", - "nunit-console.exe" - ) - # Mono needs the path to be absolute - nunitConsolePath = os.path.abspath(nunitConsolePath) - else: - nunitConsolePath = parsedArgs.nunit_console_path - - logging.info('Looking for NUnit console at "{}"'.format(nunitConsolePath)) - if not os.path.exists(nunitConsolePath): - logging.error('Could not find NUnit console tool') - return ReturnCode.CONFIG_ERROR - - # Find unit test libraries - unitTestLibraries = [ ] - logging.info('Searching for Unit test libraries in "{}"'.format(UnitTestDirRoot)) - for (dirpath, dirnames, filenames) in os.walk(UnitTestDirRoot): - - # Search current directory for dll with correct suffix - for filename in filenames: - if filename.endswith('Tests.dll'): - logging.debug('Found "{}" checking build type'.format(filename)) - - pathComponents = dirpath.split(os.path.sep) - fullPath = os.path.join(dirpath, filename) - try: - buildTypeIndex = pathComponents.index(buildType) - if buildTypeIndex == 0 or pathComponents[buildTypeIndex -1] != 'bin': - continue - - logging.info('Using "{}"'.format(fullPath)) - unitTestLibraries.append(fullPath) - except ValueError: - pass - - # Run Unit tests - if len(unitTestLibraries) == 0: - logging.error('No Unit test libraries were found') - return ReturnCode.CONFIG_ERROR - - cmd = [] - - if os.name == 'posix': - cmd.append('mono') - - cmd.extend([nunitConsolePath, '-nologo']) - - if len(parsedArgs.nunit_console_extra_args) > 0: - cmd.extend(parsedArgs.nunit_console_extra_args) - - cmd.extend(unitTestLibraries) - logging.info('Running "{}"'.format(cmd)) - exitCode = subprocess.call(cmd) - if exitCode != 0: - logging.error('FAILED!') - return ReturnCode.RUN_ERROR - else: - logging.info('Succeeded') - - return ReturnCode.SUCCESS - - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) +#!/usr/bin/env python +""" +This is a simple script to invoke nunit-console.exe +on Windows or Linux on all UnitTest libraries. +""" +import argparse +import logging +import os +import subprocess +import sys + +class ReturnCode: + SUCCESS = 0 + CONFIG_ERROR = 1 + RUN_ERROR = 2 + + +def main(args): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('BuildType', choices=['Release', 'Debug'], + help='Build type of unit test libraries') + parser.add_argument('-l','--log-level', + choices=['critical', 'error', 'warning', 'info', 'debug'], + default='info', + dest='log_level', + help='Logging level. Default %(default)s') + parser.add_argument('--nunit-console-path', default='', + help='Path to nunit-console tool. If not set the script will try to guess its location', + dest='nunit_console_path' + ) + parser.add_argument('-e', '--nunit-console-extra-args', action='append', + help='Pass extra arguments to nunit-console. This can be used multiple times', + default=[], + dest='nunit_console_extra_args' + ) + parser.add_argument('--no-progress', + action='store_true', + dest='no_progress', + help='Suppress nunit-console progress information') + + + parsedArgs = parser.parse_args(args) + logging.basicConfig(level=getattr(logging, parsedArgs.log_level.upper())) + buildType=parsedArgs.BuildType + + logging.info('Build type is {}'.format(buildType)) + + if parsedArgs.no_progress: + parsedArgs.nunit_console_extra_args.append('-nodots') + + logging.info('Extra arguments to nunit-console "{}"'.format(parsedArgs.nunit_console_extra_args)) + + UnitTestDirRoot = os.path.dirname(os.path.abspath(__file__)) + + # Find nunit-console.exe + if parsedArgs.nunit_console_path == "": + # Try to guess where the tool is + nunitConsolePath = os.path.join(os.path.join(UnitTestDirRoot,'..'), + "packages", + "NUnit.Runners.2.6.3", + "tools", + "nunit-console.exe" + ) + # Mono needs the path to be absolute + nunitConsolePath = os.path.abspath(nunitConsolePath) + else: + nunitConsolePath = parsedArgs.nunit_console_path + + logging.info('Looking for NUnit console at "{}"'.format(nunitConsolePath)) + if not os.path.exists(nunitConsolePath): + logging.error('Could not find NUnit console tool') + return ReturnCode.CONFIG_ERROR + + # Find unit test libraries + unitTestLibraries = [ ] + logging.info('Searching for Unit test libraries in "{}"'.format(UnitTestDirRoot)) + for (dirpath, dirnames, filenames) in os.walk(UnitTestDirRoot): + + # Search current directory for dll with correct suffix + for filename in filenames: + if filename.endswith('Tests.dll'): + logging.debug('Found "{}" checking build type'.format(filename)) + + pathComponents = dirpath.split(os.path.sep) + fullPath = os.path.join(dirpath, filename) + try: + buildTypeIndex = pathComponents.index(buildType) + if buildTypeIndex == 0 or pathComponents[buildTypeIndex -1] != 'bin': + continue + + logging.info('Using "{}"'.format(fullPath)) + unitTestLibraries.append(fullPath) + except ValueError: + pass + + # Run Unit tests + if len(unitTestLibraries) == 0: + logging.error('No Unit test libraries were found') + return ReturnCode.CONFIG_ERROR + + cmd = [] + + if os.name == 'posix': + cmd.append('mono') + + cmd.extend([nunitConsolePath, '-nologo']) + + if len(parsedArgs.nunit_console_extra_args) > 0: + cmd.extend(parsedArgs.nunit_console_extra_args) + + cmd.extend(unitTestLibraries) + logging.info('Running "{}"'.format(cmd)) + exitCode = subprocess.call(cmd) + if exitCode != 0: + logging.error('FAILED!') + return ReturnCode.RUN_ERROR + else: + logging.info('Succeeded') + + return ReturnCode.SUCCESS + + +if __name__ == '__main__': + sys.exit(main(sys.argv[1:])) -- cgit v1.2.3