summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Gass2008-08-06 14:20:36 +0000
committerNathan Gass2008-08-06 14:20:36 +0000
commita9ad07045a2f21ca1ec39ca5e7d636a61e4705ab (patch)
treed39b1b99db461fc0628bc39bc39c6e3d441fb5a3
parent9d93a6860b5c7f43c5909072ef84847e580f003e (diff)
downloaditools-a9ad07045a2f21ca1ec39ca5e7d636a61e4705ab.tar.gz
itools-a9ad07045a2f21ca1ec39ca5e7d636a61e4705ab.tar.bz2
itools-a9ad07045a2f21ca1ec39ca5e7d636a61e4705ab.zip
debuged, added basic tests
-rw-r--r--it.class4
-rwxr-xr-xtests/getopt.t24
2 files changed, 26 insertions, 2 deletions
diff --git a/it.class b/it.class
index ab56894..d64559c 100644
--- a/it.class
+++ b/it.class
@@ -518,7 +518,7 @@ function getopt($helplines)
$witharg[$longoptname ? $longoptname : $shortoptname] = $longoptarg || $shortoptarg;
}
}
- $witharg['debug'] = 1;
+ $witharg['debug'] = true;
$mandatoryargs = array();
if ($tmp = trim(it::replace(array("\n.*" => "", "^\S+\s+\S+\s*" => "", "\[.*?\]\s*" => ""), trim($helplines))))
@@ -533,7 +533,7 @@ function getopt($helplines)
else
$result[array_shift($eat)] = $arg;
}
- elseif ($matches = (array)it::match('^--(\w[\w-]*)(=\S*)?', $arg))
+ elseif ($matches = (array)it::match('^--(\w[\w-]*)(=.*)?', $arg))
{
list($optname, $val) = $matches;
if (!isset($witharg[$optname]) || isset($val) && !$witharg[$optname])
diff --git a/tests/getopt.t b/tests/getopt.t
new file mode 100755
index 0000000..41e985d
--- /dev/null
+++ b/tests/getopt.t
@@ -0,0 +1,24 @@
+#!/www/server/bin/php -qC
+<?php
+
+# Tests for getopt in it.class
+
+require 'searchlib/search_test.class';
+
+$usage = "Usage: doesnotexist.php [OPTIONS]
+Some help to a not existing program
+ -h,--help the help argument
+ -a,--argument=ARG the arg argument
+";
+
+function getopt_ok($argv, $exp, $name)
+{
+ $_SERVER['argv'] = array_merge(array('doesnotexist.php'), $argv);
+ $got = it::getopt($GLOBALS['usage']);
+ return is($got['argument'], $exp, $name);
+}
+
+$testarg = "blah gnaber";
+getopt_ok(array('-a', $testarg), $testarg, "Short version");
+getopt_ok(array('--argument', $testarg), $testarg, "Long version with space");
+getopt_ok(array("--argument=$testarg"), $testarg, "Long version with equal");