Parcourir la source

Restore AppVeyor build

bel2125 il y a 7 ans
Parent
commit
242ba025ac
3 fichiers modifiés avec 184 ajouts et 386 suppressions
  1. 177 0
      appveyor.yml
  2. 0 386
      appveyor.yml.bkup
  3. 7 0
      test/private.c

+ 177 - 0
appveyor.yml

@@ -22,6 +22,52 @@ environment:
   c_standard: auto
   cxx_standard: auto
   matrix:
+    # Use default values
+    - id: Default-x86
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: NO
+      enable_ssl: YES
+      enable_websockets: NO
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    - id: Default-x64
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: NO
+      enable_ssl: YES
+      enable_websockets: NO
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+    # Use default values
+    - id: Full-x86
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    - id: Full-x64
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
     # Debug builds
     - id: Full-x86-Debug
       compiler: msvc-19-seh
@@ -45,6 +91,137 @@ environment:
       no_caching: NO
       configuration: Debug
       platform: x64
+    # Minimum settings
+    - id: Minimal-x86
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: YES
+      enable_ipv6: NO
+      enable_ssl: NO
+      enable_websockets: NO
+      no_cgi: YES
+      no_caching: YeS
+      configuration: Release
+      platform: x86
+    - id: Minimal-x64
+      compiler: msvc-19-seh
+      build_shared: NO
+      no_files: YES
+      enable_ipv6: NO
+      enable_ssl: NO
+      enable_websockets: NO
+      no_cgi: YES
+      no_caching: YeS
+      configuration: Release
+      platform: x64
+    # Test shared and debug build
+    - id: Shared-default-x86
+      compiler: msvc-19-seh
+      build_shared: YES
+      no_files: NO
+      enable_ipv6: NO
+      enable_ssl: YES
+      enable_websockets: NO
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    - id: Shared-default-x64
+      compiler: msvc-19-seh
+      build_shared: YES
+      no_files: NO
+      enable_ipv6: NO
+      enable_ssl: YES
+      enable_websockets: NO
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+    # MinGW
+    - id: Full-GCC-x64
+      compiler: gcc-5.1.0-posix
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+    # Visual Studio 2010
+    - id: Full-VS2010-x86
+      compiler: msvc-16-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    # Visual Studio 2012
+    - id: Full-VS2012-x86
+      compiler: msvc-17-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    # Visual Studio 2013
+    - id: Full-VS2013-x86
+      compiler: msvc-18-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+    - id: Full-VS2013-x64
+      compiler: msvc-18-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+    # Visual Studio 2015 is default
+    # Visual Studio 2017 is not yet default
+    - id: Full-VS2017-x86
+      compiler: msvc-20-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x86
+      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+    - id: Full-VS2017-x64
+      compiler: msvc-20-seh
+      build_shared: NO
+      no_files: NO
+      enable_ipv6: YES
+      enable_ssl: YES
+      enable_websockets: YES
+      no_cgi: NO
+      no_caching: NO
+      configuration: Release
+      platform: x64
+      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
 
 
 install:

+ 0 - 386
appveyor.yml.bkup

