From 05bb43d4bfea78e00317796f34555b8a8f6a099b Mon Sep 17 00:00:00 2001 From: Volodymyr Kolesnykov Date: Sat, 1 Jun 2024 12:05:17 +0300 Subject: [PATCH] test: add tests for `xdebug` --- .github/workflows/test-features.yml | 1 + features/test/xdebug/alpine-base.sh | 1 + features/test/xdebug/checks.sh | 17 +++++++++++++++++ features/test/xdebug/scenarios.json | 26 ++++++++++++++++++++++++++ features/test/xdebug/ubuntu-base.sh | 8 ++++++++ 5 files changed, 53 insertions(+) create mode 120000 features/test/xdebug/alpine-base.sh create mode 100755 features/test/xdebug/checks.sh create mode 100644 features/test/xdebug/scenarios.json create mode 100755 features/test/xdebug/ubuntu-base.sh diff --git a/.github/workflows/test-features.yml b/.github/workflows/test-features.yml index 6e072397..5a804494 100644 --- a/.github/workflows/test-features.yml +++ b/.github/workflows/test-features.yml @@ -70,6 +70,7 @@ jobs: - feature: php filter: php83 - feature: ssh + - feature: xdebug steps: - name: Checkout repository uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 diff --git a/features/test/xdebug/alpine-base.sh b/features/test/xdebug/alpine-base.sh new file mode 120000 index 00000000..e09504fd --- /dev/null +++ b/features/test/xdebug/alpine-base.sh @@ -0,0 +1 @@ +ubuntu-base.sh \ No newline at end of file diff --git a/features/test/xdebug/checks.sh b/features/test/xdebug/checks.sh new file mode 100755 index 00000000..d1752432 --- /dev/null +++ b/features/test/xdebug/checks.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +check "XDebug is available" sh -c 'php -m | grep -i xdebug' +check "xdebug-set-mode is executable" test -x /usr/local/bin/xdebug-set-mode +check "xdebug-disable is executable" test -x /usr/local/bin/xdebug-disable + +sudo xdebug-set-mode develop +check "xdebug.mode is develop (cli)" sh -c 'php -i | grep -E "^xdebug\.mode => develop => develop"' +check "xdebug.mode is develop (fpm)" sh -c 'php-fpm -i | grep -E "^xdebug\.mode => develop => develop"' + +sudo xdebug-set-mode trace,profile +check "xdebug.mode is trace,profile (cli)" sh -c 'php -i | grep -E "^xdebug\.mode => trace,profile => trace,profile"' +check "xdebug.mode is trace,profile (fpm)" sh -c 'php-fpm -i | grep -E "^xdebug\.mode => trace,profile => trace,profile"' + +sudo xdebug-set-mode off +check "xdebug.mode is off (cli)" sh -c 'php -i | grep -E "^xdebug\.mode => off => off"' +check "xdebug.mode is off (fpm)" sh -c 'php-fpm -i | grep -E "^xdebug\.mode => off => off"' diff --git a/features/test/xdebug/scenarios.json b/features/test/xdebug/scenarios.json new file mode 100644 index 00000000..51982bd9 --- /dev/null +++ b/features/test/xdebug/scenarios.json @@ -0,0 +1,26 @@ +{ + "alpine-base": { + "image": "ghcr.io/automattic/vip-codespaces/alpine-base:latest", + "overrideCommand": false, + "features": { + "php": {}, + "xdebug": {} + }, + "overrideFeatureInstallOrder": [ + "./php", + "./xdebug" + ] + }, + "ubuntu-base": { + "image": "ghcr.io/automattic/vip-codespaces/ubuntu-base:latest", + "overrideCommand": false, + "features": { + "php": {}, + "xdebug": {} + }, + "overrideFeatureInstallOrder": [ + "./php", + "./xdebug" + ] + } +} \ No newline at end of file diff --git a/features/test/xdebug/ubuntu-base.sh b/features/test/xdebug/ubuntu-base.sh new file mode 100755 index 00000000..4717b242 --- /dev/null +++ b/features/test/xdebug/ubuntu-base.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# shellcheck source=/dev/null +source dev-container-features-test-lib + +source ./checks.sh + +reportResults