Annotation of embedaddon/php/ext/standard/tests/strings/strspn_variation6.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test strspn() function : usage variations - with heredoc strings, varying mask & default start and len args
! 3: --FILE--
! 4: <?php
! 5: /* Prototype : proto int strspn(string str, string mask [, int start [, int len]])
! 6: * Description: Finds length of initial segment consisting entirely of characters found in mask.
! 7: If start or/and length is provided works like strspn(substr($s,$start,$len),$good_chars)
! 8: * Source code: ext/standard/string.c
! 9: * Alias to functions: none
! 10: */
! 11:
! 12: /*
! 13: * Testing strspn() : with heredoc string, varying mask and default start and len arguments
! 14: */
! 15:
! 16: echo "*** Testing strspn() : with different mask strings ***\n";
! 17:
! 18: // initialing required variables
! 19: // defining different heredoc strings
! 20: $empty_heredoc = <<<EOT
! 21: EOT;
! 22:
! 23: $heredoc_with_newline = <<<EOT
! 24: \n
! 25:
! 26: EOT;
! 27:
! 28: $heredoc_with_characters = <<<EOT
! 29: first line of heredoc string
! 30: second line of heredoc string
! 31: third line of heredocstring
! 32: EOT;
! 33:
! 34: $heredoc_with_newline_and_tabs = <<<EOT
! 35: hello\tworld\nhello\nworld\n
! 36: EOT;
! 37:
! 38: $heredoc_with_alphanumerics = <<<EOT
! 39: hello123world456
! 40: 1234hello\t1234
! 41: EOT;
! 42:
! 43: $heredoc_with_embedded_nulls = <<<EOT
! 44: hello\0world\0hello
! 45: \0hello\0
! 46: EOT;
! 47:
! 48: $heredoc_with_hexa_octal = <<<EOT
! 49: hello\0\100\xaaworld\0hello
! 50: \0hello\0
! 51: EOT;
! 52:
! 53: // defining array of different heredoc strings
! 54: $heredoc_strings = array(
! 55: $empty_heredoc,
! 56: $heredoc_with_newline,
! 57: $heredoc_with_characters,
! 58: $heredoc_with_newline_and_tabs,
! 59: $heredoc_with_alphanumerics,
! 60: $heredoc_with_embedded_nulls,
! 61: $heredoc_with_hexa_octal
! 62: );
! 63:
! 64: // defining array of different mask strings
! 65: $mask_array = array(
! 66: "",
! 67: '',
! 68: "fh\ne\trlsti \l",
! 69: 'fieh\n\trlsti \l',
! 70: "\t",
! 71: "lt\ ",
! 72: 'l\t',
! 73: "fl\t\eh ",
! 74: "l \te",
! 75: "lf\the\i\100\xaa"
! 76: );
! 77:
! 78:
! 79: // loop through each element of the array for different heredoc and mask strings
! 80:
! 81: $count = 1;
! 82:
! 83: foreach($heredoc_strings as $str) {
! 84: echo "\n-- Iteration $count --\n";
! 85: foreach($mask_array as $mask) {
! 86: var_dump( strspn($str,$mask) ); // with default start and len value
! 87: }
! 88: $count++;
! 89: }
! 90:
! 91: echo "Done"
! 92: ?>
! 93: --EXPECTF--
! 94: *** Testing strspn() : with different mask strings ***
! 95:
! 96: -- Iteration 1 --
! 97: int(0)
! 98: int(0)
! 99: int(0)
! 100: int(0)
! 101: int(0)
! 102: int(0)
! 103: int(0)
! 104: int(0)
! 105: int(0)
! 106: int(0)
! 107:
! 108: -- Iteration 2 --
! 109: int(0)
! 110: int(0)
! 111: int(2)
! 112: int(0)
! 113: int(0)
! 114: int(0)
! 115: int(0)
! 116: int(0)
! 117: int(0)
! 118: int(0)
! 119:
! 120: -- Iteration 3 --
! 121: int(0)
! 122: int(0)
! 123: int(8)
! 124: int(11)
! 125: int(0)
! 126: int(0)
! 127: int(0)
! 128: int(1)
! 129: int(0)
! 130: int(2)
! 131:
! 132: -- Iteration 4 --
! 133: int(0)
! 134: int(0)
! 135: int(4)
! 136: int(4)
! 137: int(0)
! 138: int(0)
! 139: int(0)
! 140: int(4)
! 141: int(0)
! 142: int(4)
! 143:
! 144: -- Iteration 5 --
! 145: int(0)
! 146: int(0)
! 147: int(4)
! 148: int(4)
! 149: int(0)
! 150: int(0)
! 151: int(0)
! 152: int(4)
! 153: int(0)
! 154: int(4)
! 155:
! 156: -- Iteration 6 --
! 157: int(0)
! 158: int(0)
! 159: int(4)
! 160: int(4)
! 161: int(0)
! 162: int(0)
! 163: int(0)
! 164: int(4)
! 165: int(0)
! 166: int(4)
! 167:
! 168: -- Iteration 7 --
! 169: int(0)
! 170: int(0)
! 171: int(4)
! 172: int(4)
! 173: int(0)
! 174: int(0)
! 175: int(0)
! 176: int(4)
! 177: int(0)
! 178: int(4)
! 179: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>