From 4588948d0c44d0fdca67e9999247939e2f061e41 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 16 Dec 2018 16:10:39 +0100 Subject: [PATCH] Test against PHP Xdebug --- .tests/intra-tests/php-xdebug.sh | 65 ++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 .tests/intra-tests/php-xdebug.sh diff --git a/.tests/intra-tests/php-xdebug.sh b/.tests/intra-tests/php-xdebug.sh new file mode 100755 index 00000000..207d1136 --- /dev/null +++ b/.tests/intra-tests/php-xdebug.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash + +set -e +set -u +set -o pipefail + + +# +# NOTE: Parsing curl to tac to circumnvent "failed writing body" +# https://stackoverflow.com/questions/16703647/why-curl-return-and-error-23-failed-writing-body +# + + +### +### Xdebug available +### + +printf "[TEST] Xdebug available" +# 1st Try +if ! curl -sS localhost/info_php.php | tac | tac | grep -q 'xdebug\.remote_enable'; then + # 2nd Try + sleep 1 + if ! curl -sS localhost/info_php.php | tac | tac | grep -q 'xdebug\.remote_enable'; then + # 3rd Try + sleep 1 + if ! curl -sS localhost/info_php.php | tac | tac | grep -q 'xdebug\.remote_enable'; then + printf "\r[FAIL] Xdebug available\n" + curl -sS localhost/info_php.php | tac | tac | grep 'xdebug' || true + exit 1 + else + printf "\r[OK] Xdebug available (3 rounds)\n" + fi + else + printf "\r[OK] Xdebug available (2 rounds)\n" + fi +else + printf "\r[OK] Xdebug available (1 round)\n" +fi + + +### +### Xdebug default disabled +### + +printf "[TEST] Xdebug default disabled" +# 1st Try +if ! curl -sS localhost/info_php.php | tac | tac | grep 'xdebug\.remote_enable' | grep -Eq 'Off.+Off'; then + # 2nd Try + sleep 1 + if ! curl -sS localhost/info_php.php | tac | tac | grep 'xdebug\.remote_enable' | grep -Eq 'Off.+Off'; then + # 3rd Try + sleep 1 + if ! curl -sS localhost/info_php.php | tac | tac | grep 'xdebug\.remote_enable' | grep -Eq 'Off.+Off'; then + printf "\r[FAIL] Xdebug default disabled\n" + curl -sS localhost/info_php.php | tac | tac | grep 'xdebug' || true + exit 1 + else + printf "\r[OK] Xdebug default disabled (3 rounds)\n" + fi + else + printf "\r[OK] Xdebug default disabled (2 rounds)\n" + fi +else + printf "\r[OK] Xdebug default disabled (1 round)\n" +fi