Merged AppVeyor scripts for 'install', 'build' and 'test' into one
diff --git a/appveyor.yml b/appveyor.yml
index 7c2801a..3e5be81 100755
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -65,24 +65,16 @@
      CONFIGURATION: RelWithDebInfo
      DISABLED_TESTS: (StalenessCheckTest)
 
-   #- PROFILE: CYGWIN
-   #  PROFILE_CLASS: CYGWIN
-   #  PLATFORM: x64
-   #  CONFIGURATION: RelWithDebInfo
-   #  DISABLED_TESTS: (ZlibTest|OpenSSLManualInitTest|TNonblockingServerTest)
+   - PROFILE: CYGWIN
+     PROFILE_CLASS: CYGWIN
+     PLATFORM: x64
+     CONFIGURATION: RelWithDebInfo
+     DISABLED_TESTS: (ZlibTest|OpenSSLManualInitTest|TNonblockingServerTest)
 
-install:
-  - cd %APPVEYOR_BUILD_FOLDER%
-  - call build\appveyor\%PROFILE_CLASS%-appveyor-install.bat
-  - refreshenv
 
 build_script:
   - cd %APPVEYOR_BUILD_FOLDER%
-  - call build\appveyor\%PROFILE_CLASS%-appveyor-build.bat
-
-test_script:
-  - cd %APPVEYOR_BUILD_FOLDER%
-  - call build\appveyor\%PROFILE_CLASS%-appveyor-test.bat
+  - call build\appveyor\%PROFILE_CLASS%-appveyor-full.bat
 
 
 # artifact capture disabled as it might increase service cost for little gain:
