summaryrefslogtreecommitdiff
path: root/_test/remotetests.php
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2005-10-15 13:45:45 +0200
committerAndreas Gohr <andi@splitbrain.org>2005-10-15 13:45:45 +0200
commitb73cc7dccaa01778de20ade004e0c3bde2e2e36a (patch)
treea082fedea2f4a7e99b5cc6352c35e9b192b145ec /_test/remotetests.php
parent5e35ae2a19fba9e79a1b71d951d7f322b864c001 (diff)
downloadrpg-b73cc7dccaa01778de20ade004e0c3bde2e2e36a.tar.gz
rpg-b73cc7dccaa01778de20ade004e0c3bde2e2e36a.tar.bz2
renamed test directory
darcs-hash:20051015114545-7ad00-561552ce7e519d81146b5cb2d28203aee7c6d2ad.gz
Diffstat (limited to '_test/remotetests.php')
-rwxr-xr-x_test/remotetests.php163
1 files changed, 163 insertions, 0 deletions
diff --git a/_test/remotetests.php b/_test/remotetests.php
new file mode 100755
index 000000000..3dd290712
--- /dev/null
+++ b/_test/remotetests.php
@@ -0,0 +1,163 @@
+#!/usr/bin/php -q
+<?php
+ini_set('memory_limit','128M');
+
+if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/');
+
+require_once 'lib/testmanager.php';
+TestManager::setup();
+
+function usage() {
+ $usage = <<<EOD
+Usage: ./remotetests.php [OPTION]...
+Run the Dokuwiki unit tests remotely executing tests over HTTP and delivering
+results to the command line. If ALL of the test cases pass a count of
+total passes is printed on STDOUT. If ANY of the test cases fail (or raise
+errors) details are printed on STDERR and this script returns a non-zero
+exit code.
+ -c --case=NAME specify a test case by it's ID (see -i for list)
+ -f --caseurl=NAME specify a test case file (full or relative path)
+ -g --group=NAME specify a grouptest. If no grouptest is
+ specified, all test cases will be run.
+ -i --caselist list individual test cases by their ID
+ -l --grouplist list available grouptests
+ -s, --separator=SEP set the character(s) used to separate fail
+ details to SEP
+ -p, --path path to SimpleTest installation
+ -h, --help display this help and exit
+ -u --url=TEST_URL specify remote server test url (w. index.php)
+
+EOD;
+ echo $usage;
+ exit(0);
+}
+
+/* default test options */
+$opt_separator = '->';
+$opt_caselist = FALSE;
+$opt_grouplist = FALSE;
+$opt_caseid = FALSE;
+$opt_caseurl = FALSE;
+$opt_groupfile = FALSE;
+$opt_url = FALSE;
+
+include_once(DOKU_INC.'inc/cliopts.php');
+$short_opts = "c:f:g:hils:p:u:";
+$long_opts = array("case=","caselist","help", "caseurl=", "group=", "grouplist", "separator=", "path=","url=");
+$OPTS = Doku_Cli_Opts::getOptions(__FILE__,$short_opts,$long_opts);
+if ( $OPTS->isError() ) {
+ fwrite( STDERR, $OPTS->getMessage() . "\n");
+ usage($available_grouptests);
+ exit(1);
+}
+
+foreach ($OPTS->options as $key => $val) {
+ switch ($key) {
+ case 'c':
+ case 'case':
+ $opt_caseid = $val;
+ break;
+ case 'h':
+ case 'help':
+ usage();
+ break;
+ case 'f':
+ case 'caseurl':
+ $opt_caseurl = $val;
+ break;
+ case 'g':
+ case 'group':
+ $opt_groupfile = $val;
+ break;
+ case 'i':
+ case 'caselist':
+ $opt_caselist = TRUE;
+ break;
+ case 'l':
+ case 'grouplist':
+ $opt_grouplist = TRUE;
+ break;
+ case 's':
+ case 'separator':
+ $opt_separator = $val;
+ break;
+ case 'p':
+ case 'path':
+ if (file_exists($val)) {
+ define('SIMPLE_TEST', $val);
+ }
+ break;
+ case 'u':
+ case '--url':
+ $opt_url = $val;
+ break;
+ }
+}
+
+if ( ! $opt_url ) {
+ if ( !defined('REMOTE_TEST_URL') ) {
+ fwrite( STDERR, "No test URL defined. Either modify tests.ini or use -u option\n");
+ exit(1);
+ } else {
+ $opt_url = REMOTE_TEST_URL;
+ }
+}
+
+
+if (!@include_once SIMPLE_TEST . 'reporter.php') {
+ if ( defined(SIMPLE_TEST) ) {
+ fwrite( STDERR, "Where's Simple Test ?!? Not at ".SIMPLE_TEST." \n");
+ } else {
+ fwrite( STDERR, "Where's Simple Test ?!? SIMPLE_TEST not even defined!\n");
+ }
+ exit(1);
+}
+
+require_once 'lib/cli_reporter.php';
+
+/* list grouptests */
+if ($opt_grouplist) {
+ $groups = RemoteTestManager::getGroupTestList($opt_url);
+ fwrite( STDOUT, "Available grouptests:\n");
+ foreach ( array_keys($groups) as $group ) {
+ fwrite( STDOUT, $group."\n");
+ }
+}
+
+/* list test cases */
+if ($opt_caselist) {
+ $cases = RemoteTestManager::getTestCaseList($opt_url);
+ fwrite( STDOUT, "Available tests tests:\n");
+ foreach ( array_keys($cases) as $case ) {
+ fwrite( STDOUT, $case."\n");
+ }
+}
+
+/* exit if we've displayed a list */
+if ( $opt_grouplist || $opt_caselist ) {
+ exit(0);
+}
+
+/* run a test case given it's URL */
+if ($opt_caseurl) {
+ RemoteTestManager::runTestUrl($opt_caseurl, new CLIReporter($opt_separator), $opt_url);
+ exit(0);
+}
+
+/* run a test case by id*/
+if ($opt_caseid) {
+ RemoteTestManager::runTestCase($opt_caseid, new CLIReporter($opt_separator), $opt_url);
+ exit(0);
+}
+
+/* run a grouptest */
+if ($opt_groupfile) {
+ RemoteTestManager::runGroupTest(
+ $opt_groupfile, new CLIReporter($opt_separator), $opt_url
+ );
+ exit(0);
+}
+/* run all tests */
+RemoteTestManager::runAllTests(new CLIReporter($opt_separator), $opt_url);
+exit(0);
+?> \ No newline at end of file