test_task.bat 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. @echo off
  2. set NO_INTERACTION=1
  3. set REPORT_EXIT_STATUS=1
  4. set SKIP_IO_CAPTURE_TESTS=1
  5. if /i "%APPVEYOR_REPO_BRANCH:~0,4%" equ "php-" (
  6. set BRANCH=%APPVEYOR_REPO_BRANCH:~4,3%
  7. set STABILITY=stable
  8. ) else (
  9. set BRANCH=master
  10. set STABILITY=staging
  11. )
  12. set DEPS_DIR=%PHP_BUILD_CACHE_BASE_DIR%\deps-%BRANCH%-%PHP_SDK_VS%-%PHP_SDK_ARCH%
  13. if not exist "%DEPS_DIR%" (
  14. echo "%DEPS_DIR%" doesn't exist
  15. exit /b 3
  16. )
  17. rem setup MySQL related exts
  18. set MYSQL_PWD=Password12!
  19. set MYSQL_TEST_PASSWD=%MYSQL_PWD%
  20. set MYSQL_TEST_USER=root
  21. set MYSQL_TEST_HOST=127.0.0.1
  22. set MYSQL_TEST_PORT=3306
  23. set PDO_MYSQL_TEST_USER=%MYSQL_TEST_USER%
  24. set PDO_MYSQL_TEST_PASS=%MYSQL_PWD%
  25. set PDO_MYSQL_TEST_HOST=%MYSQL_TEST_HOST%
  26. set PDO_MYSQL_TEST_PORT=%MYSQL_TEST_PORT%
  27. set PDO_MYSQL_TEST_DSN=mysql:host=%PDO_MYSQL_TEST_HOST%;port=%PDO_MYSQL_TEST_PORT%;dbname=test;user=%PDO_MYSQL_TEST_USER%;password=%MYSQL_PW%
  28. "C:\Program Files\MySql\MySQL Server 5.7\bin\mysql.exe" --user=%MYSQL_TEST_USER% -e "CREATE DATABASE IF NOT EXISTS test"
  29. if %errorlevel% neq 0 exit /b 3
  30. rem setup PostgreSQL related exts
  31. set PGUSER=postgres
  32. set PGPASSWORD=Password12!
  33. rem set PGSQL_TEST_CONNSTR=host=127.0.0.1 dbname=test port=5432 user=postgres password=Password12!
  34. echo ^<?php $conn_str = "host=127.0.0.1 dbname=test port=5432 user=%PGUSER% password=%PGPASSWORD%"; ?^> >> "./ext/pgsql/tests/config.inc"
  35. set PDO_PGSQL_TEST_DSN=pgsql:host=127.0.0.1 port=5432 dbname=test user=%PGUSER% password=%PGPASSWORD%
  36. "C:\Program Files\PostgreSQL\10\bin\createdb.exe" test
  37. if %errorlevel% neq 0 exit /b 3
  38. rem setup ODBC related exts
  39. set ODBC_TEST_USER=sa
  40. set ODBC_TEST_PASS=Password12!
  41. set ODBC_TEST_DSN=Driver={ODBC Driver 13 for SQL Server};Server=(local)\SQL2017;Database=master;uid=%ODBC_TEST_USER%;pwd=%ODBC_TEST_PASS%
  42. set PDOTEST_DSN=odbc:%ODBC_TEST_DSN%
  43. rem prepare for ext/openssl
  44. if "%APPVEYOR%" equ "True" rmdir /s /q C:\OpenSSL-Win32 >NUL 2>NUL
  45. if "%APPVEYOR%" equ "True" rmdir /s /q C:\OpenSSL-Win64 >NUL 2>NUL
  46. mkdir c:\usr\local\ssl
  47. if %errorlevel% neq 0 exit /b 3
  48. copy %DEPS_DIR%\template\ssl\openssl.cnf c:\usr\local\ssl
  49. if %errorlevel% neq 0 exit /b 3
  50. set OPENSSL_CONF=c:\usr\local\ssl\openssl.cnf
  51. rem set OPENSSL_CONF=
  52. rem set SSLEAY_CONF=
  53. rem prepare for Opcache
  54. if "%OPCACHE%" equ "1" set OPCACHE_OPTS=-d opcache.enable=1 -d opcache.enable_cli=1
  55. rem prepare for enchant
  56. mkdir c:\enchant_plugins
  57. if %errorlevel% neq 0 exit /b 3
  58. copy %DEPS_DIR%\bin\libenchant_ispell.dll c:\enchant_plugins
  59. if %errorlevel% neq 0 exit /b 3
  60. copy %DEPS_DIR%\bin\libenchant_myspell.dll c:\enchant_plugins
  61. if %errorlevel% neq 0 exit /b 3
  62. reg add HKEY_CURRENT_USER\SOFTWARE\Enchant\Config /v Module_Dir /t REG_SZ /d c:\enchant_plugins
  63. if %errorlevel% neq 0 exit /b 3
  64. set PHP_BUILD_CACHE_ENCHANT_DICT_DIR=%PHP_BUILD_CACHE_BASE_DIR%\enchant_dict
  65. if not exist "%PHP_BUILD_CACHE_ENCHANT_DICT_DIR%" (
  66. echo Creating %PHP_BUILD_CACHE_ENCHANT_DICT_DIR%
  67. mkdir "%PHP_BUILD_CACHE_ENCHANT_DICT_DIR%"
  68. )
  69. if not exist "%PHP_BUILD_CACHE_ENCHANT_DICT_DIR%\en_US.aff" (
  70. echo Fetching enchant dicts
  71. pushd %PHP_BUILD_CACHE_ENCHANT_DICT_DIR%
  72. del /q *
  73. powershell -Command wget http://windows.php.net/downloads/qa/appveyor/ext/enchant/dict.zip -OutFile dict.zip
  74. unzip dict.zip
  75. del /q dict.zip
  76. popd
  77. )
  78. mkdir %USERPROFILE%\enchant\myspell
  79. copy %PHP_BUILD_CACHE_ENCHANT_DICT_DIR%\* %USERPROFILE%\enchant\myspell
  80. mkdir c:\tests_tmp
  81. set TEST_PHP_JUNIT=c:\junit.out.xml
  82. cd "%APPVEYOR_BUILD_FOLDER%"
  83. nmake test TESTS="%OPCACHE_OPTS% -q --offline --show-diff --show-slow 1000 --set-timeout 120 -g FAIL,XFAIL,BORK,WARN,LEAK,SKIP --temp-source c:\tests_tmp --temp-target c:\tests_tmp"
  84. set EXIT_CODE=%errorlevel%
  85. powershell -Command "$wc = New-Object 'System.Net.WebClient'; $wc.UploadFile('https://ci.appveyor.com/api/testresults/junit/%APPVEYOR_JOB_ID%', 'c:\junit.out.xml')"
  86. exit /b %EXIT_CODE%