Hello Timm, include files in the tests should be named .inc or similar because otherwiese make clean will erase them. Could you please rename this one?
marcus Sunday, February 6, 2005, 2:35:10 PM, you wrote: > thekid Sun Feb 6 08:35:10 2005 EDT > Added files: > /php-src/ext/sybase_ct/tests index.php > Log: > - Initial release > # Used for being able to run .phpt-files in a webserver environment > # Incomplete and pretty basic but serves its purpose ATM > http://cvs.php.net/co.php/php-src/ext/sybase_ct/tests/index.php?r=1.1&p=1 > Index: php-src/ext/sybase_ct/tests/index.php > +++ php-src/ext/sybase_ct/tests/index.php > <?php > /* This file is part of PHP test framework for ext/sybase_ct > * > * $Id: index.php,v 1.1 2005/02/06 13:35:09 thekid Exp $ > */ > // {{{ class PHPTExpectancy > // Abstract base class for expectancies > class PHPTExpectancy { > var > $expected = ''; > function PHPTExpectancy($expected) { > $this->expected= $expected; > } > function matches($output) { } > } > // }}} > // {{{ class PHPTRegexExpectancy > // Expectancy class for regular expressions > class PHPTRegexExpectancy extends PHPTExpectancy { > function matches($output) { > return preg_match('�^'.strtr(preg_quote(rtrim($this->expected), '�'), > array( > '%s' => '(.+)', > '%d' => '([0-9]+)' > )).'�', $output); > } > } > // }}} > // {{{ class PHPTTest > // Represents a single .phpt-style test > class PHPTTest { > var > $name = '', > $description = '', > $skipif = '', > $code = '', > $expectancy = NULL, > $output = ''; > function &fromFile($filename) { > $fd= fopen($filename, 'r'); > $sections= array(); > $current= NULL; > while (!feof($fd)) { > $line= fgets($fd, 0xFFFF); > if (1 == sscanf($line, '--%[^-]--', $section)) { > $sections[$section]= ''; > $current= $section; > continue; > } > $sections[$current].= $line; > } > fclose($fd); > // Create instance from read data and return it > $t= &new PHPTTest(); { > $t->name= substr(realpath($filename), 0, -1); > $t->description= rtrim($sections['TEST']); > $t->skipif= $sections['SKIPIF']; > $t->code= $sections['FILE']; > if (isset($sections['EXPECTF'])) { > $t->expectancy= &new PHPTRegexExpectancy($sections['EXPECTF']); > } else { > // XXX TBI XXX > } > } > return $t; > } > function onError($errno, $errstr, $errfile, $errline) { > static $names= array( > E_NOTICE => 'Notice', > E_WARNING => 'Warning' > ); > printf( > "\n%s: %s in %s on line %d\n", > $names[$errno], > $errstr, > $this->name, > $errline > ); > } > function run() { > // Precondition check - will die if test needs to be skipped > eval('?>'.$this->skipif); > set_error_handler(array(&$this, 'onError')); { > error_reporting(E_ALL); > ob_start(); > eval('?>'.$this->code); > $this->output= rtrim(ob_get_contents()); > ob_end_clean(); > } restore_error_handler(); > return $this->expectancy->matches($this->output); > } > } > // }}} > // {{{ main > if (isset($_GET['phpinfo'])) { > phpinfo((int)$_GET['phpinfo']); > echo '<a href="?">Home</a>'; > exit(); > } > echo <<<__ > <html> > <head> > <title>PHPT Test</title> > <style type="text/css"> > body { > background-color: #ffffff; > color: #000000; > font-size: 75%; > } > body, td, th, h1, h2 { > font-family: sans-serif; > } > h1 { > font-size: 150%; > } > h2 { > font-size: 125%; > } > .header { > background: url(?=PHPE9568F34-D428-11d2-A769-00AA001ACF42); > background-position: right center; > background-repeat: no-repeat; > min-height: 70px; > background-color: #9999cc; > padding: 4px; > padding-right: 120px; > border: 1px solid #000000; > } > hr { > width: 600px; > background-color: #cccccc; > border: 0px; > height: 1px; > color: #000000; > } > </style> > </head> > <body> > __; > $test= basename($_SERVER['QUERY_STRING']); > if ($test && file_exists($test)) { > $t= &PHPTTest::fromFile($test); > echo '<div class="header"><h1>'.basename($t->name), ': ', > $t->description.'</h1></div>'; > echo '<a href="?">Back to test suite</a>'; > flush(); > // Run the test > $result= $t->run(); > // Evaluate results > if ($result) { > echo '<h2>Passed</h2>'; > } else { > echo '<h2>Failed</h2><hr/>'; > echo '<h3>Actual output</h3>'; > echo '<xmp>', $t->output, '</xmp><hr/>'; > echo '<h3>Expectancy</h3>'; > echo '<xmp>', $t->expectancy->expected, '</xmp>'; > } > echo '<hr/>'; > exit(); > } > echo '<div class="header"><h1>Test suite</h1></div>'; > // phpinfo() links > echo 'phpinfo(): '; > foreach (array( > 1 => 'General', > 4 => 'Configuration', > 8 => 'Modules' > ) as $const => $name) { > printf('<a href="?phpinfo=%d">%s</a> | ', $const, $name); > } > echo '<a href="?phpinfo=-1">(All)</a>'; > echo '<h2>Select one to run</h2>'; > echo '<ul>'; > $d= dir(dirname(__FILE__)); > while ($entry= $d->read()) { > if ('.phpt' != substr($entry, -5)) continue; > echo '<li><a href="?'.$entry.'">'.$entry.'</a></li>'; > } > $d->close(); > echo '</ul><hr/>'; > echo <<<__ > </body> > </html> > __; > // }}} ?>> -- Best regards, Marcus mailto:[EMAIL PROTECTED] -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
