Annotation of embedaddon/php/ext/standard/tests/filters/filter_errors_user.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Filter errors: user filter
                      3: --FILE--
                      4: <?php
                      5: require 'filter_errors.inc';
                      6: 
                      7: class test_filter0 extends php_user_filter {
                      8:        function filter($in, $out, &$consumed, $closing) {
                      9:                return PSFS_ERR_FATAL;
                     10:        }
                     11: }
                     12: class test_filter1 extends php_user_filter {
                     13:        function filter($in, $out, &$consumed, $closing) {
                     14:                $bucket = stream_bucket_make_writeable($in);
                     15:                return PSFS_ERR_FATAL;
                     16:        }
                     17: }
                     18: class test_filter2 extends php_user_filter {
                     19:        function filter($in, $out, &$consumed, $closing) {
                     20:                while ($bucket = stream_bucket_make_writeable($in)) {
                     21:                        $consumed += $bucket->datalen;
                     22:                        stream_bucket_append($out, $bucket);
                     23:                }
                     24:                return PSFS_ERR_FATAL;
                     25:        }
                     26: }
                     27: class test_filter3 extends php_user_filter {
                     28:        function filter($in, $out, &$consumed, $closing) {
                     29:                if (!$closing) {
                     30:                        $bucket = stream_bucket_new($this->stream, "42");
                     31:                        stream_bucket_append($out, $bucket);
                     32:                }
                     33:                return PSFS_ERR_FATAL;
                     34:        }
                     35: }
                     36: class test_filter4 extends php_user_filter {
                     37:        function filter($in, $out, &$consumed, $closing) {
                     38:                if (!$closing) {
                     39:                        $bucket = stream_bucket_new($this->stream, "42");
                     40:                }
                     41:                return PSFS_ERR_FATAL;
                     42:        }
                     43: }
                     44: 
                     45: for($i = 0; $i < 5; ++$i) {
                     46:        echo "test_filter$i\n";
                     47:        var_dump(stream_filter_register("test_filter$i", "test_filter$i"));
                     48:        filter_errors_test("test_filter$i", "42");
                     49: }
                     50: 
                     51: echo "test append / read / remove\n";
                     52: for($i = 0; $i < 5; ++$i) {
                     53:        echo "test_filter$i\n";
                     54:        $stream = fopen('php://memory', 'wb+');
                     55:        fwrite($stream, b"42");
                     56:        fseek($stream, 0, SEEK_SET);
                     57:        $f = stream_filter_append($stream, "test_filter$i");
                     58:        stream_get_contents($stream);
                     59:        stream_filter_remove($f);
                     60: }
                     61: 
                     62: echo "test append all / read / remove all\n";
                     63: $stream = fopen('php://memory', 'wb+');
                     64: fwrite($stream, b"42");
                     65: fseek($stream, 0, SEEK_SET);
                     66: $filters = array();
                     67: for($i = 0; $i < 5; ++$i) {
                     68:        echo "test_filter$i\n";
                     69:        $filters[] = stream_filter_append($stream, "test_filter$i");
                     70: }
                     71: stream_get_contents($stream);
                     72: foreach($filters as $filter) {
                     73:        stream_filter_remove($filter);
                     74: }
                     75: 
                     76: echo "test append all / read / close\n";
                     77: $stream = fopen('php://memory', 'wb+');
                     78: fwrite($stream, b"42");
                     79: fseek($stream, 0, SEEK_SET);
                     80: $filters = array();
                     81: for($i = 0; $i < 5; ++$i) {
                     82:        echo "test_filter$i\n";
                     83:        $filters[] = stream_filter_append($stream, "test_filter$i");
                     84: }
                     85: stream_get_contents($stream);
                     86: fclose($stream);
                     87: 
                     88: ?>
                     89: --EXPECTF--
                     90: test_filter0
                     91: bool(true)
                     92: test filtering of buffered data
                     93: 
                     94: Warning: stream_filter_append(): Unprocessed filter buckets remaining on input brigade in %s
                     95: 
                     96: Warning: stream_filter_append(): Filter failed to process pre-buffered data in %s
                     97: test filtering of non buffered data
                     98: 
                     99: Warning: stream_get_contents(): Unprocessed filter buckets remaining on input brigade in %s
                    100: test_filter1
                    101: bool(true)
                    102: test filtering of buffered data
                    103: 
                    104: Warning: stream_filter_append(): Filter failed to process pre-buffered data in %s
                    105: test filtering of non buffered data
                    106: test_filter2
                    107: bool(true)
                    108: test filtering of buffered data
                    109: 
                    110: Warning: stream_filter_append(): Filter failed to process pre-buffered data in %s
                    111: test filtering of non buffered data
                    112: test_filter3
                    113: bool(true)
                    114: test filtering of buffered data
                    115: 
                    116: Warning: stream_filter_append(): Unprocessed filter buckets remaining on input brigade in %s
                    117: 
                    118: Warning: stream_filter_append(): Filter failed to process pre-buffered data in %s
                    119: test filtering of non buffered data
                    120: 
                    121: Warning: stream_get_contents(): Unprocessed filter buckets remaining on input brigade in %s
                    122: test_filter4
                    123: bool(true)
                    124: test filtering of buffered data
                    125: 
                    126: Warning: stream_filter_append(): Unprocessed filter buckets remaining on input brigade in %s
                    127: 
                    128: Warning: stream_filter_append(): Filter failed to process pre-buffered data in %s
                    129: test filtering of non buffered data
                    130: 
                    131: Warning: stream_get_contents(): Unprocessed filter buckets remaining on input brigade in %s
                    132: test append / read / remove
                    133: test_filter0
                    134: 
                    135: Warning: stream_get_contents(): Unprocessed filter buckets remaining on input brigade in %s
                    136: 
                    137: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    138: test_filter1
                    139: 
                    140: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    141: test_filter2
                    142: 
                    143: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    144: test_filter3
                    145: 
                    146: Warning: stream_get_contents(): Unprocessed filter buckets remaining on input brigade in %s
                    147: 
                    148: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    149: test_filter4
                    150: 
                    151: Warning: stream_get_contents(): Unprocessed filter buckets remaining on input brigade in %s
                    152: 
                    153: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    154: test append all / read / remove all
                    155: test_filter0
                    156: test_filter1
                    157: test_filter2
                    158: test_filter3
                    159: test_filter4
                    160: 
                    161: Warning: stream_get_contents(): Unprocessed filter buckets remaining on input brigade in %s
                    162: 
                    163: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    164: 
                    165: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    166: 
                    167: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    168: 
                    169: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    170: 
                    171: Warning: stream_filter_remove(): Unable to flush filter, not removing in %s
                    172: test append all / read / close
                    173: test_filter0
                    174: test_filter1
                    175: test_filter2
                    176: test_filter3
                    177: test_filter4
                    178: 
                    179: Warning: stream_get_contents(): Unprocessed filter buckets remaining on input brigade in %s

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