Update phpunit.bat sample script and setup_conf.sh (#28307)

# Update phpunit.bat sample script and setup_conf.sh

- setup_conf.sh - Added caching feature;
- phpunit.bat - Example updated based on experience with php web server
This commit is contained in:
MDW 2024-02-20 23:02:59 +01:00 committed by GitHub
parent 7dd9a448cb
commit b343181789
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 128 additions and 28 deletions

View File

@ -1,6 +1,76 @@
@ECHO OFF
REM SAMPLE WINDOWS SCRIPT TO START TESTS
REM
REM CURRENTLY THIS SCRIPT MUST BE LOCATED AT THE ROOT OF THE PROJECT.
REM A copy of phpunit-9.5.phar is required
SET OPEN_BASEDIR=%~dp0
c:\wamp64\bin\php\php7.4.33\php -dopen_basedir=%OPEN_BASEDIR% .\phpunit-9.5.phar -d memory_limit=-1 -c test\phpunit\phpunittest.xml test\phpunit\AllTests.php
SET DD_TRACE_CLI_ENABLED=1
SET DD_TRACE_CLI_LOG_FILE=%~dp0/trace.log
SET PHP=c:\wamp64\bin\php\php7.4.33\php
REM c:\wamp64\bin\php\php7.4.33\php -dopen_basedir=%OPEN_BASEDIR% .\phpunit-9.5.phar -d memory_limit=-1 -c test\phpunit\phpunittest.xml test\phpunit\AllTests.php --filter FilesLibTest --migrate-configuration
REM Example: phpunit.bat test/phpunit/FilesLibTest.php --filter FilesLibTest::testDolDirMove
REM
REM The DOMAIN/Port value should be the same as in htdocs/conf/conf.php
REM (This is only needed if did not set up another server locally
REM for your test installation database).
SET PHPSERVER_DOMAIN_PORT=127.0.0.1:80
SET PHPSERVER_LOG=%~dp0/php_serv.log
GOTO :START
REM The error handler
:ERROR_HANDLER
echo An error occurred. Stop php server
taskkill /F /PID %php_pid%
exit /b 1
:START
start /B php -S %PHPSERVER_DOMAIN_PORT% -t htdocs > %PHPSERVER_LOG% 2>&1
for /F "tokens=2 delims=," %%i in ('tasklist /FI "IMAGENAME eq php.exe" /FO CSV /NH') do (
set "php_pid=%%~i"
goto :FOUND_PID
)
:FOUND_PID
echo "Server PID: %php_pid%"
curl "http://%PHPSERVER_DOMAIN_PORT%"
SET MEMOPT=-d memory-limit=-1
SET CONFOPT=-c test\phpunit\phpunittest.xml
SET TESTS=test\phpunit\AllTests.php
setlocal enabledelayedexpansion
for %%i in (%*) do (
set "f=%%i"
if "!f:~0,12!"=="memory-limit" (
SET MEMOPT=""
goto :continue
)
if "%%i"=="-c" (
SET CONFOPT=""
goto :continue
)
if "!f:~-4!"==".php" (
set TESTS=""
goto :continue
)
:continue
REM NEEDED FOR CONTINUE
)
%PHP% -d display_errors=on -dopen_basedir=%OPEN_BASEDIR% .\phpunit-9.5.phar %MEMOPT% %CONFOPT% %TESTS% %*
REM c:\wamp64\bin\php\php7.4.33\php -dopen_basedir=%OPEN_BASEDIR% .\phpunit-9.5.phar -d memory_limit=-1 -c test\phpunit\phpunittest.xml test\phpunit\SecurityTest.php
REM c:\wamp64\bin\php\php7.4.33\php -dopen_basedir=%OPEN_BASEDIR% .\phpunit-9.5.phar -d memory_limit=-1 -c test\phpunit\phpunittest.xml
REM c:\wamp64\bin\php\php7.4.33\php -dopen_basedir=%OPEN_BASEDIR% .\phpunit-9.5.phar -d memory_limit=-1 test\phpunit\AllTests.php --filter FilesLibTest
taskkill /F /PID %php_pid%

View File

@ -4,10 +4,12 @@
TRAVIS_BUILD_DIR=${TRAVIS_BUILD_DIR:=$(realpath "$(dirname "$0")/../../..")}
MYSQL=${MYSQL:=mysql}
MYSQLDUMP=${MYSQLDUMP:="${MYSQL}dump"}
DB=${DB:=mariadb}
DB_ROOT=${DB_ROOT:=root}
DB_PASS=${DB_PASS:=}
DB_CACHE_FILE="${TRAVIS_BUILD_DIR}/db_init.sql"
TRAVIS_DOC_ROOT_PHP="${TRAVIS_DOC_ROOT_PHP:=$TRAVIS_BUILD_DIR/htdocs}"
TRAVIS_DATA_ROOT_PHP="${TRAVIS_DATA_ROOT_PHP:=$TRAVIS_BUILD_DIR/documents}"
@ -23,6 +25,18 @@ else
fi
CONF_FILE=${CONF_FILE:=${TRAVIS_BUILD_DIR}/htdocs/conf/conf.php}
function save_db_cache() (
set -x
rm "${DB_CACHE_FILE}".md5 2>/dev/null
echo "Saving DB to cache file '${DB_CACHE_FILE}'"
${SUDO} "${MYSQLDUMP}" -u "$DB_ROOT" -h 127.0.0.1 $PASS_OPT travis \
--hex-blob --lock-tables=false --skip-add-locks \
| sed -e 's/DEFINER=[^ ]* / /' > ${DB_CACHE_FILE}
echo "${sum}" > "${DB_CACHE_FILE}".md5
set +x
)
if [ -r "${CONF_FILE}" ] ; then
echo "'${CONF_FILE} exists, not overwriting!"
@ -55,6 +69,7 @@ else
echo
fi
load_cache=0
echo "Setting up database '$DB'"
if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ] || [ "$DB" = 'postgresql' ]; then
echo "MySQL stop"
@ -71,6 +86,7 @@ if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ] || [ "$DB" = 'postgresql' ]; the
PASS_OPT="'-password=${DB_PASS}'"
fi
echo "MySQL set root password"
if [ 1 = 1 ] ; then
CMDS=( \
""
@ -110,8 +126,20 @@ if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ] || [ "$DB" = 'postgresql' ]; the
echo "MySQL flush"
${SUDO} "${MYSQL}" -u "$DB_ROOT" -h 127.0.0.1 $PASS_OPT -e 'FLUSH PRIVILEGES;'
echo "MySQL load sql"
${SUDO} "${MYSQL}" --force -u "$DB_ROOT" -h 127.0.0.1 $PASS_OPT -D travis < ${TRAVIS_BUILD_DIR}/dev/initdemo/mysqldump_dolibarr_3.5.0.sql | tee $TRAVIS_BUILD_DIR/initial_350.log
sum=$(find "${TRAVIS_BUILD_DIR}/htdocs/install" -type f -exec md5sum {} + | LC_ALL=C sort | md5sum)
load_cache=0
if [ -r "$DB_CACHE_FILE".md5 ] && [ -r "$DB_CACHE_FILE" ] && [ -x "$(which "${MYSQLDUMP}")" ] ; then
cache_sum="$(<"$DB_CACHE_FILE".md5)"
[ "$sum" = "$cache_sum" ] && load_cache=1
fi
if [ "$load_cache" = "1" ] ; then
echo "MySQL load cached sql"
${SUDO} "${MYSQL}" --force -u "$DB_ROOT" -h 127.0.0.1 $PASS_OPT -D travis < ${DB_CACHE_FILE} | tee $TRAVIS_BUILD_DIR/db_from_cacheinit.log
else
echo "MySQL load initial sql"
${SUDO} "${MYSQL}" --force -u "$DB_ROOT" -h 127.0.0.1 $PASS_OPT -D travis < ${TRAVIS_BUILD_DIR}/dev/initdemo/mysqldump_dolibarr_3.5.0.sql | tee $TRAVIS_BUILD_DIR/initial_350.log
fi
elif [ "$DB" = 'postgresql' ]; then
echo Install pgsql if run is for pgsql
@ -158,32 +186,33 @@ set +e
echo '$'force_install_prefix=\'llx_\'';'
} > "$INSTALL_FORCED_FILE"
(
cd "${TRAVIS_BUILD_DIR}/htdocs/install" || exit 1
if [ "$load_cache" != "1" ] ; then
(
cd "${TRAVIS_BUILD_DIR}/htdocs/install" || exit 1
VERSIONS=("3.5.0" "3.6.0" "3.7.0" "3.8.0" "3.9.0")
VERSIONS+=("4.0.0")
VERSIONS+=("5.0.0" "6.0.0" "7.0.0" "8.0.0" "9.0.0")
VERSIONS+=("10.0.0" "11.0.0" "12.0.0" "13.0.0" "14.0.0")
VERSIONS+=("15.0.0" "16.0.0" "18.0.0" "19.0.0" "20.0.0")
pVer=${VERSIONS[0]}
for v in "${VERSIONS[@]:1}" ; do
LOGNAME="${TRAVIS_BUILD_DIR}/upgrade${pVer//./}${v//./}"
php upgrade.php "$pVer" "$v" ignoredbversion > "${LOGNAME}.log"
php upgrade2.php "$pVer" "$v" ignoredbversion > "${LOGNAME}-2.log"
php step5.php "$pVer" "$v" ignoredbversion > "${LOGNAME}-3.log"
pVer="$v"
done
VERSIONS=("3.5.0" "3.6.0" "3.7.0" "3.8.0" "3.9.0")
VERSIONS+=("4.0.0")
VERSIONS+=("5.0.0" "6.0.0" "7.0.0" "8.0.0" "9.0.0")
VERSIONS+=("10.0.0" "11.0.0" "12.0.0" "13.0.0" "14.0.0")
VERSIONS+=("15.0.0" "16.0.0" "18.0.0" "19.0.0" "20.0.0")
pVer=${VERSIONS[0]}
for v in "${VERSIONS[@]:1}" ; do
LOGNAME="${TRAVIS_BUILD_DIR}/upgrade${pVer//./}${v//./}"
php upgrade.php "$pVer" "$v" ignoredbversion > "${LOGNAME}.log"
php upgrade2.php "$pVer" "$v" ignoredbversion > "${LOGNAME}-2.log"
php step5.php "$pVer" "$v" ignoredbversion > "${LOGNAME}-3.log"
pVer="$v"
done
${SUDO} "${MYSQL}" --force -u "$DB_ROOT" -h 127.0.0.1 $PASS_OPT -D travis < "${TRAVIS_BUILD_DIR}/htdocs/install/mysql/migration/repair.sql"
${SUDO} "${MYSQL}" --force -u "$DB_ROOT" -h 127.0.0.1 $PASS_OPT -D travis < "${TRAVIS_BUILD_DIR}/htdocs/install/mysql/migration/repair.sql"
{
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_ProductBatch,MAIN_MODULE_SupplierProposal,MAIN_MODULE_STRIPE,MAIN_MODULE_ExpenseReport
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KnowledgeManagement,MAIN_MODULE_EventOrganization,MAIN_MODULE_PARTNERSHIP
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_EmailCollector
} > $TRAVIS_BUILD_DIR/enablemodule.log
)
{
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_ProductBatch,MAIN_MODULE_SupplierProposal,MAIN_MODULE_STRIPE,MAIN_MODULE_ExpenseReport
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KnowledgeManagement,MAIN_MODULE_EventOrganization,MAIN_MODULE_PARTNERSHIP
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_EmailCollector
} > $TRAVIS_BUILD_DIR/enablemodule.log
) && save_db_cache
fi

View File

@ -316,6 +316,7 @@ $usercanread = (($user->hasRight('stock', 'mouvement', 'lire')));
* The hook contaxt thirdpartycard has been renamed thirdpartycontact
* The private array ->status_short, ->statuts and ->status_long are now array ->labelStatusShort and ->labelStatus everywhere.
- New: Add proposals into referer page of thirdparty.
for /F "tokens=2 delims=," %%i in ('tasklist /FI "IMAGENAME eq php.exe" /FO CSV /NH') do (
foreach ($TWeek as $week_number) {
function checkES($IentOfi, $InumCta)
function getFirstDayOfEachWeek($TWeek, $year)