@@ -1,386 +0,0 @@
-version: '{build}'
-
-
-build:
-# no automatic build in script mode
-
-
-skip_commits:
-  # Builds just testing something on Travis CI don't need to be 
-  # done on AppVeyor
-  message: /\[Travis\]/
-  # Dont build, if only documentation was changed
-  files:
-  - '**/*.md'
-
-
-environment:
-  enable_cxx: NO
-  enable_ssl_dynamic_loading: YES
-  enable_lua: NO
-  enable_lua_shared: NO
-  c_standard: auto
-  cxx_standard: auto
-  matrix:
-    # Use default values
-    - id: Default-x86
-      compiler: msvc-19-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: NO
-      enable_ssl: YES
-      enable_websockets: NO
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x86
-    - id: Default-x64
-      compiler: msvc-19-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: NO
-      enable_ssl: YES
-      enable_websockets: NO
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x64
-    # Use default values
-    - id: Full-x86
-      compiler: msvc-19-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x86
-    - id: Full-x64
-      compiler: msvc-19-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x64
-    # Debug builds
-    - id: Full-x86-Debug
-      compiler: msvc-19-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Debug
-      platform: x86
-    - id: Full-x64-Debug
-      compiler: msvc-19-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Debug
-      platform: x64
-    # Minimum settings
-    - id: Minimal-x86
-      compiler: msvc-19-seh
-      build_shared: NO
-      no_files: YES
-      enable_ipv6: NO
-      enable_ssl: NO
-      enable_websockets: NO
-      no_cgi: YES
-      no_caching: YeS
-      configuration: Release
-      platform: x86
-    - id: Minimal-x64
-      compiler: msvc-19-seh
-      build_shared: NO
-      no_files: YES
-      enable_ipv6: NO
-      enable_ssl: NO
-      enable_websockets: NO
-      no_cgi: YES
-      no_caching: YeS
-      configuration: Release
-      platform: x64
-    # Test shared and debug build
-    - id: Shared-default-x86
-      compiler: msvc-19-seh
-      build_shared: YES
-      no_files: NO
-      enable_ipv6: NO
-      enable_ssl: YES
-      enable_websockets: NO
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x86
-    - id: Shared-default-x64
-      compiler: msvc-19-seh
-      build_shared: YES
-      no_files: NO
-      enable_ipv6: NO
-      enable_ssl: YES
-      enable_websockets: NO
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x64
-    # MinGW
-    - id: Full-GCC-x64
-      compiler: gcc-5.1.0-posix
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x64
-    # Visual Studio 2010
-    - id: Full-VS2010-x86
-      compiler: msvc-16-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x86
-    # Visual Studio 2012
-    - id: Full-VS2012-x86
-      compiler: msvc-17-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x86
-    # Visual Studio 2013
-    - id: Full-VS2013-x86
-      compiler: msvc-18-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x86
-    - id: Full-VS2013-x64
-      compiler: msvc-18-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x64
-    # Visual Studio 2015 is default
-    # Visual Studio 2017 is not yet default
-    - id: Full-VS2017-x86
-      compiler: msvc-20-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x86
-      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
-    - id: Full-VS2017-x64
-      compiler: msvc-20-seh
-      build_shared: NO
-      no_files: NO
-      enable_ipv6: YES
-      enable_ssl: YES
-      enable_websockets: YES
-      no_cgi: NO
-      no_caching: NO
-      configuration: Release
-      platform: x64
-      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
-
-
-install:
-  # Derive some extra information
-  - set build_type=%configuration%
-  - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set "compiler_name=%%a")
-  - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set "compiler_version=%%b")
-  - for /f "tokens=1-3 delims=-" %%a in ("%compiler%") do (@set "compiler_threading=%%c")
-  - if "%platform%"=="x64" (set arch=x86_64)
-  - if "%platform%"=="x86" (set arch=i686)
-  # Download the specific version of MinGW
-  - if "%compiler_name%"=="gcc" (@set "mingw_output_folder=C:\mingw-builds")
-  - if "%compiler_name%"=="gcc" (
-      @for /f %%a in (
-        'call mingw.cmd
-          /version "%compiler_version%"
-          /arch "%arch%"
-          /threading "%compiler_threading%"
-          "%mingw_output_folder%"'
-      ) do @set "compiler_path=%%a"
-    )
-  - if "%compiler_name%"=="gcc" (@set "mingw_log_folder=%mingw_output_folder%\logs")
-  - if exist "%mingw_log_folder%" @for /f %%f in ('dir /b /oD /tc "%mingw_log_folder%"') do @set "mingw_log_file=%mingw_log_folder%\%%f"
-  - if exist "%mingw_log_file%" powershell Push-AppveyorArtifact "%mingw_log_file%" -FileName mingw-download.log
-  # Get OpenSSL
-  #
-  # OpenSSL should already be installed, according to
-  # - http://help.appveyor.com/discussions/questions/1132-openssl-installation-issues
-  # - https://github.com/appveyor/ci/issues/576
-  #
-  - cmd: set PATH=%PATH%;C:\OpenSSL-Win32;C:\OpenSSL-Win64
-  - dir C:\OpenSSL-Win32
-  - dir C:\OpenSSL-Win64
-  - path
-
-
-before_build:
-  # Remove sh.exe from the path otherwise CMake will complain:
-  # "sh.exe was found in your PATH, here: C:/Program Files/Git/usr/bin/sh.exe"
-  # and the MinGW build will not work (the Visual Studio build does not care).
-  # See http://help.appveyor.com/discussions/problems/3193-cmake-building-for-mingw-issue-with-git-shexe
-  # The entire directory containing sh.exe could be removed from the PATH environment:
-  # - set PATH=%PATH:C:\Program Files\Git\usr\bin;=%
-  # However, this will also remove all other programs in this directory from the PATH.
-  # In particular "patch" is still required.
-  # So, just rename sh.exe:
-  - ren "C:\Program Files\Git\usr\bin\sh.exe" _sh.exe
-  # Set up mingw commands
-  - if "%compiler_name%"=="gcc" (set "generator=MinGW Makefiles")
-  - if "%compiler_name%"=="gcc" (set "build=mingw32-make -j4")
-  - if "%compiler_name%"=="gcc" (set "test=mingw32-make test")
-  # MSVC specific commands
-  # Note: The minimum version officially supported for CivetWeb is VS2010. Older ones might work or not.
-  - if "%compiler_version%"=="14" (set "vs_version=8" & set "vs_year=2005")
-  - if "%compiler_version%"=="15" (set "vs_version=9" & set "vs_year=2008")
-  - if "%compiler_version%"=="16" (set "vs_version=10" & set "vs_year=2010")
-  - if "%compiler_version%"=="17" (set "vs_version=11" & set "vs_year=2012")
-  - if "%compiler_version%"=="18" (set "vs_version=12" & set "vs_year=2013")
-  - if "%compiler_version%"=="19" (set "vs_version=14" & set "vs_year=2015")
-  - if "%compiler_version%"=="20" (set "vs_version=15" & set "vs_year=2017")
-  - if "%compiler_name%"=="msvc" (set "generator=Visual Studio %vs_version% %vs_year%")
-  - if "%compiler_name%"=="msvc" (
-      if "%platform%"=="x64" (
-        set "generator=%generator% Win64"
-      )
-    )
-  - if %compiler_version% gtr 9 (set platform=%platform:x86=Win32%)
-  - if "%compiler_name%"=="msvc" (set "msbuild_opts=/clp:OnlyErrors;OnlyWarnings /nologo /m /v:m")
-  - if "%compiler_name%"=="msvc" (set "build=msbuild %msbuild_opts% /p:Configuration=%configuration% /p:Platform=%platform% civetweb.sln")
-  - if "%compiler_name%"=="msvc" (set "test=msbuild %msbuild_opts% RUN_TESTS.vcxproj")
-  # Add the compiler path if needed
-  - if not "%compiler_path%"=="" (set "PATH=%PATH%;%compiler_path%")
-  # git bash conflicts with MinGW makefiles
-  - if "%generator%"=="MinGW Makefiles" (set "PATH=%PATH:C:\Program Files (x86)\Git\bin=%")
-  # Useful locations
-  - set "source_path=%cd%"
-  - set "output_path=%source_path%\output"
-  - set "build_path=%output_path%\build"
-  - set "install_path=%output_path%\install"
-  - set "third_party_dir=C:\third-party"
-  # Check some settings of the build server
-  - ver
-  - cd
-  - dir
-  - ipconfig /all
-  # Generate the build scripts with CMake
-  - mkdir "%build_path%"
-  - cd "%build_path%"
-  - cmake --version
-  - appveyor AddMessage -Category Information "Generating '%generator%'"
-  - cmake
-    -G "%generator%"
-    -DCMAKE_BUILD_TYPE=%build_type%
-    -DBUILD_SHARED_LIBS=%build_shared%
-    -DCIVETWEB_SERVE_NO_FILES=%no_files%
-    "-DCIVETWEB_THIRD_PARTY_DIR=%third_party_dir:\=\\%"
-    -DCIVETWEB_ENABLE_THIRD_PARTY_OUTPUT=YES
-    -DCIVETWEB_ENABLE_SSL=%enable_ssl%
-    -DCIVETWEB_DISABLE_CGI=%no_cgi%
-    -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=%enable_ssl_dynamic_loading%
-    -DCIVETWEB_ENABLE_WEBSOCKETS=%enable_websockets%
-    -DCIVETWEB_ENABLE_CXX=%enable_cxx%
-    -DCIVETWEB_ENABLE_LUA=%enable_lua%
-    -DCIVETWEB_ENABLE_LUA_SHARED=%enable_lua_shared%
-    -DCIVETWEB_DISABLE_CACHING=%no_caching%
-    -DCIVETWEB_C_STANDARD=%c_standard%
-    -DCIVETWEB_CXX_STANDARD=%cxx_standard%
-    "%source_path%"
-  - powershell Push-AppveyorArtifact CMakeCache.txt
-  - cd "%source_path%"
-
-build_script:
-  - cd
-  - cd "%build_path%"
-  - appveyor AddMessage -Category Information "Build command '%build%'"
-  - cmd /c "%build%"
-  - cd "%source_path%"
-
-test_script:
-  - cd "%build_path%"
-  - appveyor AddMessage -Category Information "Test command '%build%'"
-  - set CTEST_OUTPUT_ON_FAILURE=1
-  - cmd /c "%test%"
-  - cd "%source_path%"
-
-  - set "output_path=%source_path%\output"
-  - set "build_path=%output_path%\build"
-  - set "install_path=%output_path%\install"
-  - set "third_party_dir=C:\third-party"
-
-after_test:
-  - echo "Current directory:"
-  - cd
-  - dir
-  - md dist
-  - if "%build_type%"=="Release" (cmake "-DCMAKE_INSTALL_PREFIX=%install_path%" -P "%build_path%/cmake_install.cmake")
-  - dir dist\
-  - echo "Output directory:"
-  - dir %output_path%
-  - echo "Build directory:"
-  - dir %build_path%
-  - if "%build_type%"=="Release" (echo "Install directory:")
-  - if "%build_type%"=="Release" (dir %install_path%)
-  - if "%build_type%"=="Release" (dir %install_path%\bin)
-  - if "%build_type%"=="Release" (dir %install_path%\include)
-  - if "%build_type%"=="Release" (dir %install_path%\lib)
-  - if "%build_type%"=="Release" (copy "%install_path%"\include dist\)
-  - if "%build_type%"=="Release" (copy "%install_path%"\bin\*.exe dist\)
-  - echo "Dist directory:"
-  - dir dist\
-
-matrix:
-  fast_finish: false
-
-cache:
-  - C:\mingw-builds -> mingw.cmd
-  - C:\third-party -> **\CMakeLists.txt
-  - C:\ssl
-
-artifacts:
-  - path: dist\*
-

+ 7 - 0
test/private.c

@@ -494,6 +494,13 @@ START_TEST(test_mg_vsnprintf)
 	int is_trunc;
 
 #if defined(_WIN32)
+	/* If the string is truncated, mg_snprintf calls mg_cry.
+	 * If DEBUG is defined, mg_cry calls DEBUG_TRACE.
+	 * In DEBUG_TRACE_FUNC, flockfile(stdout) is called.
+	 * For Windows, flockfile/funlockfile calls Enter-/
+	 * LeaveCriticalSection(&global_log_file_lock).
+	 * So, we need to initialize global_log_file_lock:
+	 */
 	InitializeCriticalSection(&global_log_file_lock);
 #endif