⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rb_testrunner_normal.php

📁 linux下安装不上mysql5与php5的可用此关联
💻 PHP
字号:
<?PHPrequire_once('config.php');require_once('abstract.php');require_once('rb_storage_db_normal.php');require_once('rb_renderer_normal.php');class rb_testrunner_normal extends rb_testrunner {    protected $storage;  protected $renderer;       public function runTest($file, $binary, $options) {        if ($options['verbose']) {      printf("  ... running file '%s'\n", $file);      flush();    }    // Ugly, but things once worked very different before ext/mysqlnd development was cancelled    // When ext/mysqlnd still existed this all was a beautiful, little include() ...    $code = sprintf('<?php%s', "\n");    $code.= sprintf('set_time_limit(0);%s', "\n");    $code.= sprintf('ini_set("memory_limit", -1);%s', "\n");    $code.= sprintf('$flag_original_code = true;%s', "\n");    $code.= sprintf('$host = "%s";%s', RB_DB_HOST, "\n");    $code.= sprintf('$user = "%s";%s', RB_DB_USER, "\n");    $code.= sprintf('$passwd = "%s";%s', RB_DB_PASSWD, "\n");    $code.= sprintf('$db= "%s";%s', RB_DB_DB, "\n");    $code.= sprintf('$port= "%s";%s', RB_DB_PORT, "\n");    $code.= sprintf('$socket= "%s";%s', RB_DB_SOCKET, "\n");    $code.= sprintf('$engine= "%s";%s', RB_DB_ENGINE, "\n");    $code.= sprintf('%s', "\n");    $code.= sprintf('$times = $errors = array();%s', "\n");    $code.= sprintf('include("%s");%s', $file, "\n");    $code.= sprintf('$all = array("times" => $times, "errors" => $errors, "memory" => (isset($memory)) ? $memory : NULL);%s', "\n");    $code.= sprintf('$fp = fopen("%s" . ".res", "w");%s', $file, "\n");    $code.= sprintf('fwrite($fp, serialize($all));%s', "\n");    $code.= sprintf('fclose($fp);%s', "\n");    $code.= sprintf('print "done!";%s', "\n");    $code.= sprintf('?>%s', "\n");        $mycode = str_replace('.', '_', $file) . '_run_normal.php';    @unlink($mycode);    $results = sprintf('%s.res', $file);    @unlink($results);        if (!$fp = fopen($mycode, 'w'))      throw new Exception("Cannot create temporary file\n");          fwrite($fp, $code);    fclose($fp);        $cmd = sprintf('%s -f %s', $binary, $mycode);    if ($options['verbose']) {      printf("  ...'%s'\n", $cmd);      flush();    }    exec($cmd, $output, $ret);    if ($ret !== 0 || empty($output) || $output[0] != 'done!') {            throw new Exception(sprintf("Cannot fetch output from %s, return code: %d, output: %s\n", $binary, $ret, implode('', $output)));          }        if (!$tmp = file_get_contents($results))      throw new Exception("Cannot read data exchange file");          if (!$all = unserialize($tmp))      throw new Exception("Cannot unserialize data exchange file contents");        unlink($results);    unlink($mycode);              if (!empty($all['errors']))       throw new Exception(sprintf("Errors during bench run: %s\n", implode("\n", $all['errors'])));          if ($options['verbose']) {      printf("  ... microbench finished, %d errors, %d times recorded, %d mem info recorded\n",         count($all['errors']), count($all['times']), count($all['memory']));      flush();    }       return $all;  }    public function saveResults($run_label, $run_datetime, $file, $binary_file, $binary_label, $data) {                $this->initStorage();            $this->storage->init();        $this->storage->save($run_label, $run_datetime, $file, $binary_file, $binary_label, $data);      }    public function getRenderer() {            if (!$this->renderer) {      $this->initStorage();      $this->renderer = new rb_renderer_normal($this->storage);    }        return $this->renderer;      }     public function clearOldResults() {}    protected function initStorage() {    if (is_null($this->storage))      $this->storage = new rb_storage_db_normal();    }  }?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -