#-- database types and plugins $t_scr = array("ewiki" => "", "mysql" => "", "pmwiki10" => "read_pmwiki1.php", "phpwiki13" => "phpwiki13.php", "dba" => "dba.php", "flat" => "flat_files.php", "fast" => "fast_files.php", "dzf2" => "dzf2.php", "zip" => "zip.php", "anydb" => "anydb.php", "xmlrpc" => "xmlrpc.php"); $t_api = array("ewiki" => "\$", "mysql" => "ewiki_database_mysql", "pmwiki10" => "ewiki_database_pmwiki", "phpwiki13" => "ewiki_database_phpwiki13", "dba" => "ewiki_database_dba", "flat" => "ewiki_database_files", "fast" => "ewiki_database_files", "dzf2" => "ewiki_database_DirZlibFiles2", "zip" => "ewiki_database_zip", "anydb" => "ewiki_database_anydb", "xmlrpc" => "ewiki_database_xmlrpc"); $t_init = array("ewiki" => 1, "mysql" => 1, "dba" => 1, "flat" => 1, "fast" => 1, "dzf2" => 1, "anydb" => 1); $t_in_convert = array("phpwiki13" => array("phpwiki.php"), "usemod" => array("usemod.php")); $t_out_convert = array("phpwiki13" => array()); #-- preparations define("PHPWIKI13_WRITEACCESS", 1); #-- open databases if ($script = $t_scr[$from_type]) { include_once "plugins/db/{$script}"; } $FROM = instantiate_db_api($t_api[$from_type]); echo "- source database module loaded/instantiated<br>\n"; if ($read) { read_test(); } if ($script = $t_scr[$from_to]) { include_once "plugins/db/{$script}"; } $DEST = instantiate_db_api($t_api[$to_type]); echo "- target database module loaded/instantiated<br>\n"; #-- set up options for $FROM database if ($grp = $_REQUEST["from_subwiki"]) { $FROM->group = $grp; } if ($dir = $_REQUEST["from_dir"]) { $FROM->zip = $dir; $FROM->dir = $dir; $FROM->dirs = preg_split("/[\\s:;,]+/", $dir); }
$suffix = ""; if (file_exists($dir . 'prerequisite')) { if (trim(eval_output(file_get_contents($dir . 'prerequisite'))) != 'ok') { echo str_repeat('s', count(test_files($dir))); continue; } } if (file_exists($dir . 'prefix')) { $prefix = file_get_contents($dir . 'prefix'); } if (file_exists($dir . 'suffix')) { $suffix = file_get_contents($dir . 'suffix'); } foreach (test_files($dir) as $file) { $total++; list($src, $result) = read_test($file); $result = trim($result); $eval_out = trim(eval_output($prefix . $src . $suffix)); if ($eval_out == $result) { $correct++; echo '.'; } else { add_error($file, $eval_out, $result); $fail++; echo 'e'; } } } print_all_errors(); if ($fail) { Color::red();
} function write_test($file) { $text = "a\\'b\"\\\\c"; $fp = fopen($file, "wt"); $fwrite = fwrite($fp, $text); echo "fwrite = ({$fwrite})\n"; $fputs = fputs($fp, $text); echo "fputs = ({$fputs})\n"; fclose($fp); } function test_exec($cmd) { echo `{$cmd}`; echo exec($cmd), "\n"; echo shell_exec($cmd); passthru($cmd); } chdir(dirname(__FILE__)); set(1, 1); read_test("runtime-quotes.txt"); set(1, 1); write_test("runtime-quotes2.txt"); set(0, 0); read_test("runtime-quotes.txt"); set(0, 0); read_test("runtime-quotes2.txt"); set(1, 1); test_exec("echo e'e"); set(0, 0); test_exec("echo e'e");