mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2025-12-24 08:13:58 -06:00
Begin Refactor
This commit is contained in:
96
vendor/gabordemooij/redbean/testing/cli/runperf.php
vendored
Normal file
96
vendor/gabordemooij/redbean/testing/cli/runperf.php
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
chdir( '..' );
|
||||
|
||||
require 'testcontainer/rb.phar';
|
||||
|
||||
//load core classes
|
||||
require 'RedUNIT.php';
|
||||
require 'RedUNIT/Base.php';
|
||||
require 'RedUNIT/Base/Performance.php';
|
||||
|
||||
error_reporting( E_ALL );
|
||||
|
||||
//Load configuration file
|
||||
if ( file_exists( 'config/test.ini' ) ) {
|
||||
$ini = parse_ini_file( "config/test.ini", TRUE );
|
||||
} else {
|
||||
die( 'Cant find configuration file.' );
|
||||
}
|
||||
|
||||
//Configure the databases
|
||||
if ( isset( $ini['mysql'] ) ) {
|
||||
$dsn = "mysql:host={$ini['mysql']['host']};dbname={$ini['mysql']['schema']}";
|
||||
|
||||
R::addDatabase( 'mysql', $dsn, $ini['mysql']['user'], $ini['mysql']['pass'], FALSE );
|
||||
|
||||
R::selectDatabase( 'mysql' );
|
||||
|
||||
R::exec( ' SET GLOBAL sql_mode="" ' );
|
||||
}
|
||||
|
||||
if ( isset( $ini['pgsql'] ) ) {
|
||||
$dsn = "pgsql:host={$ini['pgsql']['host']};dbname={$ini['pgsql']['schema']}";
|
||||
|
||||
R::addDatabase( 'pgsql', $dsn, $ini['pgsql']['user'], $ini['pgsql']['pass'], FALSE );
|
||||
}
|
||||
|
||||
if ( isset( $ini['sqlite'] ) ) {
|
||||
R::addDatabase( 'sqlite', 'sqlite:' . $ini['sqlite']['file'], NULL, NULL, FALSE );
|
||||
R::selectDatabase( 'sqlite' );
|
||||
}
|
||||
|
||||
|
||||
// Function to activate a driver
|
||||
function activate_driver( $d )
|
||||
{
|
||||
R::selectDatabase( $d );
|
||||
}
|
||||
$test = new \RedUNIT\Base\Performance();
|
||||
|
||||
$drivers = $test->getTargetDrivers();
|
||||
|
||||
foreach ( $drivers as $driver ) {
|
||||
|
||||
if ( !isset( $ini[$driver] ) ) continue;
|
||||
if ( !isset( $_SERVER['argv'][1])) die('Missing parameter. Usage: php runperf.php <testname> <TIMES> ');
|
||||
|
||||
$method = $_SERVER['argv'][1];
|
||||
|
||||
if ($method === 'setup') {
|
||||
|
||||
echo 'Setup...'.PHP_EOL;
|
||||
|
||||
$test->$method();
|
||||
|
||||
echo 'READY'.PHP_EOL;
|
||||
|
||||
} else {
|
||||
|
||||
$times = 100;
|
||||
if (isset($_SERVER['argv'][2])) {
|
||||
$times = (int) $_SERVER['argv'][2];
|
||||
}
|
||||
|
||||
echo "Performing test: $method with driver $driver ".PHP_EOL;
|
||||
|
||||
for ($j=0; $j<$times; $j++) {
|
||||
|
||||
$t1 = microtime( TRUE );
|
||||
|
||||
$test->$method();
|
||||
|
||||
$t2 = microtime( TRUE );
|
||||
|
||||
$d[] = ($t2 - $t1);
|
||||
|
||||
}
|
||||
|
||||
$s = array_sum($d);
|
||||
$a = ($s / $times);
|
||||
$mx = max($d);
|
||||
$mn = min($d);
|
||||
|
||||
echo PHP_EOL."AVG: $a, MAX: $mx, MIN: $mn, TOTAL: $s, TIMES: $times ".PHP_EOL;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user