From: Alexandre Emsenhuber Date: Thu, 4 Feb 2010 17:57:40 +0000 (+0000) Subject: * Port maintenance/cdb-test.php to PHPUnit X-Git-Tag: 1.31.0-rc.0~37932 X-Git-Url: http://git.cyclocoop.org/%28%5B%5E/404?a=commitdiff_plain;h=3d3d3f3ac9a0dd705ab358981878dde15b0a2ae2;p=lhc%2Fweb%2Fwiklou.git * Port maintenance/cdb-test.php to PHPUnit * Reduced entries from 100000 to 1000 so that the test doesn't need hours to complete :) --- diff --git a/maintenance/cdb-test.php b/maintenance/cdb-test.php deleted file mode 100644 index b6f23c4dce..0000000000 --- a/maintenance/cdb-test.php +++ /dev/null @@ -1,83 +0,0 @@ -mDescription = "CDB read/write test"; - } - - public function execute() { - $this->output( "Write test...\n" ); - - $w1 = new CdbWriter_PHP( 'php.cdb' ); - $w2 = new CdbWriter_DBA( 'dba.cdb' ); - - $data = array(); - for ( $i = 0; $i < 100000; $i++ ) { - $key = $this->randomString(); - $value = $this->randomString(); - $w1->set( $key, $value ); - $w2->set( $key, $value ); - - if ( !isset( $data[$key] ) ) { - $data[$key] = $value; - } - } - - $w1->close(); - $w2->close(); - - passthru( 'md5sum php.cdb dba.cdb' ); - - $this->output( "Read test...\n" ); - - $r1 = new CdbReader_PHP( 'php.cdb' ); - $r2 = new CdbReader_DBA( 'dba.cdb' ); - - foreach ( $data as $key => $value ) { - if ( $key === '' ) { - // Known bug - continue; - } - $v1 = $r1->get( $key ); - $v2 = $r2->get( $key ); - - $v1 = $v1 === false ? '(not found)' : $v1; - $v2 = $v2 === false ? '(not found)' : $v2; - - #cdbAssert( 'Mismatch', $key, $v1, $v2 ); - $this->cdbAssert( "PHP error", $key, $v1, $value ); - $this->cdbAssert( "DBA error", $key, $v2, $value ); - } - $this->output( "Done.\n" ); - } - - private function randomString() { - $len = mt_rand( 0, 10 ); - $s = ''; - for ( $j = 0; $j < $len; $j++ ) { - $s .= chr( mt_rand( 0, 255 ) ); - } - return $s; - } - - private function cdbAssert( $msg, $key, $v1, $v2 ) { - if ( $v1 !== $v2 ) { - $this->output( $msg . ', k=' . bin2hex( $key ) . - ', v1=' . bin2hex( $v1 ) . - ', v2=' . bin2hex( $v2 ) . "\n" ); - return false; - } else { - return true; - } - } -} - -$maintClass = "CdbTest"; -require_once( DO_MAINTENANCE ); diff --git a/maintenance/tests/CdbTest.php b/maintenance/tests/CdbTest.php new file mode 100644 index 0000000000..3549c2496a --- /dev/null +++ b/maintenance/tests/CdbTest.php @@ -0,0 +1,73 @@ +randomString(); + $value = $this->randomString(); + $w1->set( $key, $value ); + $w2->set( $key, $value ); + + if ( !isset( $data[$key] ) ) { + $data[$key] = $value; + } + } + + $w1->close(); + $w2->close(); + + $this->assertEquals( + md5_file( 'dba.cdb' ), + md5_file( 'php.cdb' ), + 'same hash' + ); + + $r1 = new CdbReader_PHP( 'php.cdb' ); + $r2 = new CdbReader_DBA( 'dba.cdb' ); + + foreach ( $data as $key => $value ) { + if ( $key === '' ) { + // Known bug + continue; + } + $v1 = $r1->get( $key ); + $v2 = $r2->get( $key ); + + $v1 = $v1 === false ? '(not found)' : $v1; + $v2 = $v2 === false ? '(not found)' : $v2; + + #cdbAssert( 'Mismatch', $key, $v1, $v2 ); + $this->cdbAssert( "PHP error", $key, $v1, $value ); + $this->cdbAssert( "DBA error", $key, $v2, $value ); + } + + unlink( 'dba.cdb' ); + unlink( 'php.cdb' ); + } + + private function randomString() { + $len = mt_rand( 0, 10 ); + $s = ''; + for ( $j = 0; $j < $len; $j++ ) { + $s .= chr( mt_rand( 0, 255 ) ); + } + return $s; + } + + private function cdbAssert( $msg, $key, $v1, $v2 ) { + $this->assertEquals( + $v2, + $v1, + $msg . ', k=' . bin2hex( $key ) + ); + } +}