From: Hartmut Holzgraefe Date: Tue, 20 May 2003 13:43:43 +0000 (+0000) Subject: - new method to generate test cases for functions X-Git-Tag: RELEASE_1_0_2~693 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2f31208beb148032e1e04dfb1f22ac48ea28041d;p=php - new method to generate test cases for functions - beginning support for "pass by reference" parameters --- diff --git a/scripts/ext_skel_ng/php_function.php b/scripts/ext_skel_ng/php_function.php index 92c970522d..8c39e24cff 100644 --- a/scripts/ext_skel_ng/php_function.php +++ b/scripts/ext_skel_ng/php_function.php @@ -61,10 +61,18 @@ if (!$this->is_type($tokens[$n])) return("type name expected instead of '$tokens[$n]'"); $params[$param]['type']=$tokens[$n]; $n++; + if ($tokens[$n] == "&") { + $params[$param]['by_ref'] = true; + $n++; + } if ($this->is_name($tokens[$n])) { $params[$param]['name']=$tokens[$n]; $n++; } + if ($tokens[$n] == "&") { + $params[$param]['by_ref'] = true; + $n++; + } if ($params[$param]['type'] === "resource" && $this->is_name($tokens[$n])) { $params[$param]['subtype'] = $params[$param]['name']; $params[$param]['name'] = $tokens[$n]; @@ -98,7 +106,7 @@ return true; } - function c_code(&$extension) { + function c_code($extension) { $code = ""; $returns = explode(" ", $this->returns); @@ -117,6 +125,9 @@ $code .= $param['subtype']." "; } if ($param['type'] !== 'void') { + if (isset($param['by_ref'])) { + $code .= "&"; + } $code .= $param['name']; } } @@ -319,7 +330,11 @@ } else { $xml .= " "; } - $xml .= "$param[type]$param[name]"; + $xml .= "$param[type]"; + if (isset($param['by_ref'])) { + $xml .= "&"; + } + $xml .= "$param[name]"; $xml .= "\n"; } } @@ -337,10 +352,28 @@ $xml .= '; - $xml .= $this->docbook_editor_footer(4); + $xml .= $this->docbook_editor_settings(4); return $xml; } + + function write_test($extension) { + $fp = fopen("{$extension->name}/tests/{$this->name}.phpt", "w"); + fputs($fp, +"--TEST-- +{$this->name}() function +--SKIPIF-- +name}')) print 'skip'; ?> +--POST-- +--GET-- +--FILE-- +name}() yet'; +?> +--EXPECT-- +no test case for {$this->name}() yet"); + fclose($fp); + } } ?> \ No newline at end of file