diff options
Diffstat (limited to '3rdparty/simpletest/extensions/coverage/coverage_utils.php')
-rw-r--r-- | 3rdparty/simpletest/extensions/coverage/coverage_utils.php | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/3rdparty/simpletest/extensions/coverage/coverage_utils.php b/3rdparty/simpletest/extensions/coverage/coverage_utils.php new file mode 100644 index 00000000000..d2c3a635f43 --- /dev/null +++ b/3rdparty/simpletest/extensions/coverage/coverage_utils.php @@ -0,0 +1,114 @@ +<?php +/** + * @package SimpleTest + * @subpackage Extensions + */ +/** + * @package SimpleTest + * @subpackage Extensions + */ +class CoverageUtils { + + static function mkdir($dir) { + if (!file_exists($dir)) { + mkdir($dir, 0777, True); + } else { + if (!is_dir($dir)) { + throw new Exception($dir .' exists as a file, not a directory'); + } + } + } + + static function requireSqlite() { + if (!self::isPackageClassAvailable('DB/sqlite.php', 'SQLiteDatabase')) { + echo "sqlite library is required to be installed and available in include_path"; + exit(1); + } + } + + static function isPackageClassAvailable($includeFile, $class) { + @include_once($includeFile); + return class_exists($class); + } + + /** + * Parses simple parameters from CLI. + * + * Puts trailing parameters into string array in 'extraArguments' + * + * Example: + * $args = CoverageUtil::parseArguments($_SERVER['argv']); + * if ($args['verbose']) echo "Verbose Mode On\n"; + * $files = $args['extraArguments']; + * + * Example CLI: + * --foo=blah -x -h some trailing arguments + * + * if multiValueMode is true + * Example CLI: + * --include=a --include=b --exclude=c + * Then + * $args = CoverageUtil::parseArguments($_SERVER['argv']); + * $args['include[]'] will equal array('a', 'b') + * $args['exclude[]'] will equal array('c') + * $args['exclude'] will equal c + * $args['include'] will equal b NOTE: only keeps last value + * + * @param unknown_type $argv + * @param supportMutliValue - will store 2nd copy of value in an array with key "foo[]" + * @return unknown + */ + static public function parseArguments($argv, $mutliValueMode = False) { + $args = array(); + $args['extraArguments'] = array(); + array_shift($argv); // scriptname + foreach ($argv as $arg) { + if (ereg('^--([^=]+)=(.*)', $arg, $reg)) { + $args[$reg[1]] = $reg[2]; + if ($mutliValueMode) { + self::addItemAsArray($args, $reg[1], $reg[2]); + } + } elseif (ereg('^[-]{1,2}([^[:blank:]]+)', $arg, $reg)) { + $nonnull = ''; + $args[$reg[1]] = $nonnull; + if ($mutliValueMode) { + self::addItemAsArray($args, $reg[1], $nonnull); + } + } else { + $args['extraArguments'][] = $arg; + } + } + + return $args; + } + + /** + * Adds a value as an array of one, or appends to an existing array elements + * + * @param unknown_type $array + * @param unknown_type $item + */ + static function addItemAsArray(&$array, $key, $item) { + $array_key = $key .'[]'; + if (array_key_exists($array_key, $array)) { + $array[$array_key][] = $item; + } else { + $array[$array_key] = array($item); + } + } + + /** + * isset function with default value + * + * Example: $z = CoverageUtils::issetOr($array[$key], 'no value given') + * + * @param unknown_type $val + * @param unknown_type $default + * @return first value unless value is not set then returns 2nd arg or null if no 2nd arg + */ + static public function issetOr(&$val, $default = null) + { + return isset($val) ? $val : $default; + } +} +?>
\ No newline at end of file |