diff --git a/build/appveyor/CYGWIN-appveyor-build.bat b/build/appveyor/CYGWIN-appveyor-build.bat
deleted file mode 100644
index eded699..0000000
--- a/build/appveyor/CYGWIN-appveyor-build.bat
+++ /dev/null
@@ -1,35 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_build.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-
-SET CMAKEARGS=^
-  -G'%GENERATOR%' ^
-  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
-  -DCMAKE_INSTALL_PREFIX=%INSTDIR% ^
-  -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE" ^
-  -DWITH_JAVA=OFF ^
-  -DWITH_PYTHON=OFF
-
-:: -DCMAKE_CXX_EXTENSIONS=ON ^
-:: -DCMAKE_CXX_STANDARD=11 ^
-
-@ECHO ON
-%BASH% -lc "mkdir -p %BUILDDIR% && cd %BUILDDIR% && cmake.exe %SRCDIR% %CMAKEARGS% && cmake --build . --config %CONFIGURATION% && cmake --install . --config %CONFIGURATION%" || EXIT /B
-@ECHO OFF
diff --git a/build/appveyor/CYGWIN-appveyor-full.bat b/build/appveyor/CYGWIN-appveyor-full.bat
new file mode 100644
index 0000000..7f874d9
--- /dev/null
+++ b/build/appveyor/CYGWIN-appveyor-full.bat
@@ -0,0 +1,96 @@
+::
+:: Licensed under the Apache License, Version 2.0 (the "License");
+:: you may not use this file except in compliance with the License.
+:: You may obtain a copy of the License at
+::
+::     http://www.apache.org/licenses/LICENSE-2.0
+::
+:: Unless required by applicable law or agreed to in writing, software
+:: distributed under the License is distributed on an "AS IS" BASIS,
+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+:: See the License for the specific language governing permissions and
+:: limitations under the License.
+::
+
+::
+:: Appveyor script for CYGWIN
+::
+
+::
+:: Installs third party packages we need for a cmake build
+::
+
+@ECHO ON
+SETLOCAL EnableDelayedExpansion
+
+CD build\appveyor || EXIT /B
+
+SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
+SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
+SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
+SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
+
+
+:: compiler and generator detection
+SET COMPILER=gcc
+SET GENERATOR=Unix Makefiles
+
+IF "%PLATFORM%" == "x64" (
+  SET CYGWINROOT=C:\cygwin64
+) ELSE (
+  SET CYGWINROOT=C:\cygwin
+)
+
+IF "%PLATFORM%" == "x64" (
+  SET SETUP=!CYGWINROOT!\setup-x86_64.exe
+) ELSE (
+  SET SETUP=!CYGWINROOT!\setup-x86.exe
+)
+
+SET BASH=!CYGWINROOT!\bin\bash.exe
+SET BUILDDIR=%BUILDDIR:\=/%
+SET BUILDDIR=/cygdrive/c!BUILDDIR:~2!
+SET INSTDIR=%INSTDIR:\=/%
+SET INSTDIR=/cygdrive/c!INSTDIR:~2!
+SET SRCDIR=%SRCDIR:\=/%
+SET SRCDIR=/cygdrive/c!SRCDIR:~2!
+
+
+CALL win_showenv.bat || EXIT /B
+
+::
+:: Install apt-cyg for package management because its easier to use
+:: than Cygwins setup.exe. But both are possible to use.
+::
+
+%BASH% -lc "wget https://rawgit.com/transcode-open/apt-cyg/master/apt-cyg && install apt-cyg /bin && rm -f apt-cyg" || EXIT /B
+%BASH% -lc "apt-cyg update" || EXIT /B
+%BASH% -lc "apt-cyg install unzip xz cmake make bison flex gcc-g++ libboost-devel libevent-devel openssl-devel zlib-devel" || EXIT /B
+
+
+::
+:: Configure and build our software with cmake
+::
+
+SET CMAKEARGS=^
+  -G'%GENERATOR%' ^
+  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
+  -DCMAKE_INSTALL_PREFIX=%INSTDIR% ^
+  -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE" ^
+  -DWITH_JAVA=OFF ^
+  -DWITH_PYTHON=OFF
+
+:: -DCMAKE_CXX_EXTENSIONS=ON ^
+:: -DCMAKE_CXX_STANDARD=11 ^
+
+
+%BASH% -lc "mkdir -p %BUILDDIR% && cd %BUILDDIR% && cmake.exe %SRCDIR% %CMAKEARGS% && cmake --build . --config %CONFIGURATION% && cmake --install . --config %CONFIGURATION%" || EXIT /B
+
+
+::
+:: Execute our tests
+::
+
+SET DISABLED_TESTS_COMMAND=--exclude-regex '%DISABLED_TESTS%'
+
+%BASH% -lc "cd %BUILDDIR% && ctest.exe --build-config %CONFIGURATION% --timeout 300 --extra-verbose %DISABLED_TESTS_COMMAND%" || EXIT /B
diff --git a/build/appveyor/CYGWIN-appveyor-install.bat b/build/appveyor/CYGWIN-appveyor-install.bat
deleted file mode 100644
index 9971c8e..0000000
--- a/build/appveyor/CYGWIN-appveyor-install.bat
+++ /dev/null
@@ -1,35 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Appveyor install script for CYGWIN
-:: Installs third party packages we need for a cmake build
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_install.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-CALL win_showenv.bat || EXIT /B
-
-::
-:: Install apt-cyg for package management because its easier to use
-:: than Cygwins setup.exe. But both are possible to use.
-::
-
-%BASH% -lc "wget https://rawgit.com/transcode-open/apt-cyg/master/apt-cyg && install apt-cyg /bin && rm -f apt-cyg" || EXIT /B
-%BASH% -lc "apt-cyg update" || EXIT /B
-%BASH% -lc "apt-cyg install unzip xz cmake make bison flex gcc-g++ libboost-devel libevent-devel openssl-devel zlib-devel" || EXIT /B
diff --git a/build/appveyor/CYGWIN-appveyor-test.bat b/build/appveyor/CYGWIN-appveyor-test.bat
deleted file mode 100644
index 9a1d75f..0000000
--- a/build/appveyor/CYGWIN-appveyor-test.bat
+++ /dev/null
@@ -1,21 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-CD build\appveyor || EXIT /B
-CALL win_banner_test.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-
-%BASH% -lc "cd %BUILDDIR% && ctest.exe -C %CONFIGURATION% --timeout 300 -VV -E '%DISABLED_TESTS%'" || EXIT /B
diff --git a/build/appveyor/MINGW-appveyor-build.bat b/build/appveyor/MINGW-appveyor-build.bat
deleted file mode 100644
index d7404ae..0000000
--- a/build/appveyor/MINGW-appveyor-build.bat
+++ /dev/null
@@ -1,34 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_build.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-
-SET CMAKEARGS=^
-  -G'%GENERATOR%' ^
-  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
-  -DCMAKE_INSTALL_PREFIX=%INSTDIR% ^
-  -DCMAKE_MAKE_PROGRAM=/mingw%NORM_PLATFORM%/bin/mingw32-make ^
-  -DCMAKE_C_COMPILER=/mingw%NORM_PLATFORM%/bin/gcc.exe ^
-  -DCMAKE_CXX_COMPILER=/mingw%NORM_PLATFORM%/bin/g++.exe ^
-  -DOPENSSL_ROOT_DIR=/mingw%NORM_PLATFORM% ^
-  -DWITH_PYTHON=OFF
-
-@ECHO ON
-%BASH% -lc "mkdir -p %BUILDDIR% && cd %BUILDDIR% && cmake.exe %SRCDIR% %CMAKEARGS% && cmake --build . --config %CONFIGURATION% && cmake --install . --config %CONFIGURATION%" || EXIT /B
-@ECHO OFF
diff --git a/build/appveyor/MINGW-appveyor-full.bat b/build/appveyor/MINGW-appveyor-full.bat
new file mode 100644
index 0000000..f808c0d
--- /dev/null
+++ b/build/appveyor/MINGW-appveyor-full.bat
@@ -0,0 +1,126 @@
+::
+:: Licensed under the Apache License, Version 2.0 (the "License");
+:: you may not use this file except in compliance with the License.
+:: You may obtain a copy of the License at
+::
+::     http://www.apache.org/licenses/LICENSE-2.0
+::
+:: Unless required by applicable law or agreed to in writing, software
+:: distributed under the License is distributed on an "AS IS" BASIS,
+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+:: See the License for the specific language governing permissions and
+:: limitations under the License.
+::
+
+::
+:: Appveyor script for MINGW on MSYS2
+::
+
+::
+:: Installs third party packages we need for a cmake build
+::
+
+@ECHO ON
+SETLOCAL EnableDelayedExpansion
+
+CD build\appveyor || EXIT /B
+
+SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
+SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
+SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
+SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
+
+
+:: PLATFORM is x86 or x64
+:: NORM_PLATFORM is 32 or 64
+IF "%PLATFORM%" == "x86" (
+    SET NORM_PLATFORM=32
+) ELSE (
+    SET NORM_PLATFORM=64
+)
+
+:: PLATFORM = x86 means MINGWPLAT i686
+:: PLATFORM = x64 means MINGWPLAT x86_64
+IF "%PLATFORM%" == "x86" (
+  SET MINGWPLAT=i686
+) ELSE (
+  SET MINGWPLAT=x86_64
+)
+
+
+:: compiler and generator detection
+SET COMPILER=gcc
+SET GENERATOR=MinGW Makefiles
+
+
+SET BASH=C:\msys64\usr\bin\bash.exe
+!BASH! -lc "sed -i '/export PATH=\/mingw32\/bin/d' ~/.bash_profile && sed -i '/export PATH=\/mingw64\/bin/d' ~/.bash_profile && echo 'export PATH=/mingw%NORM_PLATFORM%/bin:$PATH' >> ~/.bash_profile" || EXIT /B
+
+SET BUILDDIR=%BUILDDIR:\=/%
+SET BUILDDIR=/c!BUILDDIR:~2!
+SET INSTDIR=%INSTDIR:\=/%
+SET INSTDIR=/c!INSTDIR:~2!
+SET SRCDIR=%SRCDIR:\=/%
+SET SRCDIR=/c!SRCDIR:~2!
+
+CALL win_showenv.bat || EXIT /B
+
+
+SET PACKAGES=^
+  base-devel ^
+  mingw-w64-x86_64-toolchain ^
+  bison ^
+  flex ^
+  make ^
+  mingw-w64-%MINGWPLAT%-boost ^
+  mingw-w64-%MINGWPLAT%-cmake ^
+  mingw-w64-%MINGWPLAT%-libevent ^
+  mingw-w64-%MINGWPLAT%-openssl ^
+  mingw-w64-%MINGWPLAT%-toolchain ^
+  mingw-w64-%MINGWPLAT%-zlib
+
+::mingw-w64-%MINGWPLAT%-qt5 : WAY too large (1GB download!) - tested in cygwin builds anyway
+
+:: Upgrade things
+%BASH% -lc "pacman --noconfirm -Syu %IGNORE%" || EXIT /B
+%BASH% -lc "pacman --noconfirm -Su %IGNORE%" || EXIT /B
+%BASH% -lc "pacman --noconfirm --needed -S %PACKAGES%" || EXIT /B
+
+
+:: These instructions are for a manual update of specific package versions.
+:: Fall back to this in case the above does not work anymore (broken upstream).
+:::: Updata the new key
+::%BASH% -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-1~20210213-2-any.pkg.tar.xz" || EXIT /B
+::%BASH% -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-1~20210213-2-any.pkg.tar.xz.sig" || EXIT /B
+::%BASH% -lc "pacman-key --verify msys2-keyring-1~20210213-2-any.pkg.tar.xz.sig" || EXIT /B
+::%BASH% -lc "pacman --noconfirm -U --config <(echo) msys2-keyring-1~20210213-2-any.pkg.tar.xz" || EXIT /B
+:::: Upgrade things
+::%BASH% -lc "pacman --noconfirm -Sy" || EXIT /B
+::%BASH% -lc "pacman --noconfirm -Udd https://repo.msys2.org/msys/x86_64/pacman-5.2.2-5-x86_64.pkg.tar.xz" || EXIT /B
+::%BASH% -lc "pacman --noconfirm --needed -S %PACKAGES%" || EXIT /B
+
+
+::
+:: Configure and build our software with cmake
+::
+
+SET CMAKEARGS=^
+  -G'%GENERATOR%' ^
+  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
+  -DCMAKE_INSTALL_PREFIX=%INSTDIR% ^
+  -DCMAKE_MAKE_PROGRAM=/mingw%NORM_PLATFORM%/bin/mingw32-make ^
+  -DCMAKE_C_COMPILER=/mingw%NORM_PLATFORM%/bin/gcc.exe ^
+  -DCMAKE_CXX_COMPILER=/mingw%NORM_PLATFORM%/bin/g++.exe ^
+  -DOPENSSL_ROOT_DIR=/mingw%NORM_PLATFORM% ^
+  -DWITH_PYTHON=OFF
+
+%BASH% -lc "mkdir -p %BUILDDIR% && cd %BUILDDIR% && cmake.exe %SRCDIR% %CMAKEARGS% && cmake --build . --config %CONFIGURATION% && cmake --install . --config %CONFIGURATION%" || EXIT /B
+
+
+::
+:: Execute our tests
+::
+
+SET DISABLED_TESTS_COMMAND=--exclude-regex '%DISABLED_TESTS%'
+
+%BASH% -lc "cd %BUILDDIR% && ctest.exe --build-config %CONFIGURATION% --timeout 300 --extra-verbose %DISABLED_TESTS_COMMAND%" || EXIT /B
diff --git a/build/appveyor/MINGW-appveyor-install.bat b/build/appveyor/MINGW-appveyor-install.bat
deleted file mode 100644
index 5b8a2d8..0000000
--- a/build/appveyor/MINGW-appveyor-install.bat
+++ /dev/null
@@ -1,59 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Appveyor install script for MINGW on MSYS2
-:: Installs third party packages we need for a cmake build
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_install.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-CALL win_showenv.bat || EXIT /B
-
-SET PACKAGES=^
-  base-devel ^
-  mingw-w64-x86_64-toolchain ^
-  bison ^
-  flex ^
-  make ^
-  mingw-w64-%MINGWPLAT%-boost ^
-  mingw-w64-%MINGWPLAT%-cmake ^
-  mingw-w64-%MINGWPLAT%-libevent ^
-  mingw-w64-%MINGWPLAT%-openssl ^
-  mingw-w64-%MINGWPLAT%-toolchain ^
-  mingw-w64-%MINGWPLAT%-zlib
-
-::mingw-w64-%MINGWPLAT%-qt5 : WAY too large (1GB download!) - tested in cygwin builds anyway
-
-:: Upgrade things
-%BASH% -lc "pacman --noconfirm -Syu %IGNORE%" || EXIT /B
-%BASH% -lc "pacman --noconfirm -Su %IGNORE%" || EXIT /B
-%BASH% -lc "pacman --noconfirm --needed -S %PACKAGES%" || EXIT /B
-
-
-:: These instructions are for a manual update of specific package versions.
-:: Fall back to this in case the above does not work anymore (broken upstream).
-:::: Updata the new key
-::%BASH% -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-1~20210213-2-any.pkg.tar.xz" || EXIT /B
-::%BASH% -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-1~20210213-2-any.pkg.tar.xz.sig" || EXIT /B
-::%BASH% -lc "pacman-key --verify msys2-keyring-1~20210213-2-any.pkg.tar.xz.sig" || EXIT /B
-::%BASH% -lc "pacman --noconfirm -U --config <(echo) msys2-keyring-1~20210213-2-any.pkg.tar.xz" || EXIT /B
-:::: Upgrade things
-::%BASH% -lc "pacman --noconfirm -Sy" || EXIT /B
-::%BASH% -lc "pacman --noconfirm -Udd https://repo.msys2.org/msys/x86_64/pacman-5.2.2-5-x86_64.pkg.tar.xz" || EXIT /B
-::%BASH% -lc "pacman --noconfirm --needed -S %PACKAGES%" || EXIT /B
diff --git a/build/appveyor/MINGW-appveyor-test.bat b/build/appveyor/MINGW-appveyor-test.bat
deleted file mode 100644
index 3dec768..0000000
--- a/build/appveyor/MINGW-appveyor-test.bat
+++ /dev/null
@@ -1,22 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_test.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-
-%BASH% -lc "cd %BUILDDIR% && ctest.exe -C %CONFIGURATION% --timeout 300 -VV -E '%DISABLED_TESTS%'" || EXIT /B
diff --git a/build/appveyor/MSVC-appveyor-build.bat b/build/appveyor/MSVC-appveyor-build.bat
deleted file mode 100644
index 2b400e3..0000000
--- a/build/appveyor/MSVC-appveyor-build.bat
+++ /dev/null
@@ -1,59 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_build.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-MKDIR "%BUILDDIR%" || EXIT /B
-CD "%BUILDDIR%" || EXIT /B
-
-:: When libraries cannot be found, things might have been updated
-:: so uncomment this and submit a pull request to see what's there
-:: now...
-:: DIR C:\Libraries
-:: DIR C:\Libraries\boost_1_69_0\lib*
-:: DIR C:\Libraries\boost_1_68_0\lib*
-:: DIR C:\Libraries\boost_1_67_0\lib*
-:: DIR C:\Libraries\boost_1_66_0\lib*
-:: DIR C:\Libraries\boost_1_65_0\lib*
-:: DIR C:\Libraries\boost_1_64_0\lib*
-:: DIR C:\Libraries\boost_1_63_0\lib*
-:: DIR C:\Libraries\boost_1_62_0\lib*
-:: DIR C:\Libraries\boost_1_61_0\lib*
-:: DIR C:\Libraries\boost_1_60_0\lib*
-
-@ECHO ON
-cmake "%SRCDIR%" ^
-  -G"%GENERATOR%" ^
-  -DBISON_EXECUTABLE="C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_bison.exe" ^
-  -DBOOST_ROOT="%BOOST_ROOT%" ^
-  -DBOOST_LIBRARYDIR="%BOOST_LIBRARYDIR%" ^
-  -DBUILD_SHARED_LIBS="%BUILD_SHARED_LIBS%" ^
-  -DCMAKE_BUILD_TYPE="%CONFIGURATION%" ^
-  -DCMAKE_INSTALL_PREFIX="%INSTDIR%" ^
-  -DFLEX_EXECUTABLE="C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_flex.exe" ^
-  -DLIBEVENT_ROOT="%WIN3P%\libevent-%LIBEVENT_VERSION%-stable" ^
-  -DOPENSSL_ROOT_DIR="%OPENSSL_ROOT%" ^
-  -DOPENSSL_USE_STATIC_LIBS=OFF ^
-  -DZLIB_LIBRARY="%WIN3P%\zlib-inst\lib\zlib%ZLIB_LIB_SUFFIX%.lib" ^
-  -DZLIB_ROOT="%WIN3P%\zlib-inst" ^
-  -DWITH_PYTHON=%WITH_PYTHON% || EXIT /B
-@ECHO OFF
-
-cmake --build . --config "%CONFIGURATION%" || EXIT /B
-
-cmake --install . --config "%CONFIGURATION%" || EXIT /B
diff --git a/build/appveyor/MSVC-appveyor-full.bat b/build/appveyor/MSVC-appveyor-full.bat
new file mode 100644
index 0000000..49a3f94
--- /dev/null
+++ b/build/appveyor/MSVC-appveyor-full.bat
@@ -0,0 +1,196 @@
+::
+:: Licensed under the Apache License, Version 2.0 (the "License");
+:: you may not use this file except in compliance with the License.
+:: You may obtain a copy of the License at
+::
+::     http://www.apache.org/licenses/LICENSE-2.0
+::
+:: Unless required by applicable law or agreed to in writing, software
+:: distributed under the License is distributed on an "AS IS" BASIS,
+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+:: See the License for the specific language governing permissions and
+:: limitations under the License.
+::
+
+::
+:: Appveyor script for MSVC
+::
+
+::
+:: Installs (or builds) third party packages we need
+::
+
+@ECHO ON
+SETLOCAL EnableDelayedExpansion
+
+CD build\appveyor || EXIT /B
+
+SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
+SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
+SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
+SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
+
+
+IF "%PROFILE%" == "MSVC2015" (
+  IF "%PLATFORM%" == "x86" (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 || EXIT /B
+  ) ELSE (
+    CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 || EXIT /B
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 || EXIT /B
+  )
+) ELSE IF "%PROFILE%" == "MSVC2017" (
+  IF "%PLATFORM%" == "x86" (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" || EXIT /B
+  ) ELSE (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" || EXIT /B
+  )
+) ELSE IF "%PROFILE%" == "MSVC2019" (
+  IF "%PLATFORM%" == "x86" (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" || EXIT /B
+  ) ELSE (
+    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" || EXIT /B
+  )
+) ELSE (
+  ECHO Unsupported PROFILE=%PROFILE% or PLATFORM=%PLATFORM%
+  EXIT /B 1
+)
+
+
+:: compiler and generator detection
+IF /i "%PLATFORM%" == "x64" SET GENARCH= Win64
+IF "%PROFILE%" == "MSVC2015" (
+  SET GENERATOR=Visual Studio 14 2015!GENARCH!
+  SET COMPILER=vc140
+) ELSE IF "%PROFILE%" == "MSVC2017" (
+  SET GENERATOR=Visual Studio 15 2017!GENARCH!
+  SET COMPILER=vc141
+) ELSE IF "%PROFILE%" == "MSVC2019" (
+  SET GENERATOR=Visual Studio 16 2019!GENARCH!
+  SET COMPILER=vc142
+) ELSE (
+  ECHO [error] unable to determine the CMake generator and compiler to use from MSVC profile %PROFILE%
+  EXIT /B 1
+)
+
+:: PLATFORM is x86 or x64
+:: NORM_PLATFORM is 32 or 64
+IF "%PLATFORM%" == "x86" (
+    SET NORM_PLATFORM=32
+) ELSE (
+    SET NORM_PLATFORM=64
+)
+
+:: FindBoost needs forward slashes so cmake doesn't see something as an escaped character
+SET BOOST_ROOT=C:/Libraries/boost_%BOOST_VERSION:.=_%
+SET BOOST_LIBRARYDIR=!BOOST_ROOT!/lib%NORM_PLATFORM%-msvc-%COMPILER:~-3,2%.%COMPILER:~-1,1%
+SET OPENSSL_ROOT=C:\OpenSSL-Win%NORM_PLATFORM%
+SET WIN3P=%APPVEYOR_BUILD_FOLDER%\thirdparty
+
+IF "%PYTHON_VERSION%" == "" (
+  SET WITH_PYTHON=OFF
+) ELSE (
+  SET WITH_PYTHON=ON
+  IF /i "%PLATFORM%" == "x64" (SET PTEXT=-x64)
+  SET PATH=C:\Python%PYTHON_VERSION:.=%!PTEXT!\scripts;C:\Python%PYTHON_VERSION:.=%!PTEXT!;!PATH!
+)
+
+IF "%CONFIGURATION%" == "Debug" (SET ZLIB_LIB_SUFFIX=d)
+
+IF NOT "%QT_VERSION%" == "" (
+  IF /i "%PLATFORM%" == "x64" (SET QTEXT=_64)
+  SET PATH=C:\Qt\%QT_VERSION%\%PROFILE%!QTEXT!\bin;!PATH!
+)
+
+
+CALL win_showenv.bat || EXIT /B
+MKDIR "%WIN3P%" || EXIT /B
+
+choco feature enable -n allowGlobalConfirmation || EXIT /B
+
+:: Things to install when NOT running in appveyor:
+IF "%APPVEYOR_BUILD_ID%" == "" (
+    cup -y chocolatey || EXIT /B
+    cinst -y curl || EXIT /B
+    cinst -y 7zip || EXIT /B
+    cinst -y python3 || EXIT /B
+    cinst -y openssl.light || EXIT /B
+)
+
+cinst -y jdk8 || EXIT /B
+cinst -y winflexbison3 || EXIT /B
+
+:: zlib - not available through chocolatey
+CD "%APPVEYOR_SCRIPTS%" || EXIT /B
+call build-zlib.bat || EXIT /B
+
+:: libevent - not available through chocolatey
+CD "%APPVEYOR_SCRIPTS%" || EXIT /B
+call build-libevent.bat || EXIT /B
+
+:: python packages (correct path to pip set above)
+pip.exe ^
+    install backports.ssl_match_hostname ^
+            ipaddress ^
+            six ^
+            tornado ^
+            twisted || EXIT /B
+
+:: Adobe Flex SDK 4.6 for ActionScript
+MKDIR "C:\Adobe\Flex\SDK\4.6" || EXIT /B
+appveyor DownloadFile http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip -FileName C:\Adobe\Flex\SDK\4.6\SDK.zip || EXIT /B
+CD "C:\Adobe\Flex\SDK\4.6" || EXIT /B
+7z x SDK.zip || EXIT /B
+SETX FLEX_HOME "C:\Adobe\Flex\SDK\4.6"
+
+
+::
+:: Configure and build our software with cmake
+::
+
+MKDIR "%BUILDDIR%" || EXIT /B
+CD "%BUILDDIR%" || EXIT /B
+
+:: When libraries cannot be found, things might have been updated
+:: so uncomment this and submit a pull request to see what's there
+:: now...
+:: DIR C:\Libraries
+:: DIR C:\Libraries\boost_1_69_0\lib*
+:: DIR C:\Libraries\boost_1_68_0\lib*
+:: DIR C:\Libraries\boost_1_67_0\lib*
+:: DIR C:\Libraries\boost_1_66_0\lib*
+:: DIR C:\Libraries\boost_1_65_0\lib*
+:: DIR C:\Libraries\boost_1_64_0\lib*
+:: DIR C:\Libraries\boost_1_63_0\lib*
+:: DIR C:\Libraries\boost_1_62_0\lib*
+:: DIR C:\Libraries\boost_1_61_0\lib*
+:: DIR C:\Libraries\boost_1_60_0\lib*
+
+cmake.exe "%SRCDIR%" ^
+  -G"%GENERATOR%" ^
+  -DBISON_EXECUTABLE="C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_bison.exe" ^
+  -DBOOST_ROOT="%BOOST_ROOT%" ^
+  -DBOOST_LIBRARYDIR="%BOOST_LIBRARYDIR%" ^
+  -DBUILD_SHARED_LIBS="%BUILD_SHARED_LIBS%" ^
+  -DCMAKE_BUILD_TYPE="%CONFIGURATION%" ^
+  -DCMAKE_INSTALL_PREFIX="%INSTDIR%" ^
+  -DFLEX_EXECUTABLE="C:\ProgramData\chocolatey\lib\winflexbison3\tools\win_flex.exe" ^
+  -DLIBEVENT_ROOT="%WIN3P%\libevent-%LIBEVENT_VERSION%-stable" ^
+  -DOPENSSL_ROOT_DIR="%OPENSSL_ROOT%" ^
+  -DOPENSSL_USE_STATIC_LIBS=OFF ^
+  -DZLIB_LIBRARY="%WIN3P%\zlib-inst\lib\zlib%ZLIB_LIB_SUFFIX%.lib" ^
+  -DZLIB_ROOT="%WIN3P%\zlib-inst" ^
+  -DWITH_PYTHON=%WITH_PYTHON% || EXIT /B
+
+cmake.exe --build . --config "%CONFIGURATION%" || EXIT /B
+
+cmake.exe --install . --config "%CONFIGURATION%" || EXIT /B
+
+::
+:: Execute our tests
+::
+
+:: Add directories to the path to find DLLs of third party libraries so tests run properly!
+SET PATH=%BOOST_LIBRARYDIR:/=\%;%OPENSSL_ROOT%\bin;%WIN3P%\zlib-inst\bin;%PATH%
+SET DISABLED_TESTS_COMMAND=--exclude-regex '%DISABLED_TESTS%'
+
+ctest.exe --build-config %CONFIGURATION% --timeout 300 --extra-verbose %DISABLED_TESTS_COMMAND% || EXIT /B
diff --git a/build/appveyor/MSVC-appveyor-install.bat b/build/appveyor/MSVC-appveyor-install.bat
deleted file mode 100644
index 509b346..0000000
--- a/build/appveyor/MSVC-appveyor-install.bat
+++ /dev/null
@@ -1,64 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Appveyor install script for MSVC
-:: Installs (or builds) third party packages we need
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_install.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-CALL win_showenv.bat || EXIT /B
-MKDIR "%WIN3P%" || EXIT /B
-
-choco feature enable -n allowGlobalConfirmation || EXIT /B
-
-:: Things to install when NOT running in appveyor:
-IF "%APPVEYOR_BUILD_ID%" == "" (
-    cup -y chocolatey || EXIT /B
-    cinst -y curl || EXIT /B
-    cinst -y 7zip || EXIT /B
-    cinst -y python3 || EXIT /B
-    cinst -y openssl.light || EXIT /B
-)
-
-cinst -y jdk8 || EXIT /B
-cinst -y winflexbison3 || EXIT /B
-
-:: zlib - not available through chocolatey
-CD "%APPVEYOR_SCRIPTS%" || EXIT /B
-call build-zlib.bat || EXIT /B
-
-:: libevent - not available through chocolatey
-CD "%APPVEYOR_SCRIPTS%" || EXIT /B
-call build-libevent.bat || EXIT /B
-
-:: python packages (correct path to pip set in win_setenv.bat)
-pip.exe ^
-    install backports.ssl_match_hostname ^
-            ipaddress ^
-            six ^
-            tornado ^
-            twisted || EXIT /B
-
-:: Adobe Flex SDK 4.6 for ActionScript
-MKDIR "C:\Adobe\Flex\SDK\4.6" || EXIT /B
-appveyor DownloadFile http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip -FileName C:\Adobe\Flex\SDK\4.6\SDK.zip || EXIT /B
-CD "C:\Adobe\Flex\SDK\4.6" || EXIT /B
-7z x SDK.zip || EXIT /B
-SETX FLEX_HOME "C:\Adobe\Flex\SDK\4.6"
diff --git a/build/appveyor/MSVC-appveyor-test.bat b/build/appveyor/MSVC-appveyor-test.bat
deleted file mode 100644
index 654ba5e..0000000
--- a/build/appveyor/MSVC-appveyor-test.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO ON
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_test.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-
-:: Add directories to the path to find DLLs of third party libraries so tests run properly!
-SET PATH=%BOOST_LIBRARYDIR:/=\%;%OPENSSL_ROOT%\bin;%WIN3P%\zlib-inst\bin;%PATH%
-
-CD "%BUILDDIR%" || EXIT /B
-ctest -C %CONFIGURATION% --timeout 300 -VV -E "(%DISABLED_TESTS%)" || EXIT /B
diff --git a/build/appveyor/MSYS-appveyor-build.bat b/build/appveyor/MSYS-appveyor-build.bat
deleted file mode 100644
index 46794ee..0000000
--- a/build/appveyor/MSYS-appveyor-build.bat
+++ /dev/null
@@ -1,48 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_build.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-
-SET BASH=C:\msys64\usr\bin\bash
-SET CMAKE=/c/msys64/mingw64/bin/cmake.exe
-
-@ECHO ON
-SET CMAKEARGS=-G\"%GENERATOR%\" ^
-  -DBoost_DEBUG=ON ^
-  -DBoost_NAMESPACE=libboost ^
-  -DBOOST_INCLUDEDIR=%BOOST_INCLUDEDIR% ^
-  -DBOOST_LIBRARYDIR=%BOOST_LIBRARYDIR% ^
-  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
-  -DCMAKE_C_COMPILER=gcc.exe ^
-  -DCMAKE_CXX_COMPILER=g++.exe ^
-  -DCMAKE_MAKE_PROGRAM=make.exe ^
-  -DCMAKE_INSTALL_PREFIX=%INSTDIR_MSYS% ^
-  -DLIBEVENT_ROOT=%LIBEVENT_ROOT% ^
-  -DOPENSSL_LIBRARIES=%OPENSSL_LIBRARIES% ^
-  -DOPENSSL_ROOT_DIR=%OPENSSL_ROOT% ^
-  -DOPENSSL_USE_STATIC_LIBS=ON ^
-  -DWITH_BOOST_STATIC=ON ^
-  -DWITH_JAVA=OFF ^
-  -DWITH_LIBEVENT=ON ^
-  -DWITH_PYTHON=%WITH_PYTHON% ^
-  -DWITH_SHARED_LIB=OFF ^
-  -DWITH_STATIC_LIB=ON
-
-%BASH% -lc "mkdir %BUILDDIR_MSYS% && cd %BUILDDIR_MSYS% && %CMAKE% %SRCDIR_MSYS% %CMAKEARGS% && %CMAKE% --build . --config %CONFIGURATION% && %CMAKE% --install . --config %CONFIGURATION%" || EXIT /B
-@ECHO OFF
diff --git a/build/appveyor/MSYS-appveyor-full.bat b/build/appveyor/MSYS-appveyor-full.bat
new file mode 100644
index 0000000..082ffdb
--- /dev/null
+++ b/build/appveyor/MSYS-appveyor-full.bat
@@ -0,0 +1,98 @@
+::
+:: Licensed under the Apache License, Version 2.0 (the "License");
+:: you may not use this file except in compliance with the License.
+:: You may obtain a copy of the License at
+::
+::     http://www.apache.org/licenses/LICENSE-2.0
+::
+:: Unless required by applicable law or agreed to in writing, software
+:: distributed under the License is distributed on an "AS IS" BASIS,
+:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+:: See the License for the specific language governing permissions and
+:: limitations under the License.
+::
+
+::
+:: Appveyor script for MSYS
+::
+
+::
+:: Installs third party packages we need for a cmake build
+::
+
+@ECHO ON
+SETLOCAL EnableDelayedExpansion
+
+CD build\appveyor || EXIT /B
+
+SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
+SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
+SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
+SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
+
+
+ECHO Unsupported PROFILE=%PROFILE% or PLATFORM=%PLATFORM%
+EXIT /B 1
+
+
+SET BASH=C:\msys64\usr\bin\bash
+SET CMAKE=/c/msys64/mingw64/bin/cmake.exe
+
+
+CALL win_showenv.bat || EXIT /B
+
+SET PACKAGES=^
+  base-devel ^
+  mingw-w64-x86_64-toolchain ^
+  bison ^
+  flex ^
+  make ^
+  mingw-w64-x86_64-cmake ^
+  mingw-w64-x86_64-libevent ^
+  mingw-w64-x86_64-openssl ^
+  mingw-w64-x86_64-zlib
+
+:: Upgrade things
+%BASH% -lc "pacman --noconfirm -Syu %IGNORE%" || EXIT /B
+%BASH% -lc "pacman --noconfirm -Su %IGNORE%" || EXIT /B
+%BASH% -lc "pacman --noconfirm --needed -S %PACKAGES%" || EXIT /B
+
+
+::
+:: Configure and build our software with cmake
+::
+
+SET CMAKEARGS=^
+  -G'%GENERATOR%' ^
+  -DBoost_DEBUG=ON ^
+  -DBoost_NAMESPACE=libboost ^
+  -DBOOST_INCLUDEDIR=%BOOST_INCLUDEDIR% ^
+  -DBOOST_LIBRARYDIR=%BOOST_LIBRARYDIR% ^
+  -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
+  -DCMAKE_C_COMPILER=gcc.exe ^
+  -DCMAKE_CXX_COMPILER=g++.exe ^
+  -DCMAKE_MAKE_PROGRAM=make.exe ^
+  -DCMAKE_INSTALL_PREFIX=%INSTDIR_MSYS% ^
+  -DLIBEVENT_ROOT=%LIBEVENT_ROOT% ^
+  -DOPENSSL_LIBRARIES=%OPENSSL_LIBRARIES% ^
+  -DOPENSSL_ROOT_DIR=%OPENSSL_ROOT% ^
+  -DOPENSSL_USE_STATIC_LIBS=ON ^
+  -DWITH_BOOST_STATIC=ON ^
+  -DWITH_JAVA=OFF ^
+  -DWITH_LIBEVENT=ON ^
+  -DWITH_PYTHON=%WITH_PYTHON% ^
+  -DWITH_SHARED_LIB=OFF ^
+  -DWITH_STATIC_LIB=ON
+
+%BASH% -lc "mkdir %BUILDDIR% && cd %BUILDDIR% && %CMAKE% %SRCDIR_MSYS% %CMAKEARGS% && %CMAKE% --build . --config %CONFIGURATION% && %CMAKE% --install . --config %CONFIGURATION%" || EXIT /B
+
+
+::
+:: Execute our tests
+::
+
+:: This test randomly fails on mingw; see Jira THRIFT-4106
+SET DISABLED_TESTS=(concurrency_test)
+SET DISABLED_TESTS_COMMAND=--exclude-regex '%DISABLED_TESTS%'
+
+%BASH% -lc "cd %BUILDDIR% && ctest.exe --build-config %CONFIGURATION% --timeout 300 --extra-verbose %DISABLED_TESTS_COMMAND%" || EXIT /B
diff --git a/build/appveyor/MSYS-appveyor-install.bat b/build/appveyor/MSYS-appveyor-install.bat
deleted file mode 100644
index 330b256..0000000
--- a/build/appveyor/MSYS-appveyor-install.bat
+++ /dev/null
@@ -1,42 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Appveyor install script for MSYS
-:: Installs third party packages we need for a cmake build
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_install.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-CALL win_showenv.bat || EXIT /B
-
-SET PACKAGES=^
-  base-devel ^
-  mingw-w64-x86_64-toolchain ^
-  bison ^
-  flex ^
-  make ^
-  mingw-w64-x86_64-cmake ^
-  mingw-w64-x86_64-libevent ^
-  mingw-w64-x86_64-openssl ^
-  mingw-w64-x86_64-zlib
-
-:: Upgrade things
-%BASH% -lc "pacman --noconfirm -Syu %IGNORE%" || EXIT /B
-%BASH% -lc "pacman --noconfirm -Su %IGNORE%" || EXIT /B
-%BASH% -lc "pacman --noconfirm --needed -S %PACKAGES%" || EXIT /B
diff --git a/build/appveyor/MSYS-appveyor-test.bat b/build/appveyor/MSYS-appveyor-test.bat
deleted file mode 100644
index cbe39be..0000000
--- a/build/appveyor/MSYS-appveyor-test.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-SETLOCAL EnableDelayedExpansion
-
-CD build\appveyor || EXIT /B
-CALL win_banner_test.bat || EXIT /B
-CALL win_setenv.bat || EXIT /B
-
-:: randomly fails on mingw; see Jira THRIFT-4106
-SET DISABLED_TESTS=concurrency_test
-
-CD "%BUILDDIR%" || EXIT /B
-%BASH% -lc "cd %BUILDDIR_MSYS% && ctest.exe -C %CONFIGURATION% --timeout 300 -VV -E '(%DISABLED_TESTS%)'" || EXIT /B
diff --git a/build/appveyor/simulate-appveyor.bat b/build/appveyor/simulate-appveyor.bat
index ac229b1..351c3ee 100644
--- a/build/appveyor/simulate-appveyor.bat
+++ b/build/appveyor/simulate-appveyor.bat
@@ -19,7 +19,6 @@
 ::   simulate-appveyor.bat [Debug|Release] [x86|x64] [CYGWIN|MINGW|MSVC201?]
 ::
 
