Annotation of embedaddon/php/ext/phar/tests/test_alias_unset.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Phar: test for the odd case where we intend to remove an archive from memory
                      3: --SKIPIF--
                      4: <?php if (!extension_loaded("phar")) die("skip"); ?>
                      5: --INI--
                      6: phar.readonly=0
                      7: --FILE--
                      8: <?php
                      9: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
                     10: $pname = 'phar://' . $fname;
                     11: $fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
                     12: $pname2 = 'phar://' . $fname2;
                     13: 
                     14: $phar = new Phar($fname);
                     15: $phar->setAlias('first');
                     16: $phar['file1.txt'] = 'hi';
                     17: unset($phar);
                     18: 
                     19: $phar2 = new Phar($fname2);
                     20: $phar2->setAlias('first'); // this works because there are no references to $fname open
                     21: $phar2['file1.txt'] = 'hi';
                     22: unset($phar2);
                     23: 
                     24: $a = fopen($pname . '/file1.txt', 'r'); // this works because there are no references to $fname2 open
                     25: try {
                     26: $phar2 = new Phar($fname2); // fails because references open to $fname
                     27: } catch (Exception $e) {
                     28: echo $e->getMessage(),"\n";
                     29: }
                     30: fclose($a);
                     31: $phar2 = new Phar($fname2); // succeeds because all refs are closed
                     32: var_dump($phar2->getAlias());
                     33: 
                     34: $a = file_get_contents($pname . '/file1.txt'); // this fails because $fname2 ref exists
                     35: ?>
                     36: ===DONE===
                     37: --CLEAN--
                     38: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
                     39: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.2.phar.php'); ?>
                     40: --EXPECTF--
                     41: Cannot open archive "%stest_alias_unset.2.phar.php", alias is already in use by existing archive
                     42: string(5) "first"
                     43: 
                     44: Warning: file_get_contents(phar://%sfile1.txt): failed to open stream: Cannot open archive "%stest_alias_unset.phar.php", alias is already in use by existing archive in %stest_alias_unset.php on line %d
                     45: ===DONE===

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>