From 07452dd44be0b08d27ec337992250feba0ca8ad6 Mon Sep 17 00:00:00 2001 From: Lucas Bustamante Date: Fri, 10 Jan 2025 14:54:23 -0300 Subject: [PATCH 1/4] Also account for parse errors --- src/src/LocalTests/PrepareQMLog.php | 36 ++++++++++++------- src/tests/LocalTests/PrepareQMLogTest.php | 23 ++++++++++++ ...test_parses_fatal_and_parse_errors__1.json | 17 +++++++++ 3 files changed, 63 insertions(+), 13 deletions(-) create mode 100644 src/tests/LocalTests/PrepareQMLogTest.php create mode 100644 src/tests/LocalTests/__snapshots__/PrepareQMLogTest__test_parses_fatal_and_parse_errors__1.json diff --git a/src/src/LocalTests/PrepareQMLog.php b/src/src/LocalTests/PrepareQMLog.php index cfaf2f4c..60eb2cbc 100644 --- a/src/src/LocalTests/PrepareQMLog.php +++ b/src/src/LocalTests/PrepareQMLog.php @@ -92,7 +92,7 @@ public function extract_fatal_errors_from_debug_file( string $file_path ): array if ( $handle ) { while ( ( $line = fgets( $handle ) ) !== false ) { // phpcs:ignore Generic.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition - if ( str_contains( $line, 'PHP Fatal error:' ) ) { + if ( str_contains( $line, 'PHP Fatal error:' ) || str_contains( $line, 'PHP Parse error:' ) ) { $lines[] = $line; } } @@ -114,35 +114,45 @@ public function extract_fatal_errors_from_debug_file( string $file_path ): array public function extract_error_info( array $lines ): array { $fatal_errors = []; foreach ( $lines as $line ) { - preg_match( '/PHP Fatal error: (.*?) in (.*?) on line (\d+)/', $line, $matches1 ); + // First pattern: `on line X` + preg_match( + '/PHP (Fatal|Parse) error: (.*?) in (.*?) on line (\d+)/', + $line, + $matches1 + ); if ( isset( $matches1[1] ) && isset( $matches1[2] ) && - isset( $matches1[3] ) + isset( $matches1[3] ) && + isset( $matches1[4] ) ) { $fatal_errors[] = [ - 'message' => $matches1[1], - 'file' => str_replace( '/var/www/html/', '', $matches1[2] ), - 'line' => $matches1[3], + 'message' => $matches1[2], + 'file' => str_replace( '/var/www/html/', '', $matches1[3] ), + 'line' => $matches1[4], ]; - continue; } - preg_match( '/PHP Fatal error: (.*?) in (.*?):(\d+)/', $line, $matches2 ); + // Second pattern: `in path:line` + preg_match( + '/PHP (Fatal|Parse) error: (.*?) in (.*?):(\d+)/', + $line, + $matches2 + ); if ( isset( $matches2[1] ) && isset( $matches2[2] ) && - isset( $matches2[3] ) + isset( $matches2[3] ) && + isset( $matches2[4] ) ) { $fatal_errors[] = [ - 'message' => $matches2[1], - 'file' => str_replace( '/var/www/html/', '', $matches2[2] ), - 'line' => $matches2[3], + 'message' => $matches2[2], + 'file' => str_replace( '/var/www/html/', '', $matches2[3] ), + 'line' => $matches2[4], ]; - continue; } diff --git a/src/tests/LocalTests/PrepareQMLogTest.php b/src/tests/LocalTests/PrepareQMLogTest.php new file mode 100644 index 00000000..30f17806 --- /dev/null +++ b/src/tests/LocalTests/PrepareQMLogTest.php @@ -0,0 +1,23 @@ +assertMatchesJsonSnapshot( $sut->extract_error_info( explode( "\n", $debug_log ) ) ); + } +} \ No newline at end of file diff --git a/src/tests/LocalTests/__snapshots__/PrepareQMLogTest__test_parses_fatal_and_parse_errors__1.json b/src/tests/LocalTests/__snapshots__/PrepareQMLogTest__test_parses_fatal_and_parse_errors__1.json new file mode 100644 index 00000000..02e318d7 --- /dev/null +++ b/src/tests/LocalTests/__snapshots__/PrepareQMLogTest__test_parses_fatal_and_parse_errors__1.json @@ -0,0 +1,17 @@ +[ + { + "message": " syntax error, unexpected '|', expecting variable (T_VARIABLE)", + "file": "wp-content\/plugins\/kymvex-inv-alert\/vendor\/phpunit\/phpunit\/src\/Framework\/Assert\/Functions.php", + "line": "83" + }, + { + "message": " Exception thrown without a stack frame", + "file": "Unknown", + "line": "0" + }, + { + "message": " Uncaught Exception: Foo", + "file": "wp-content\/plugins\/kymvex-inv-alert\/kymvex-inv-alert.php", + "line": "29" + } +] From 4b3712fd73c95e21106c36f17bed3d07e7639ca5 Mon Sep 17 00:00:00 2001 From: Lucas Bustamante Date: Fri, 10 Jan 2025 14:55:49 -0300 Subject: [PATCH 2/4] PHPCS --- src/src/LocalTests/PrepareQMLog.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/src/LocalTests/PrepareQMLog.php b/src/src/LocalTests/PrepareQMLog.php index 60eb2cbc..32d818ee 100644 --- a/src/src/LocalTests/PrepareQMLog.php +++ b/src/src/LocalTests/PrepareQMLog.php @@ -114,7 +114,7 @@ public function extract_fatal_errors_from_debug_file( string $file_path ): array public function extract_error_info( array $lines ): array { $fatal_errors = []; foreach ( $lines as $line ) { - // First pattern: `on line X` + // First pattern: `on line X`. preg_match( '/PHP (Fatal|Parse) error: (.*?) in (.*?) on line (\d+)/', $line, @@ -135,7 +135,7 @@ public function extract_error_info( array $lines ): array { continue; } - // Second pattern: `in path:line` + // Second pattern: `in path:line`. preg_match( '/PHP (Fatal|Parse) error: (.*?) in (.*?):(\d+)/', $line, From 6098495ac8c94696ba83659f92aed4ae9c7ef882 Mon Sep 17 00:00:00 2001 From: Lucas Bustamante Date: Fri, 10 Jan 2025 15:09:23 -0300 Subject: [PATCH 3/4] build --- qit | Bin 2391549 -> 2391655 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/qit b/qit index 6386279d144d41e065018e7697e68101b6b93c8e..0a43137759159eaf325f2ce0e809829f58c70650 100755 GIT binary patch delta 80439 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 delta 79964 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

$ic{cR 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 From ef0027cb9acff4c2cd32c262a5c5c2fd2eaf80d1 Mon Sep 17 00:00:00 2001 From: Lucas Bustamante Date: Fri, 10 Jan 2025 15:19:30 -0300 Subject: [PATCH 4/4] Update snapshot --- src/tests/LocalTests/PrepareQMLogTest.php | 4 ++-- ...epareQMLogTest__test_parses_fatal_and_parse_errors__1.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tests/LocalTests/PrepareQMLogTest.php b/src/tests/LocalTests/PrepareQMLogTest.php index 30f17806..01b9dd28 100644 --- a/src/tests/LocalTests/PrepareQMLogTest.php +++ b/src/tests/LocalTests/PrepareQMLogTest.php @@ -12,9 +12,9 @@ class PrepareQMLogTest extends QITTestCase { public function test_parses_fatal_and_parse_errors() { $debug_log = <<<'TXT' -[10-Jan-2025 17:12:43 UTC] PHP Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in /var/www/html/wp-content/plugins/kymvex-inv-alert/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php on line 83 +[10-Jan-2025 17:12:43 UTC] PHP Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in /var/www/html/wp-content/plugins/foo-slug/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php on line 83 [10-Jan-2025 17:12:43 UTC] PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0 -[10-Jan-2025 17:52:22 UTC] PHP Fatal error: Uncaught Exception: Foo in /var/www/html/wp-content/plugins/kymvex-inv-alert/kymvex-inv-alert.php:29 +[10-Jan-2025 17:52:22 UTC] PHP Fatal error: Uncaught Exception: Foo in /var/www/html/wp-content/plugins/foo-slug/foo-slug.php:29 TXT; $sut = App::make( PrepareQMLog::class ); diff --git a/src/tests/LocalTests/__snapshots__/PrepareQMLogTest__test_parses_fatal_and_parse_errors__1.json b/src/tests/LocalTests/__snapshots__/PrepareQMLogTest__test_parses_fatal_and_parse_errors__1.json index 02e318d7..c353a05a 100644 --- a/src/tests/LocalTests/__snapshots__/PrepareQMLogTest__test_parses_fatal_and_parse_errors__1.json +++ b/src/tests/LocalTests/__snapshots__/PrepareQMLogTest__test_parses_fatal_and_parse_errors__1.json @@ -1,7 +1,7 @@ [ { "message": " syntax error, unexpected '|', expecting variable (T_VARIABLE)", - "file": "wp-content\/plugins\/kymvex-inv-alert\/vendor\/phpunit\/phpunit\/src\/Framework\/Assert\/Functions.php", + "file": "wp-content\/plugins\/foo-slug\/vendor\/phpunit\/phpunit\/src\/Framework\/Assert\/Functions.php", "line": "83" }, { @@ -11,7 +11,7 @@ }, { "message": " Uncaught Exception: Foo", - "file": "wp-content\/plugins\/kymvex-inv-alert\/kymvex-inv-alert.php", + "file": "wp-content\/plugins\/foo-slug\/foo-slug.php", "line": "29" } ]