-@ECHO OFF
 SETLOCAL EnableDelayedExpansion
 
 SET APPVEYOR_BUILD_FOLDER=%~dp0..\..
@@ -28,8 +27,4 @@
 SET PROFILE=%3
 
 CD %APPVEYOR_BUILD_FOLDER%
-CALL build\appveyor\%PROFILE_CLASS%-appveyor-install.bat || EXIT /B
-CD %APPVEYOR_BUILD_FOLDER%
-CALL build\appveyor\%PROFILE_CLASS%-appveyor-build.bat || EXIT /B
-CD %APPVEYOR_BUILD_FOLDER%
-CALL build\appveyor\%PROFILE_CLASS%-appveyor-test.bat
+CALL build\appveyor\%PROFILE_CLASS%-appveyor-full.bat || EXIT /B
diff --git a/build/appveyor/win_banner_build.bat b/build/appveyor/win_banner_build.bat
deleted file mode 100644
index 60272f3..0000000
--- a/build/appveyor/win_banner_build.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-:: A visual indicator in a large log helps you locate things when scanning
-:: http://www.patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Build
-
-ECHO/
-ECHO    ___       _ __   __
-ECHO   / _ )__ __(_) /__/ /
-ECHO  / _  / // / / / _  /     @@@ BUILD
-ECHO /____/\_,_/_/_/\_,_/
-ECHO/
diff --git a/build/appveyor/win_banner_install.bat b/build/appveyor/win_banner_install.bat
deleted file mode 100644
index fde3da2..0000000
--- a/build/appveyor/win_banner_install.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-:: A visual indicator in a large log helps you locate things when scanning
-:: http://www.patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Install
-
-ECHO/
-ECHO    ____         __       ____
-ECHO   /  _/__  ___ / /____ _/ / /
-ECHO  _/ // _ \(_-^</ __/ _ \/ / /     @@@ INSTALL
-ECHO /___/_//_/___/\__/\_,_/_/_/
-ECHO/
diff --git a/build/appveyor/win_banner_test.bat b/build/appveyor/win_banner_test.bat
deleted file mode 100644
index 44e2d10..0000000
--- a/build/appveyor/win_banner_test.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-:: A visual indicator in a large log helps you locate things when scanning
-:: http://www.patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Test
-
-ECHO/
-ECHO  ______        __
-ECHO /_  __/__ ___ / /_
-ECHO  / / / -_^|_-^</ __/     @@@ TEST
-ECHO /_/  \__/___/\__/
-ECHO/
diff --git a/build/appveyor/win_setcompiler.bat b/build/appveyor/win_setcompiler.bat
deleted file mode 100644
index d498f41..0000000
--- a/build/appveyor/win_setcompiler.bat
+++ /dev/null
@@ -1,65 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Detect the compiler edition we're building in.
-:: Set the COMPILER environment variable to one of:
-::   gcc   = MinGW / MSYS2 and gcc toolchain
-::   vc100 = Visual Studio 2010
-::   vc110 = Visual Studio 2012
-::   vc120 = Visual Studio 2013
-::   vc140 = Visual Studio 2015
-::   vc141 = Visual Studio 2017
-::
-:: Honors any existing COMPILER environment variable
-::   setting instead of overwriting it, to allow it
-::   to be forced if needed.
-::
-:: Sets ERRORLEVEL to 0 if COMPILER can be determined,
-::                 to 1 if it cannot.
-::
-
-IF DEFINED COMPILER (
-  ECHO [warn ] using existing environment variable COMPILER
-  EXIT /B 0
-)
-
-IF NOT "%PROFILE_CLASS%" == "MSVC" (
-  SET COMPILER=gcc
-) ELSE (
-  CALL :CHECK 16
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc100)
-  CALL :CHECK 17
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc110)
-  CALL :CHECK 18
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc120)
-  CALL :CHECK 19.0
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc140)
-  CALL :CHECK 19.1
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc141)
-  CALL :CHECK 19.2
-  IF !ERRORLEVEL! == 0 (SET COMPILER=vc142)
-)
-
-IF NOT DEFINED COMPILER (
-  ECHO [error] unable to determine the compiler edition
-  EXIT /B 1
-)
-
-ECHO [info ] detected compiler edition    %COMPILER%
-EXIT /B 0
-
-:CHECK
-cl /? 2>&1 | findstr /C:"Version %1%" > nul
-EXIT /B
diff --git a/build/appveyor/win_setenv.bat b/build/appveyor/win_setenv.bat
deleted file mode 100644
index ef664d1..0000000
--- a/build/appveyor/win_setenv.bat
+++ /dev/null
@@ -1,132 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-@ECHO OFF
-
-:: PLATFORM is x86 or x64
-:: NORM_PLATFORM is 32 or 64
-:: MSVCPLAT is x86 or amd64
-IF "%PLATFORM%" == "x86" (
-    SET NORM_PLATFORM=32
-) ELSE (
-    SET NORM_PLATFORM=64
-)
-IF "%PLATFORM%" == "x86" (
-    SET MSVCPLAT=x86
-) ELSE (
-    SET MSVCPLAT=amd64
-)
-
-IF "%PROFILE%" == "MSVC2015" (
-  IF "%PLATFORM%" == "x86" (
-    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 || EXIT /B
-  ) ELSE (
-    CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 || EXIT /B
-    CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 || EXIT /B
-  )
-) ELSE IF "%PROFILE%" == "MSVC2017" (
-  IF "%PLATFORM%" == "x86" (
-    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" || EXIT /B
-  ) ELSE (
-    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" || EXIT /B
-  )
-) ELSE IF "%PROFILE%" == "MSVC2019" (
-  IF "%PLATFORM%" == "x86" (
-    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" || EXIT /B
-  ) ELSE (
-    CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" || EXIT /B
-  )
-) ELSE IF "%PROFILE%" == "MINGW" (
-  REM Supported, nothing special to do here.
-) ELSE IF "%PROFILE%" == "CYGWIN" (
-  REM Supported, nothing special to do here.
-) ELSE (
-  ECHO Unsupported PROFILE=%PROFILE% or PLATFORM=%PLATFORM%
-  EXIT /B 1
-)
-
-CALL win_setcompiler.bat || EXIT /B
-CALL win_setgenerator.bat || EXIT /B
-
-SET APPVEYOR_SCRIPTS=%APPVEYOR_BUILD_FOLDER%\build\appveyor
-SET BUILDDIR=%APPVEYOR_BUILD_FOLDER%\..\build\%PROFILE%\%PLATFORM%
-SET INSTDIR=%APPVEYOR_BUILD_FOLDER%\..\install\%PROFILE%\%PLATFORM%
-SET SRCDIR=%APPVEYOR_BUILD_FOLDER%
-
-
-IF "%PROFILE_CLASS%" == "MSVC" (
-
-  :: FindBoost needs forward slashes so cmake doesn't see something as an escaped character
-  SET BOOST_ROOT=C:/Libraries/boost_%BOOST_VERSION:.=_%
-  SET BOOST_LIBRARYDIR=!BOOST_ROOT!/lib%NORM_PLATFORM%-msvc-%COMPILER:~-3,2%.%COMPILER:~-1,1%
-  SET OPENSSL_ROOT=C:\OpenSSL-Win%NORM_PLATFORM%
-  SET WIN3P=%APPVEYOR_BUILD_FOLDER%\thirdparty
-
-  IF "%PYTHON_VERSION%" == "" (
-    SET WITH_PYTHON=OFF
-  ) ELSE (
-    SET WITH_PYTHON=ON
-    IF /i "%PLATFORM%" == "x64" (SET PTEXT=-x64)
-    SET PATH=C:\Python%PYTHON_VERSION:.=%!PTEXT!\scripts;C:\Python%PYTHON_VERSION:.=%!PTEXT!;!PATH!
-  )
-  IF "%CONFIGURATION%" == "Debug" (SET ZLIB_LIB_SUFFIX=d)
-
-  IF NOT "%QT_VERSION%" == "" (
-    IF /i "%PLATFORM%" == "x64" (SET QTEXT=_64)
-    SET PATH=C:\Qt\%QT_VERSION%\%PROFILE%!QTEXT!\bin;!PATH!
-  )
-
-) ELSE IF "%PROFILE_CLASS%" == "MINGW" (
-
-  :: PLATFORM = x86 means MINGWPLAT i686
-  :: PLATFORM = x64 means MINGWPLAT x86_64
-  IF "%PLATFORM%" == "x86" (
-    SET MINGWPLAT=i686
-  ) ELSE (
-    SET MINGWPLAT=x86_64
-  )
-
-  SET BASH=C:\msys64\usr\bin\bash.exe
-  !BASH! -lc "sed -i '/export PATH=\/mingw32\/bin/d' ~/.bash_profile && sed -i '/export PATH=\/mingw64\/bin/d' ~/.bash_profile && echo 'export PATH=/mingw%NORM_PLATFORM%/bin:$PATH' >> ~/.bash_profile" || EXIT /B
-
-  SET BUILDDIR=%BUILDDIR:\=/%
-  SET BUILDDIR=/c!BUILDDIR:~2!
-  SET INSTDIR=%INSTDIR:\=/%
-  SET INSTDIR=/c!INSTDIR:~2!
-  SET SRCDIR=%SRCDIR:\=/%
-  SET SRCDIR=/c!SRCDIR:~2!
-
-) ELSE IF "%PROFILE_CLASS%" == "CYGWIN" (
-
-  IF "%PLATFORM%" == "x64" (
-    SET CYGWINROOT=C:\cygwin64
-  ) ELSE (
-    SET CYGWINROOT=C:\cygwin
-  )
-
-  IF "%PLATFORM%" == "x64" (
-    SET SETUP=!CYGWINROOT!\setup-x86_64.exe
-  ) ELSE (
-    SET SETUP=!CYGWINROOT!\setup-x86.exe
-  )
-
-  SET BASH=!CYGWINROOT!\bin\bash.exe
-  SET BUILDDIR=%BUILDDIR:\=/%
-  SET BUILDDIR=/cygdrive/c!BUILDDIR:~2!
-  SET INSTDIR=%INSTDIR:\=/%
-  SET INSTDIR=/cygdrive/c!INSTDIR:~2!
-  SET SRCDIR=%SRCDIR:\=/%
-  SET SRCDIR=/cygdrive/c!SRCDIR:~2!
-
-)
diff --git a/build/appveyor/win_setgenerator.bat b/build/appveyor/win_setgenerator.bat
deleted file mode 100644
index 818155b..0000000
--- a/build/appveyor/win_setgenerator.bat
+++ /dev/null
@@ -1,66 +0,0 @@
-::
-:: Licensed under the Apache License, Version 2.0 (the "License");
-:: you may not use this file except in compliance with the License.
-:: You may obtain a copy of the License at
-::
-::     http://www.apache.org/licenses/LICENSE-2.0
-::
-:: Unless required by applicable law or agreed to in writing, software
-:: distributed under the License is distributed on an "AS IS" BASIS,
-:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-:: See the License for the specific language governing permissions and
-:: limitations under the License.
-::
-
-::
-:: Detect the compiler edition we're building in and then
-:: set the GENERATOR environment variable to one of:
-::
-::  Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
-::                                 Optional [arch] can be "Win64" or "ARM".
-::  Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
-::                                 Optional [arch] can be "Win64" or "ARM".
-::  Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
-::                                 Optional [arch] can be "Win64" or "ARM".
-::  Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
-::                                 Optional [arch] can be "Win64" or "ARM".
-::  Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
-::                                 Optional [arch] can be "Win64" or "IA64".
-::  MinGW Makefiles              = Generates makefiles for MinGW
-::  MSYS Makefiles               = Generates makefiles for MSYS
-::  Unix Makefiles               = Generates makefiles for CYGWIN
-::
-:: Honors any existing GENERATOR environment variable
-::   setting instead of overwriting it, to allow it
-::   to be forced if needed.
-::
-:: Sets ERRORLEVEL to 0 if GENERATOR can be determined,
-::                 to 1 if it cannot.
-::
-
-IF DEFINED GENERATOR (
-  ECHO [warn ] using existing environment variable GENERATOR
-) ELSE IF "%PROFILE_CLASS%" == "MINGW" (
-  SET GENERATOR=MinGW Makefiles
-) ELSE IF "%PROFILE_CLASS%" == "CYGWIN" (
-  SET GENERATOR=Unix Makefiles
-) ELSE IF "%PROFILE_CLASS%" == "MSYS" (
-  SET GENERATOR=MSYS Makefiles
-) ELSE IF "%PROFILE_CLASS%" == "MSVC" (
-  IF /i "%PLATFORM%" == "x64" SET GENARCH= Win64
-  IF "%PROFILE%" == "MSVC2015" (
-    SET GENERATOR=Visual Studio 14 2015!GENARCH!
-  ) ELSE IF "%PROFILE%" == "MSVC2017" (
-    SET GENERATOR=Visual Studio 15 2017!GENARCH!
-  ) ELSE IF "%PROFILE%" == "MSVC2019" (
-    SET GENERATOR=Visual Studio 16 2019!GENARCH!
-  ) ELSE (
-    ECHO [error] unable to determine the CMake generator to use from MSVC profile %PROFILE%
-    EXIT /B 1
-  )
-) ELSE (
-  ECHO [error] unable to determine the CMake generator to use from profile %PROFILE%
-  EXIT /B 1
-)
-
-ECHO [info ] using CMake generator        %GENERATOR%