You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.3 KiB
77 lines
2.3 KiB
#!/bin/bash
|
|
# This file updates tests according to the phpunit library used for current php version, or php version in 1st argument.
|
|
# Usage:
|
|
# update-tests - to update tests according to the phpunit library used for current php version.
|
|
# update-tests x.x - to update tests according to the phpunit library used for specific php version x.x, where x.x = 7.0|7.1|7.2|7.3|7.4|8.0|8.1|8.2.
|
|
|
|
# Directory with phpunit tests.
|
|
TEST_DIR="tests"
|
|
|
|
if grep -q Microsoft /proc/version; then
|
|
DEV_MODE=$(cmd.exe /c echo %COMPOSER_DEV_MODE% | sed -nr 's/\r//p')
|
|
else
|
|
DEV_MODE=$COMPOSER_DEV_MODE
|
|
fi
|
|
|
|
if [[ $1 == '' && $DEV_MODE != '1' ]]; then
|
|
# Script works with composer in dev mode only.
|
|
exit 0
|
|
fi
|
|
|
|
if [[ $1 == '' ]]; then
|
|
PHP_VERSION=$(php -v | sed -nr "s/PHP ([^.]*?\.[^.]*?)\..*/\1/p")
|
|
else
|
|
if [[ $1 == 'revert' ]]; then
|
|
# Restore test files to the current branch version.
|
|
git checkout -- $TEST_DIR
|
|
echo "Tests reverted to the initial state."
|
|
exit 0
|
|
fi
|
|
PHP_VERSION=$1
|
|
fi
|
|
|
|
echo "PHP_VERSION: $PHP_VERSION"
|
|
|
|
VERSION_FILE="vendor/phpunit/phpunit/src/Runner/Version.php"
|
|
CURRENT_PHP_UNIT=''
|
|
|
|
RESULT=$(test -f $VERSION_FILE && sed -nr "s/.*new Version.+'(.+\..+)\..*'.*/\1/p" $VERSION_FILE)
|
|
|
|
if [[ $? == 0 ]]; then
|
|
CURRENT_PHP_UNIT=$RESULT
|
|
echo "CURRENT_PHP_UNIT: $CURRENT_PHP_UNIT"
|
|
else
|
|
echo "CURRENT_PHP_UNIT: Not found."
|
|
fi
|
|
|
|
if [[ $PHP_VERSION == '7.0' ]]; then
|
|
PHP_UNIT='6.5'
|
|
elif [[ $PHP_VERSION == '7.1' ]]; then
|
|
PHP_UNIT='7.5'
|
|
elif [[ $PHP_VERSION == '7.2' ]]; then
|
|
PHP_UNIT='8.5'
|
|
elif [[ $PHP_VERSION == '7.3' || $PHP_VERSION == '7.4' || $PHP_VERSION == '8.0' || $PHP_VERSION == '8.1' || $PHP_VERSION == '8.2' ]]; then
|
|
PHP_UNIT='9.5'
|
|
fi
|
|
|
|
if [[ $PHP_UNIT == '' ]]; then
|
|
echo "Wrong PHP version: $PHP_VERSION"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ $1 == '' && $CURRENT_PHP_UNIT == "$PHP_UNIT" ]]; then
|
|
# Do nothing if current version of phpunit is the same as required. Important on CI.
|
|
# Anytime force update available specifying the first argument like 'update-phpunit 7.0'
|
|
echo "Nothing to do with phpunit."
|
|
exit 0
|
|
fi
|
|
|
|
# Restore test files to the current branch version.
|
|
git checkout -- $TEST_DIR
|
|
|
|
if [[ $PHP_UNIT == '6.5' || $PHP_UNIT == '7.5' ]]; then
|
|
echo "Preparing tests for phpunit-$PHP_UNIT"
|
|
find $TEST_DIR -type f -exec sed -i "s/: void / /g" {} \;
|
|
fi
|
|
|
|
exit 0
|
|
|