From ac90e9c989294b252909e1eeff7f2567fb1ba8a8 Mon Sep 17 00:00:00 2001
From: Derick Rethans <derick@php.net>
Date: Tue, 6 Dec 2011 05:44:54 +0000
Subject: [PATCH] This changes adds the --EXTENSION-- section to .phpt files as
 described in http://marc.info/?t=132248616300007&r=1&w=2.

---
 run-tests.php | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/run-tests.php b/run-tests.php
index 3fba338dca791..3e22a9556ec0b 100755
--- a/run-tests.php
+++ b/run-tests.php
@@ -1246,7 +1246,7 @@ function run_test($php, $file, $env)
 		}
 
 		// Match the beginning of a section.
-		if (preg_match(b'/^--([_A-Z]+)--/', $line, $r)) {
+		if (preg_match('/^--([_A-Z]+)--/', $line, $r)) {
 			$section = $r[1];
 			settype($section, 'string');
 
@@ -1483,6 +1483,18 @@ function run_test($php, $file, $env)
 		settings2array(preg_split( "/[\n\r]+/", $section_text['INI']), $ini_settings);
 	}
 
+	// Additional required extensions
+	if (array_key_exists('EXTENSIONS', $section_text)) {
+		$ext_dir=`$php -r 'echo ini_get("extension_dir");'`;
+		$extensions = preg_split("/[\n\r]+/", trim($section_text['EXTENSIONS']));
+		$loaded = explode(",", `$php -n -r 'echo join(",", get_loaded_extensions());'`);
+		foreach ($extensions as $req_ext) {
+			if (!in_array($req_ext, $loaded)) {
+				$ini_settings['extension'][] = $ext_dir . DIRECTORY_SEPARATOR . $req_ext . '.' . PHP_SHLIB_SUFFIX;
+			}
+		}
+	}
+
 	settings2params($ini_settings);
 
 	// Check if test should be skipped.