1--TEST-- 2Phar: test that creation of tar-based phar generates valid tar with all bells/whistles 3--SKIPIF-- 4<?php 5if (!extension_loaded("phar")) die("skip"); 6?> 7--INI-- 8phar.readonly=0 9--FILE-- 10<?php 11 12$fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.tar.php'; 13$pname = 'phar://' . $fname; 14$fname2 = __DIR__ . '/' . basename(__FILE__, '.php') . '.2.phar.tar.php'; 15$pname2 = 'phar://' . $fname2; 16 17$phar = new Phar($fname); 18 19$phar->setMetadata('hi there'); 20$phar['a'] = 'hi'; 21$phar['a']->setMetadata('a meta'); 22$phar['b'] = 'hi2'; 23$phar['c'] = 'hi3'; 24$phar['b']->chmod(0444); 25$phar->setStub("<?php ok __HALT_COMPILER();"); 26$phar->setAlias("hime"); 27unset($phar); 28copy($fname, $fname2); 29Phar::unlinkArchive($fname); 30var_dump(file_exists($fname), file_exists($pname . '/a')); 31 32$phar = new Phar($fname2); 33var_dump($phar['a']->getContent(), $phar['b']->getContent(), $phar['c']->getContent()); 34var_dump((string) decoct(fileperms($pname2 . '/b'))); 35var_dump($phar->getStub()); 36var_dump($phar->getAlias()); 37var_dump($phar->getMetadata()); 38var_dump($phar['a']->getMetadata()); 39?> 40--CLEAN-- 41<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.2.phar.tar.php'); ?> 42--EXPECT-- 43bool(false) 44bool(false) 45string(2) "hi" 46string(3) "hi2" 47string(3) "hi3" 48string(6) "100444" 49string(32) "<?php ok __HALT_COMPILER(); ?> 50" 51string(4) "hime" 52string(8) "hi there" 53string(6) "a meta" 54