From 3a00f595ba794fd9ef9ea56304bc2a7330c40ed1 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 12 Feb 2022 09:20:48 +0100 Subject: [PATCH 1/2] Skip Rule* tests when not using MysqliReflector --- tests/ReflectorFactory.php | 5 +++++ tests/rules/PdoStatementExecuteMethodRuleTest.php | 4 ++++ tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php | 4 ++++ ...yntaxErrorInPreparedStatementMethodSubclassedRuleTest.php | 4 ++++ tests/rules/SyntaxErrorInQueryFunctionRuleTest.php | 4 ++++ tests/rules/SyntaxErrorInQueryMethodRuleTest.php | 4 ++++ tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php | 4 ++++ tests/rules/UnresolvablePdoStatementRuleTest.php | 4 ++++ tests/rules/UnresolvablePreparedStatementRuleTest.php | 4 ++++ tests/rules/UnresolvableQueryFunctionRuleTest.php | 4 ++++ tests/rules/UnresolvableQueryMethodRuleTest.php | 4 ++++ 11 files changed, 45 insertions(+) diff --git a/tests/ReflectorFactory.php b/tests/ReflectorFactory.php index f322ab146..16af4a48b 100644 --- a/tests/ReflectorFactory.php +++ b/tests/ReflectorFactory.php @@ -13,6 +13,7 @@ final class ReflectorFactory { public static function create(string $cacheFile): QueryReflector { + // handle defaults if (false !== getenv('GITHUB_ACTION')) { $host = getenv('DBA_HOST') ?: '127.0.0.1'; $user = getenv('DBA_USER') ?: 'root'; @@ -27,6 +28,10 @@ public static function create(string $cacheFile): QueryReflector $mode = getenv('DBA_MODE') ?: 'recording'; $reflector = getenv('DBA_REFLECTOR') ?: 'mysqli'; + + // make env vars available to tests, in case non are defined yet + putenv('DBA_REFLECTOR='.$reflector); + if ('recording' === $mode) { if ('mysqli' === $reflector) { $mysqli = @new mysqli($host, $user, $password, $dbname); diff --git a/tests/rules/PdoStatementExecuteMethodRuleTest.php b/tests/rules/PdoStatementExecuteMethodRuleTest.php index 1de3bd308..5ed4bced3 100644 --- a/tests/rules/PdoStatementExecuteMethodRuleTest.php +++ b/tests/rules/PdoStatementExecuteMethodRuleTest.php @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testParameterErrors(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/pdo-stmt-execute-error.php'; $this->analyse([__DIR__.'/data/pdo-stmt-execute-error.php'], [ diff --git a/tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php b/tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php index 49c81dfaa..fdc331214 100644 --- a/tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php +++ b/tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-prepared-statement.php'; $this->analyse([__DIR__.'/data/syntax-error-in-prepared-statement.php'], [ diff --git a/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php b/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php index 50dc49e31..3ef66c2cc 100644 --- a/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php +++ b/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-method-subclassed.php'; $this->analyse([__DIR__.'/data/syntax-error-in-method-subclassed.php'], [ diff --git a/tests/rules/SyntaxErrorInQueryFunctionRuleTest.php b/tests/rules/SyntaxErrorInQueryFunctionRuleTest.php index fdcdf582e..961cc6c56 100644 --- a/tests/rules/SyntaxErrorInQueryFunctionRuleTest.php +++ b/tests/rules/SyntaxErrorInQueryFunctionRuleTest.php @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-query-function.php'; $this->analyse([__DIR__.'/data/syntax-error-in-query-function.php'], [ diff --git a/tests/rules/SyntaxErrorInQueryMethodRuleTest.php b/tests/rules/SyntaxErrorInQueryMethodRuleTest.php index 7ebc4b521..e28ff917d 100644 --- a/tests/rules/SyntaxErrorInQueryMethodRuleTest.php +++ b/tests/rules/SyntaxErrorInQueryMethodRuleTest.php @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-query-method.php'; $this->analyse([__DIR__.'/data/syntax-error-in-query-method.php'], [ diff --git a/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php b/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php index b3e550780..502075492 100644 --- a/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php +++ b/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php @@ -18,6 +18,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/syntax-error-in-method-subclassed.php'; $this->analyse([__DIR__.'/data/syntax-error-in-method-subclassed.php'], [ diff --git a/tests/rules/UnresolvablePdoStatementRuleTest.php b/tests/rules/UnresolvablePdoStatementRuleTest.php index 158695228..4030dcf12 100644 --- a/tests/rules/UnresolvablePdoStatementRuleTest.php +++ b/tests/rules/UnresolvablePdoStatementRuleTest.php @@ -30,6 +30,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/unresolvable-pdo-statement.php'; $this->analyse([__DIR__.'/data/unresolvable-pdo-statement.php'], [ diff --git a/tests/rules/UnresolvablePreparedStatementRuleTest.php b/tests/rules/UnresolvablePreparedStatementRuleTest.php index 38240bf3b..aba373581 100644 --- a/tests/rules/UnresolvablePreparedStatementRuleTest.php +++ b/tests/rules/UnresolvablePreparedStatementRuleTest.php @@ -30,6 +30,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/unresolvable-statement.php'; $this->analyse([__DIR__.'/data/unresolvable-statement.php'], [ diff --git a/tests/rules/UnresolvableQueryFunctionRuleTest.php b/tests/rules/UnresolvableQueryFunctionRuleTest.php index 5ce86e2e5..64fc0e743 100644 --- a/tests/rules/UnresolvableQueryFunctionRuleTest.php +++ b/tests/rules/UnresolvableQueryFunctionRuleTest.php @@ -30,6 +30,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/unresolvable-query-in-function.php'; $this->analyse([__DIR__.'/data/unresolvable-query-in-function.php'], [ diff --git a/tests/rules/UnresolvableQueryMethodRuleTest.php b/tests/rules/UnresolvableQueryMethodRuleTest.php index 8cb78ad07..24f6b6ee2 100644 --- a/tests/rules/UnresolvableQueryMethodRuleTest.php +++ b/tests/rules/UnresolvableQueryMethodRuleTest.php @@ -30,6 +30,10 @@ protected function getRule(): Rule public function testSyntaxErrorInQueryRule(): void { + if ('mysqli' !== getenv('DBA_REFLECTOR')) { + $this->markTestSkipped('Only works with MysqliReflector'); + } + require_once __DIR__.'/data/unresolvable-query-in-method.php'; $this->analyse([__DIR__.'/data/unresolvable-query-in-method.php'], [ From ae49066c87c50b749e0d6a12a9e8e655693101d7 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 12 Feb 2022 09:26:50 +0100 Subject: [PATCH 2/2] more explicit test names --- ...php => PdoStatementExecuteMethodRuleMysqliReflectorTest.php} | 2 +- ...axErrorInPreparedStatementMethodRuleMysqliReflectorTest.php} | 2 +- ...reparedStatementMethodSubclassedRuleMysqliReflectorTest.php} | 2 +- ...hp => SyntaxErrorInQueryFunctionRuleMysqliReflectorTest.php} | 2 +- ....php => SyntaxErrorInQueryMethodRuleMysqliReflectorTest.php} | 2 +- ...ntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest.php} | 2 +- ....php => UnresolvablePdoStatementRuleMysqliReflectorTest.php} | 2 +- ...=> UnresolvablePreparedStatementRuleMysqliReflectorTest.php} | 2 +- ...php => UnresolvableQueryFunctionRuleMysqliReflectorTest.php} | 2 +- ...t.php => UnresolvableQueryMethodRuleMysqliReflectorTest.php} | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) rename tests/rules/{PdoStatementExecuteMethodRuleTest.php => PdoStatementExecuteMethodRuleMysqliReflectorTest.php} (97%) rename tests/rules/{SyntaxErrorInPreparedStatementMethodRuleTest.php => SyntaxErrorInPreparedStatementMethodRuleMysqliReflectorTest.php} (97%) rename tests/rules/{SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php => SyntaxErrorInPreparedStatementMethodSubclassedRuleMysqliReflectorTest.php} (93%) rename tests/rules/{SyntaxErrorInQueryFunctionRuleTest.php => SyntaxErrorInQueryFunctionRuleMysqliReflectorTest.php} (93%) rename tests/rules/{SyntaxErrorInQueryMethodRuleTest.php => SyntaxErrorInQueryMethodRuleMysqliReflectorTest.php} (97%) rename tests/rules/{SyntaxErrorInQueryMethodSubclassedRuleTest.php => SyntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest.php} (92%) rename tests/rules/{UnresolvablePdoStatementRuleTest.php => UnresolvablePdoStatementRuleMysqliReflectorTest.php} (94%) rename tests/rules/{UnresolvablePreparedStatementRuleTest.php => UnresolvablePreparedStatementRuleMysqliReflectorTest.php} (93%) rename tests/rules/{UnresolvableQueryFunctionRuleTest.php => UnresolvableQueryFunctionRuleMysqliReflectorTest.php} (94%) rename tests/rules/{UnresolvableQueryMethodRuleTest.php => UnresolvableQueryMethodRuleMysqliReflectorTest.php} (94%) diff --git a/tests/rules/PdoStatementExecuteMethodRuleTest.php b/tests/rules/PdoStatementExecuteMethodRuleMysqliReflectorTest.php similarity index 97% rename from tests/rules/PdoStatementExecuteMethodRuleTest.php rename to tests/rules/PdoStatementExecuteMethodRuleMysqliReflectorTest.php index 5ed4bced3..23b93a7df 100644 --- a/tests/rules/PdoStatementExecuteMethodRuleTest.php +++ b/tests/rules/PdoStatementExecuteMethodRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class PdoStatementExecuteMethodRuleTest extends AbstractServiceAwareRuleTestCase +class PdoStatementExecuteMethodRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { diff --git a/tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php b/tests/rules/SyntaxErrorInPreparedStatementMethodRuleMysqliReflectorTest.php similarity index 97% rename from tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php rename to tests/rules/SyntaxErrorInPreparedStatementMethodRuleMysqliReflectorTest.php index fdc331214..a4e2b5dfa 100644 --- a/tests/rules/SyntaxErrorInPreparedStatementMethodRuleTest.php +++ b/tests/rules/SyntaxErrorInPreparedStatementMethodRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInPreparedStatementMethodRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInPreparedStatementMethodRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { diff --git a/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php b/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleMysqliReflectorTest.php similarity index 93% rename from tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php rename to tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleMysqliReflectorTest.php index 3ef66c2cc..5b65bcff1 100644 --- a/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleTest.php +++ b/tests/rules/SyntaxErrorInPreparedStatementMethodSubclassedRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInPreparedStatementMethodSubclassedRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInPreparedStatementMethodSubclassedRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { diff --git a/tests/rules/SyntaxErrorInQueryFunctionRuleTest.php b/tests/rules/SyntaxErrorInQueryFunctionRuleMysqliReflectorTest.php similarity index 93% rename from tests/rules/SyntaxErrorInQueryFunctionRuleTest.php rename to tests/rules/SyntaxErrorInQueryFunctionRuleMysqliReflectorTest.php index 961cc6c56..863105719 100644 --- a/tests/rules/SyntaxErrorInQueryFunctionRuleTest.php +++ b/tests/rules/SyntaxErrorInQueryFunctionRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInQueryFunctionRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInQueryFunctionRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { diff --git a/tests/rules/SyntaxErrorInQueryMethodRuleTest.php b/tests/rules/SyntaxErrorInQueryMethodRuleMysqliReflectorTest.php similarity index 97% rename from tests/rules/SyntaxErrorInQueryMethodRuleTest.php rename to tests/rules/SyntaxErrorInQueryMethodRuleMysqliReflectorTest.php index e28ff917d..075b05622 100644 --- a/tests/rules/SyntaxErrorInQueryMethodRuleTest.php +++ b/tests/rules/SyntaxErrorInQueryMethodRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInQueryMethodRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInQueryMethodRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { diff --git a/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php b/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest.php similarity index 92% rename from tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php rename to tests/rules/SyntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest.php index 502075492..564122a73 100644 --- a/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleTest.php +++ b/tests/rules/SyntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest.php @@ -9,7 +9,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class SyntaxErrorInQueryMethodSubclassedRuleTest extends AbstractServiceAwareRuleTestCase +class SyntaxErrorInQueryMethodSubclassedRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function getRule(): Rule { diff --git a/tests/rules/UnresolvablePdoStatementRuleTest.php b/tests/rules/UnresolvablePdoStatementRuleMysqliReflectorTest.php similarity index 94% rename from tests/rules/UnresolvablePdoStatementRuleTest.php rename to tests/rules/UnresolvablePdoStatementRuleMysqliReflectorTest.php index 4030dcf12..125a0f28f 100644 --- a/tests/rules/UnresolvablePdoStatementRuleTest.php +++ b/tests/rules/UnresolvablePdoStatementRuleMysqliReflectorTest.php @@ -11,7 +11,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class UnresolvablePdoStatementRuleTest extends AbstractServiceAwareRuleTestCase +class UnresolvablePdoStatementRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function setUp(): void { diff --git a/tests/rules/UnresolvablePreparedStatementRuleTest.php b/tests/rules/UnresolvablePreparedStatementRuleMysqliReflectorTest.php similarity index 93% rename from tests/rules/UnresolvablePreparedStatementRuleTest.php rename to tests/rules/UnresolvablePreparedStatementRuleMysqliReflectorTest.php index aba373581..0369ccacb 100644 --- a/tests/rules/UnresolvablePreparedStatementRuleTest.php +++ b/tests/rules/UnresolvablePreparedStatementRuleMysqliReflectorTest.php @@ -11,7 +11,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class UnresolvablePreparedStatementRuleTest extends AbstractServiceAwareRuleTestCase +class UnresolvablePreparedStatementRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function setUp(): void { diff --git a/tests/rules/UnresolvableQueryFunctionRuleTest.php b/tests/rules/UnresolvableQueryFunctionRuleMysqliReflectorTest.php similarity index 94% rename from tests/rules/UnresolvableQueryFunctionRuleTest.php rename to tests/rules/UnresolvableQueryFunctionRuleMysqliReflectorTest.php index 64fc0e743..ff6358007 100644 --- a/tests/rules/UnresolvableQueryFunctionRuleTest.php +++ b/tests/rules/UnresolvableQueryFunctionRuleMysqliReflectorTest.php @@ -11,7 +11,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class UnresolvableQueryFunctionRuleTest extends AbstractServiceAwareRuleTestCase +class UnresolvableQueryFunctionRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function setUp(): void { diff --git a/tests/rules/UnresolvableQueryMethodRuleTest.php b/tests/rules/UnresolvableQueryMethodRuleMysqliReflectorTest.php similarity index 94% rename from tests/rules/UnresolvableQueryMethodRuleTest.php rename to tests/rules/UnresolvableQueryMethodRuleMysqliReflectorTest.php index 24f6b6ee2..4d3b230e0 100644 --- a/tests/rules/UnresolvableQueryMethodRuleTest.php +++ b/tests/rules/UnresolvableQueryMethodRuleMysqliReflectorTest.php @@ -11,7 +11,7 @@ /** * @extends AbstractServiceAwareRuleTestCase */ -class UnresolvableQueryMethodRuleTest extends AbstractServiceAwareRuleTestCase +class UnresolvableQueryMethodRuleMysqliReflectorTest extends AbstractServiceAwareRuleTestCase { protected function setUp(): void {