Перевірка працездатності коду на безлічі версій php, savepearlharbor
Всім доброго часу доби. Днями знадобилося перевірити працездатність 4 варіантів коду на різних версіях PHP (в сумі близько 20). Причому спочатку було зрозуміло що 4 екземплярами справа не обмежиться - в майбутньому подібних тестів передбачається більше. Вручну все це робити дуже втомлює, тому було написано 2 скрипта, якими я б хотів з вами поділитися.
Весь робочий процес з ними відбувається наступним чином. Ви завантажуєте в одну папку всі необхідні версії PHP, виймайте їх і збираєте. Потрібно щоб вийшла наступна структура:
/ Some_dir /.
/some_dir/php-5.1.6
/some_dir/php-5.2.17
/some_dir/php-5.3.1
/ Some_dir / ...
Де php-5.1.6, php-5.2.17 і т. Д. - директорії з відповідними версіями інтерпретатора. Далі туди ж кладете 2 скрипта. Перший - run.php
Як видно з початкових кодів, я спершу виявляти є сусідами з ним директорії PHP по сигнатурі «php-», а потім за допомогою cli / php кожної з них виконує скрипт test.php. Якщо після виконання тестового скрипта в stdout падає рядок з константи «TEST_DONE_STR» - тест пройдений і run.php виведе «php - *. *. * - OK». В іншому випадку - «php - *. *. * - FAILED».
test.php повинен містити код, який вам необхідно перевірити. Він може бути в будь-якому вигляді. Головне, щоб в разі успішної відпрацювання виводилася вищеописана рядок. Для прикладу викладаю вміст одного з моїх тестів:
Приклад виведення run.php:
/ Php $ php run.php
php-4.3.1 - php-cli not found
php-5.2.16 - php-cli not found
php-5.2.17-suhosin - php-cli not found
php-4.3.10 - OK
php-4.4.9 - OK
php-5.0.5 - OK
php-5.1.6 - OK
php-5.1.6-suhosin - FAILED
php-5.2.0 - OK
php-5.2.17 - OK
php-5.2.2 - OK
php-5.2.3 - OK
php-5.2.4 - OK
php-5.2.9 - OK
php-5.3.0 - FAILED
php-5.3.1 - FAILED
php-5.3.10 - FAILED
php-5.3.20 - FAILED
php-5.3.5 - FAILED
Сподіваюся вони будуть вам корисні. Мені вже заощадили купу часу 🙂