Annotation of embedaddon/php/ext/phar/tests/test_alias_unset.phpt, revision 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>