diff options
-rw-r--r-- | appveyor.yml | 22 | ||||
-rwxr-xr-x | test/DocTests.py | 2 | ||||
-rwxr-xr-x | test/LedgerHarness.py | 7 | ||||
-rwxr-xr-x | test/RegressTests.py | 28 | ||||
-rw-r--r-- | test/regress/981.test | 3 |
5 files changed, 55 insertions, 7 deletions
diff --git a/appveyor.yml b/appveyor.yml index c44dfeb3..94a4fe0f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -16,13 +16,29 @@ build_script: - C:\msys64\usr\bin\bash -lc "pacman --needed --noconfirm -S mingw-w64-i686-boost" - C:\msys64\usr\bin\bash -lc "pacman --needed --noconfirm -S mingw-w64-i686-mpfr" - C:\msys64\usr\bin\bash -lc "pacman --needed --noconfirm -S mingw-w64-i686-cmake" -- C:\msys64\usr\bin\bash -lc "export PATH=/mingw32/bin:$PATH && cd $APPVEYOR_BUILD_FOLDER && cmake -G 'MSYS Makefiles'" -- C:\msys64\usr\bin\bash -lc "export PATH=/mingw32/bin:$PATH && cd $APPVEYOR_BUILD_FOLDER && make -j2" +- C:\msys64\usr\bin\bash -lc "export PATH=/mingw32/bin:$PATH && cd $APPVEYOR_BUILD_FOLDER && + cmake -G 'MSYS Makefiles'" +- C:\msys64\usr\bin\bash -lc "export PATH=/mingw32/bin:$PATH && cd $APPVEYOR_BUILD_FOLDER && + make -j2" after_build: - set LIB_DIR=C:\msys64\mingw32\bin -- 7z a ledger-win.zip %APPVEYOR_BUILD_FOLDER%\ledger.exe %LIB_DIR%\libboost_filesystem-mt.dll %LIB_DIR%\libboost_regex-mt.dll %LIB_DIR%\libboost_system-mt.dll %LIB_DIR%\libgcc_s_dw2-1.dll %LIB_DIR%\libgmp-10.dll %LIB_DIR%\libicudt57.dll %LIB_DIR%\libicuuc57.dll %APPVEYOR_BUILD_FOLDER%\libledger.dll %LIB_DIR%\libstdc++-6.dll %LIB_DIR%\libwinpthread-1.dll +- 7z a ledger-win.zip %APPVEYOR_BUILD_FOLDER%\ledger.exe + %LIB_DIR%\libboost_filesystem-mt.dll + %LIB_DIR%\libboost_regex-mt.dll + %LIB_DIR%\libboost_system-mt.dll + %LIB_DIR%\libgcc_s_dw2-1.dll + %LIB_DIR%\libgmp-10.dll + %LIB_DIR%\libicudt57.dll + %LIB_DIR%\libicuuc57.dll + %LIB_DIR%\libstdc++-6.dll + %LIB_DIR%\libwinpthread-1.dll + %APPVEYOR_BUILD_FOLDER%\libledger.dll artifacts: - path: ledger-win.zip name: Ledger Win32 binaries + +test_script: +- C:\msys64\usr\bin\bash -lc "export MINGW_PREFIX=C:/msys64/mingw32/ CTEST_OUTPUT_ON_FAILURE=1 + PATH=/mingw32/bin:$PATH && cd $APPVEYOR_BUILD_FOLDER && make test" diff --git a/test/DocTests.py b/test/DocTests.py index 7af7abc3..52632a7b 100755 --- a/test/DocTests.py +++ b/test/DocTests.py @@ -192,6 +192,8 @@ class DocTests: error = None try: verify = subprocess.check_output(command, stderr=subprocess.STDOUT) + if sys.platform == 'win32': + verify = verify.replace('\r\n', '\n') valid = (output == verify) or (not error and validation) except subprocess.CalledProcessError, e: error = e.output diff --git a/test/LedgerHarness.py b/test/LedgerHarness.py index 39a31286..63d6a0ec 100755 --- a/test/LedgerHarness.py +++ b/test/LedgerHarness.py @@ -86,6 +86,13 @@ class LedgerHarness: if os.path.isfile(valgrind) and '--verify' in insert: command = valgrind + ' -q ' + command + # If we are running under msys2, use bash to execute the test commands + if 'MSYSTEM' in os.environ: + bash_path = os.environ['MINGW_PREFIX'] + '/../usr/bin/bash.exe' + return Popen([bash_path, '-c', command], shell=False, + close_fds=False, env=env, stdin=PIPE, stdout=PIPE, + stderr=PIPE, cwd=self.sourcepath) + return Popen(command, shell=True, close_fds=True, env=env, stdin=PIPE, stdout=PIPE, stderr=PIPE, cwd=self.sourcepath) diff --git a/test/RegressTests.py b/test/RegressTests.py index a5bab42d..58869edc 100755 --- a/test/RegressTests.py +++ b/test/RegressTests.py @@ -98,6 +98,13 @@ class RegressFile(object): def run_test(self, test): use_stdin = False + if sys.platform == 'win32': + test['command'] = test['command'].replace('/dev/null', 'nul') + # There is no equivalent to /dev/stdout, /dev/stderr, /dev/stdin + # on Windows, so skip tests that require them. + if '/dev/std' in test['command']: + harness.success() + return if test['command'].find("-f ") != -1: test['command'] = '$ledger ' + test['command'] if re.search("-f (-|/dev/stdin)(\s|$)", test['command']): @@ -122,7 +129,16 @@ class RegressFile(object): printed = False index = 0 if test['output'] is not None: - for line in unified_diff(test['output'], harness.readlines(p.stdout)): + process_output = harness.readlines(p.stdout) + expected_output = test['output'] + if sys.platform == 'win32': + process_output = [l.replace('\r\n', '\n').replace('\\', '/') + for l in process_output] + # Replace \ with / in the expected output because the line above + # makes it impossible for the process output to have a \. + expected_output = [l.replace('\\', '/') for l in expected_output] + + for line in unified_diff(expected_output, process_output): index += 1 if index < 3: continue @@ -135,8 +151,14 @@ class RegressFile(object): printed = False index = 0 - if test['error'] is not None: - for line in unified_diff(test['error'], harness.readlines(p.stderr)): + process_error = harness.readlines(p.stderr) + if test['error'] is not None or process_error is not None: + if test['error'] is None: + test['error'] = [] + if sys.platform == 'win32': + process_error = [l.replace('\r\n', '\n').replace('\\', '/') + for l in process_error] + for line in unified_diff(test['error'], process_error): index += 1 if index < 3: continue diff --git a/test/regress/981.test b/test/regress/981.test index 7a6ea5cf..2338b82a 100644 --- a/test/regress/981.test +++ b/test/regress/981.test @@ -24,5 +24,6 @@ Warning: "$FILE", line 15: Metadata check failed for (Project: foo): (value =~ / end test test reg --limit 'payee =~ /XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/' +__ERROR__ +Warning: "$FILE", line 15: Metadata check failed for (Project: foo): (value =~ /^(0ad|ankur|aptosid|archlinux|chakra|debian|debconf14|debconf15|debconf16|drizzle|ffmpeg|ffmpeg|fluxbox|freedesktop|freedombox|gallery|texmacs|haskell|jenkins|libreoffice|madwifi|mingw|openvas|openwrt|openbioinformatics|openembedded|openvoting|osunix|path64|plan9|postgresql|privoxy|smc|helios|tidesdk|tux4kids|yafaray|spi)$/) end test - |