--TEST-- PEAR_Packager test --SKIPIF-- --FILE-- 'pear.php.net', 'php_dir' => $temp_path . DIRECTORY_SEPARATOR . 'php', 'ext_dir' => $temp_path . DIRECTORY_SEPARATOR . 'ext', 'data_dir' => $temp_path . DIRECTORY_SEPARATOR . 'data', 'doc_dir' => $temp_path . DIRECTORY_SEPARATOR . 'doc', 'test_dir' => $temp_path . DIRECTORY_SEPARATOR . 'test', 'bin_dir' => $temp_path . DIRECTORY_SEPARATOR . 'bin',)); touch($temp_path . DIRECTORY_SEPARATOR . 'pear.conf'); $fp = fopen($temp_path . DIRECTORY_SEPARATOR . 'pear.conf', 'w'); fwrite($fp, $config); fclose($fp); touch($temp_path . DIRECTORY_SEPARATOR . 'pear.ini'); $fp = fopen($temp_path . DIRECTORY_SEPARATOR . 'pear.ini', 'w'); fwrite($fp, $config); fclose($fp); putenv('PHP_PEAR_SYSCONF_DIR='.$temp_path); $home = getenv('HOME'); if (!empty($home)) { // for PEAR_Config initialization putenv('HOME="'.$temp_path); } require_once "PEAR/Packager.php"; require_once 'PEAR/Registry.php'; $reg = &new PEAR_Registry($temp_path . DIRECTORY_SEPARATOR . 'php'); $packager = new PEAR_Packager(); $packager->setRegistry($reg); $curdir = getcwd(); chdir(dirname(__FILE__)); PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'catchit'); $error_to_catch = false; function catchit($err) { global $error_to_catch; if ($error_to_catch) { if ($err->getMessage() == $error_to_catch) { $error_to_catch = false; echo "Caught expected error\n"; return; } } echo "Caught error: " . $err->getMessage() . "\n"; } ob_start(); if (!file_exists(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'CVS')) { mkdir(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'CVS'); touch(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'CVS' . DIRECTORY_SEPARATOR . 'Root'); } $packager->package(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'package.xml'); $packager->package(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'package2.xml'); $stuff = str_replace(array(dirname(__FILE__) . DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR), array('', '/'), ob_get_contents()); ob_end_clean(); echo $stuff; $archive1 = &new Archive_Tar(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pkg1-1.0.tgz'); $archive1c = &new Archive_Tar(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'pkg1-1.0.tgz'); $x1 = $archive1->listContent(); $x2 = $archive1c->listContent(); for($i=0;$ilistContent(); $x2 = $archive1c->listContent(); for($i=0;$ipackage(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'dirtree' . DIRECTORY_SEPARATOR . 'package-fail.xml'); unlink(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pkg1-1.0.tgz'); unlink(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'pkg2-1.0.tgz'); chdir($curdir); cleanall($temp_path); // ------------------------------------------------------------------------- // function cleanall($dir) { $dp = opendir($dir); while ($ent = readdir($dp)) { if ($ent == '.' || $ent == '..') { continue; } if (is_dir($dir . DIRECTORY_SEPARATOR . $ent)) { cleanall($dir . DIRECTORY_SEPARATOR . $ent); } else { unlink($dir . DIRECTORY_SEPARATOR . $ent); } } closedir($dp); rmdir($dir); } ?> --EXPECT-- Analyzing multiplepackages/pkg1file.php Analyzing pkg1/randomfile.php Package pkg1-1.0.tgz done Tag the released code with `pear cvstag package.xml' (or set the CVS tag RELEASE_1_0 by hand) Analyzing multiplepackages/pkg2file.php Analyzing nestedroot/rootfile.php Analyzing nestedroot/emptydir/nesteddir/nestedfile.php Package pkg2-1.0.tgz done Tag the released code with `pear cvstag package2.xml' (or set the CVS tag RELEASE_1_0 by hand) array(3) { [0]=> array(6) { ["filename"]=> string(11) "package.xml" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(817) ["typeflag"]=> string(0) "" } [1]=> array(6) { ["filename"]=> string(38) "pkg1-1.0/multiplepackages/pkg1file.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } [2]=> array(6) { ["filename"]=> string(28) "pkg1-1.0/pkg1/randomfile.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } } array(3) { [0]=> array(6) { ["filename"]=> string(11) "package.xml" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(817) ["typeflag"]=> string(0) "" } [1]=> array(6) { ["filename"]=> string(38) "pkg1-1.0/multiplepackages/pkg1file.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } [2]=> array(6) { ["filename"]=> string(28) "pkg1-1.0/pkg1/randomfile.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } } array(4) { [0]=> array(6) { ["filename"]=> string(11) "package.xml" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(921) ["typeflag"]=> string(0) "" } [1]=> array(6) { ["filename"]=> string(38) "pkg2-1.0/multiplepackages/pkg2file.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } [2]=> array(6) { ["filename"]=> string(32) "pkg2-1.0/nestedroot/rootfile.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } [3]=> array(6) { ["filename"]=> string(53) "pkg2-1.0/nestedroot/emptydir/nesteddir/nestedfile.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } } array(4) { [0]=> array(6) { ["filename"]=> string(11) "package.xml" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(921) ["typeflag"]=> string(0) "" } [1]=> array(6) { ["filename"]=> string(38) "pkg2-1.0/multiplepackages/pkg2file.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } [2]=> array(6) { ["filename"]=> string(32) "pkg2-1.0/nestedroot/rootfile.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } [3]=> array(6) { ["filename"]=> string(53) "pkg2-1.0/nestedroot/emptydir/nesteddir/nestedfile.php" ["mode"]=> int(33206) ["uid"]=> int(0) ["gid"]=> int(0) ["size"]=> int(0) ["typeflag"]=> string(0) "" } } test failure: Analyzing multiplepackages\pkg2file.php Analyzing nestedroot\rootfile.php Analyzing nestedroot\emptydir\nesteddir\nestedfile.php Analyzing nestedroot\emptydir\nesteddir\doesntexist.php Caught error: File does not exist: nestedroot\emptydir\nesteddir\doesntexist.php