summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghubansh Kumar <kraghuba@php.net>2007-09-22 10:36:15 +0000
committerRaghubansh Kumar <kraghuba@php.net>2007-09-22 10:36:15 +0000
commit0aa09167c153d1bc26805c21c37e19a4175c9849 (patch)
tree9f163b6e00775ba4ea11edc88ba6ebc2d0380884
parenteb3f8fda655946f9904638b443f1347d038ab1cc (diff)
downloadphp-git-0aa09167c153d1bc26805c21c37e19a4175c9849.tar.gz
New testcases for strcspn() function
-rw-r--r--ext/standard/tests/strings/strcspn_basic.phpt41
-rw-r--r--ext/standard/tests/strings/strcspn_error.phpt57
-rw-r--r--ext/standard/tests/strings/strcspn_variation1.phpt276
-rw-r--r--ext/standard/tests/strings/strcspn_variation10.phpt272
-rw-r--r--ext/standard/tests/strings/strcspn_variation11.phpt1306
-rw-r--r--ext/standard/tests/strings/strcspn_variation12.phpt2482
-rw-r--r--ext/standard/tests/strings/strcspn_variation2.phpt274
-rw-r--r--ext/standard/tests/strings/strcspn_variation3.phpt245
-rw-r--r--ext/standard/tests/strings/strcspn_variation4.phpt198
-rw-r--r--ext/standard/tests/strings/strcspn_variation5.phptbin0 -> 2421 bytes
-rw-r--r--ext/standard/tests/strings/strcspn_variation6.phpt177
-rw-r--r--ext/standard/tests/strings/strcspn_variation7.phpt612
-rw-r--r--ext/standard/tests/strings/strcspn_variation8.phpt1892
-rw-r--r--ext/standard/tests/strings/strcspn_variation9.phptbin0 -> 2539 bytes
14 files changed, 7832 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/strcspn_basic.phpt b/ext/standard/tests/strings/strcspn_basic.phpt
new file mode 100644
index 0000000000..232b105f88
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_basic.phpt
@@ -0,0 +1,41 @@
+--TEST--
+Test strcspn() function : basic functionality
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [, int start [, int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided, it works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : basic functionality
+*/
+
+echo "*** Testing strcspn() : basic functionality ***\n";
+
+
+// Initialise all required variables
+$str = "this is the test string";
+$mask = "es";
+$start = 15;
+$len = 30;
+
+// Calling strcspn() with all possible arguments
+var_dump( strcspn($str, $mask, $start, $len) );
+
+// Calling strcspn() with three arguments
+var_dump( strcspn($str, $mask, $start) );
+
+// Calling strcspn() with default arguments
+var_dump( strcspn($str, $mask) );
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : basic functionality ***
+int(2)
+int(2)
+int(3)
+Done
diff --git a/ext/standard/tests/strings/strcspn_error.phpt b/ext/standard/tests/strings/strcspn_error.phpt
new file mode 100644
index 0000000000..03b4f2d2cf
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_error.phpt
@@ -0,0 +1,57 @@
+--TEST--
+Test strcspn() function : error conditions
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [, int start [, int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Test strcspn() : for error conditons
+*/
+
+echo "*** Testing strcspn() : error conditions ***\n";
+
+// Zero arguments
+echo "\n-- Testing strcspn() function with Zero arguments --\n";
+var_dump( strcspn() );
+
+//Test strcspn with one more than the expected number of arguments
+echo "\n-- Testing strcspn() function with more than expected no. of arguments --\n";
+$str = 'string_val';
+$mask = 'string_val';
+$start = 2;
+$len = 20;
+
+
+$extra_arg = 10;
+var_dump( strcspn($str,$mask,$start,$len, $extra_arg) );
+
+// Testing strcspn withone less than the expected number of arguments
+echo "\n-- Testing strcspn() function with less than expected no. of arguments --\n";
+$str = 'string_val';
+var_dump( strcspn($str) );
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : error conditions ***
+
+-- Testing strcspn() function with Zero arguments --
+
+Warning: strcspn() expects at least 2 parameters, 0 given in %s on line %d
+NULL
+
+-- Testing strcspn() function with more than expected no. of arguments --
+
+Warning: strcspn() expects at most 4 parameters, 5 given in %s on line %d
+NULL
+
+-- Testing strcspn() function with less than expected no. of arguments --
+
+Warning: strcspn() expects at least 2 parameters, 1 given in %s on line %d
+NULL
+Done
diff --git a/ext/standard/tests/strings/strcspn_variation1.phpt b/ext/standard/tests/strings/strcspn_variation1.phpt
new file mode 100644
index 0000000000..f80e4615e2
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation1.phpt
@@ -0,0 +1,276 @@
+--TEST--
+Test strcspn() function : usage variations - unexpected values for str argument
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [, int start [, int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+
+/*
+* Testing strspn() : with different unexpected values for str argument
+*/
+
+echo "*** Testing strcspn() : with unexpected values for str argument ***\n";
+
+// Initialise function arguments not being substititued (if any)
+$mask = 'abons1234567890';
+$start = 1;
+$len = 10;
+
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// declaring class
+class sample {
+ public function __toString() {
+ return "object";
+ }
+}
+
+// creating a file resource
+$file_handle = fopen(__FILE__, 'r');
+
+
+//array of values to iterate over
+$values = array(
+
+ // int data
+ 0,
+ 1,
+ 12345,
+ -2345,
+
+ // float data
+ 10.5,
+ -10.5,
+ 10.5e10,
+ 10.6E-10,
+ .5,
+
+ // array data
+ array(),
+ array(0),
+ array(1),
+ array(1, 2),
+ array('color' => 'red', 'item' => 'pen'),
+
+ // null data
+ NULL,
+ null,
+
+ // boolean data
+ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+ "",
+ '',
+
+ // object data
+ new sample,
+
+ // undefined data
+ $undefined_var,
+
+ // unset data
+ $unset_var,
+
+ // resource
+ $file_handle
+);
+
+// loop through each element of the array for str
+
+foreach($values as $value) {
+ echo "\n-- Iteration with str value as \"$value\" \n";
+ var_dump( strcspn($value,$mask) ); // with default args
+ var_dump( strcspn($value,$mask,$start) ); // with default len value
+ var_dump( strcspn($value,$mask,$start,$len) ); // with all args
+};
+
+// closing the resource
+fclose($file_handle);
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with unexpected values for str argument ***
+
+Notice: Undefined variable: undefined_var in %s on line %d
+
+Notice: Undefined variable: unset_var in %s on line %d
+
+-- Iteration with str value as "0"
+int(0)
+int(0)
+int(0)
+
+-- Iteration with str value as "1"
+int(0)
+int(0)
+int(0)
+
+-- Iteration with str value as "12345"
+int(0)
+int(0)
+int(0)
+
+-- Iteration with str value as "-2345"
+int(1)
+int(0)
+int(0)
+
+-- Iteration with str value as "10.5"
+int(0)
+int(0)
+int(0)
+
+-- Iteration with str value as "-10.5"
+int(1)
+int(0)
+int(0)
+
+-- Iteration with str value as "105000000000"
+int(0)
+int(0)
+int(0)
+
+-- Iteration with str value as "1.06E-9"
+int(0)
+int(1)
+int(1)
+
+-- Iteration with str value as "0.5"
+int(0)
+int(1)
+int(1)
+
+-- Iteration with str value as "Array"
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with str value as "Array"
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with str value as "Array"
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with str value as "Array"
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with str value as "Array"
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with str value as ""
+int(0)
+bool(false)
+bool(false)
+
+-- Iteration with str value as ""
+int(0)
+bool(false)
+bool(false)
+
+-- Iteration with str value as "1"
+int(0)
+int(0)
+int(0)
+
+-- Iteration with str value as ""
+int(0)
+bool(false)
+bool(false)
+
+-- Iteration with str value as "1"
+int(0)
+int(0)
+int(0)
+
+-- Iteration with str value as ""
+int(0)
+bool(false)
+bool(false)
+
+-- Iteration with str value as ""
+int(0)
+bool(false)
+bool(false)
+
+-- Iteration with str value as ""
+int(0)
+bool(false)
+bool(false)
+
+-- Iteration with str value as "object"
+int(0)
+int(0)
+int(0)
+
+-- Iteration with str value as ""
+int(0)
+bool(false)
+bool(false)
+
+-- Iteration with str value as ""
+int(0)
+bool(false)
+bool(false)
+
+-- Iteration with str value as "Resource id #%d"
+
+Warning: strcspn() expects parameter 1 to be string, resource given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, resource given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 1 to be string, resource given in %s on line %d
+NULL
+Done
diff --git a/ext/standard/tests/strings/strcspn_variation10.phpt b/ext/standard/tests/strings/strcspn_variation10.phpt
new file mode 100644
index 0000000000..37bb00ec14
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation10.phpt
@@ -0,0 +1,272 @@
+--TEST--
+Test strcspn() function : usage variations - with varying mask & default start and len args
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [, int start [, int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : with varying mask and default start and len arguments
+*/
+
+echo "*** Testing strcspn() : with different mask strings and default start and len arguments ***\n";
+
+// initialing required variables
+$strings = array(
+ "",
+ '',
+ "\n",
+ '\n',
+ "hello\tworld\nhello\nworld\n",
+ 'hello\tworld\nhello\nworld\n',
+ "1234hello45world\t123",
+ '1234hello45world\t123',
+ "hello\0world\012",
+ 'hello\0world\012',
+ chr(0).chr(0),
+ chr(0)."hello\0world".chr(0),
+ chr(0).'hello\0world'.chr(0),
+ "hello".chr(0)."world",
+ 'hello'.chr(0).'world',
+ "hello\0\100\xaaaworld",
+ 'hello\0\100\xaaaworld'
+ );
+
+// defining array of mask strings
+$mask_array = array(
+ "",
+ '',
+ "\n\trsti \l",
+ '\n\trsti \l',
+ "\t",
+ "t\ ",
+ '\t',
+ "\t\ ",
+ " \t",
+ "\t\i\100\xa"
+ );
+
+
+// loop through each element of the array for mask argument
+$count = 1;
+foreach($strings as $str) {
+ echo "\n-- Itearation $count --\n";
+ foreach($mask_array as $mask) {
+ var_dump( strcspn($str,$mask) );
+ }
+ $count++;
+}
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with different mask strings and default start and len arguments ***
+
+-- Itearation 1 --
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+
+-- Itearation 2 --
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+
+-- Itearation 3 --
+int(1)
+int(1)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+
+-- Itearation 4 --
+int(2)
+int(2)
+int(0)
+int(0)
+int(2)
+int(0)
+int(0)
+int(0)
+int(2)
+int(0)
+
+-- Itearation 5 --
+int(24)
+int(24)
+int(2)
+int(2)
+int(5)
+int(24)
+int(24)
+int(5)
+int(5)
+int(5)
+
+-- Itearation 6 --
+int(28)
+int(28)
+int(2)
+int(2)
+int(28)
+int(5)
+int(5)
+int(5)
+int(28)
+int(5)
+
+-- Itearation 7 --
+int(20)
+int(20)
+int(6)
+int(6)
+int(16)
+int(20)
+int(20)
+int(16)
+int(16)
+int(16)
+
+-- Itearation 8 --
+int(21)
+int(21)
+int(6)
+int(6)
+int(21)
+int(16)
+int(16)
+int(16)
+int(21)
+int(16)
+
+-- Itearation 9 --
+int(5)
+int(5)
+int(2)
+int(2)
+int(12)
+int(12)
+int(12)
+int(12)
+int(12)
+int(11)
+
+-- Itearation 10 --
+int(16)
+int(16)
+int(2)
+int(2)
+int(16)
+int(5)
+int(5)
+int(5)
+int(16)
+int(5)
+
+-- Itearation 11 --
+int(0)
+int(0)
+int(2)
+int(2)
+int(2)
+int(2)
+int(2)
+int(2)
+int(2)
+int(2)
+
+-- Itearation 12 --
+int(0)
+int(0)
+int(3)
+int(3)
+int(13)
+int(13)
+int(13)
+int(13)
+int(13)
+int(13)
+
+-- Itearation 13 --
+int(0)
+int(0)
+int(3)
+int(3)
+int(14)
+int(6)
+int(6)
+int(6)
+int(14)
+int(6)
+
+-- Itearation 14 --
+int(5)
+int(5)
+int(2)
+int(2)
+int(11)
+int(11)
+int(11)
+int(11)
+int(11)
+int(11)
+
+-- Itearation 15 --
+int(5)
+int(5)
+int(2)
+int(2)
+int(11)
+int(11)
+int(11)
+int(11)
+int(11)
+int(11)
+
+-- Itearation 16 --
+int(5)
+int(5)
+int(2)
+int(2)
+int(14)
+int(14)
+int(14)
+int(14)
+int(14)
+int(6)
+
+-- Itearation 17 --
+int(21)
+int(21)
+int(2)
+int(2)
+int(21)
+int(5)
+int(5)
+int(5)
+int(21)
+int(5)
+Done \ No newline at end of file
diff --git a/ext/standard/tests/strings/strcspn_variation11.phpt b/ext/standard/tests/strings/strcspn_variation11.phpt
new file mode 100644
index 0000000000..28f1dbe458
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation11.phpt
@@ -0,0 +1,1306 @@
+--TEST--
+Test strcspn() function : usage variations - with varying start and default len args
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [, int start [, int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : with varying start and default len arguments
+*/
+
+echo "*** Testing strcspn() : with different start and default len values ***\n";
+
+// initialing required variables
+// initialing required variables
+$strings = array(
+ "",
+ '',
+ "\n",
+ '\n',
+ "hello\tworld\nhello\nworld\n",
+ 'hello\tworld\nhello\nworld\n',
+ "1234hello45world\t123",
+ '1234hello45world\t123',
+ "hello\0world\012",
+ 'hello\0world\012',
+ chr(0).chr(0),
+ chr(0)."hello\0world".chr(0),
+ chr(0).'hello\0world'.chr(0),
+ "hello".chr(0)."world",
+ 'hello'.chr(0).'world',
+ "hello\0\100\xaaaworld",
+ 'hello\0\100\xaaaworld'
+ );
+
+// defining array of mask strings
+$mask_array = array(
+ "",
+ '',
+ "\n\trsti \l",
+ '\n\trsti \l',
+ "\t",
+ "t\ ",
+ '\t',
+ "\t\ ",
+ " \t",
+ "\t\i\100\xa"
+ );
+
+//defining array of start values
+$start_array = array(
+ 0,
+ 1,
+ 2,
+ -1,
+ -2,
+ 2147483647, // max positive integer
+ -2147483648, // min negative integer
+ );
+
+
+// loop through each element of the arrays for str,mask and start arguments
+$count = 1;
+foreach($strings as $str) {
+ echo "\n-- Iteration $count --\n";
+ foreach($mask_array as $mask) {
+ foreach($start_array as $start) {
+ var_dump( strcspn($str,$mask,$start) );
+ }
+ }
+ $count++;
+}
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with different start and default len values ***
+
+-- Iteration 1 --
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+
+-- Iteration 2 --
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+
+-- Iteration 3 --
+int(1)
+int(0)
+bool(false)
+int(1)
+int(1)
+bool(false)
+int(1)
+int(1)
+int(0)
+bool(false)
+int(1)
+int(1)
+bool(false)
+int(1)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(1)
+int(1)
+bool(false)
+int(1)
+int(1)
+int(0)
+bool(false)
+int(1)
+int(1)
+bool(false)
+int(1)
+int(1)
+int(0)
+bool(false)
+int(1)
+int(1)
+bool(false)
+int(1)
+int(1)
+int(0)
+bool(false)
+int(1)
+int(1)
+bool(false)
+int(1)
+int(1)
+int(0)
+bool(false)
+int(1)
+int(1)
+bool(false)
+int(1)
+int(1)
+int(0)
+bool(false)
+int(1)
+int(1)
+bool(false)
+int(1)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+
+-- Iteration 4 --
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(0)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(0)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(0)
+int(0)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(0)
+int(0)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(0)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(0)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(0)
+
+-- Iteration 5 --
+int(24)
+int(23)
+int(22)
+int(1)
+int(2)
+bool(false)
+int(24)
+int(24)
+int(23)
+int(22)
+int(1)
+int(2)
+bool(false)
+int(24)
+int(2)
+int(1)
+int(0)
+int(0)
+int(1)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(24)
+int(23)
+int(22)
+int(1)
+int(2)
+bool(false)
+int(24)
+int(24)
+int(23)
+int(22)
+int(1)
+int(2)
+bool(false)
+int(24)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(0)
+int(1)
+bool(false)
+int(5)
+
+-- Iteration 6 --
+int(28)
+int(27)
+int(26)
+int(1)
+int(2)
+bool(false)
+int(28)
+int(28)
+int(27)
+int(26)
+int(1)
+int(2)
+bool(false)
+int(28)
+int(2)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(0)
+int(0)
+bool(false)
+int(2)
+int(28)
+int(27)
+int(26)
+int(1)
+int(2)
+bool(false)
+int(28)
+int(5)
+int(4)
+int(3)
+int(1)
+int(0)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(0)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(0)
+bool(false)
+int(5)
+int(28)
+int(27)
+int(26)
+int(1)
+int(2)
+bool(false)
+int(28)
+int(5)
+int(4)
+int(3)
+int(1)
+int(0)
+bool(false)
+int(5)
+
+-- Iteration 7 --
+int(20)
+int(19)
+int(18)
+int(1)
+int(2)
+bool(false)
+int(20)
+int(20)
+int(19)
+int(18)
+int(1)
+int(2)
+bool(false)
+int(20)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(20)
+int(19)
+int(18)
+int(1)
+int(2)
+bool(false)
+int(20)
+int(20)
+int(19)
+int(18)
+int(1)
+int(2)
+bool(false)
+int(20)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+
+-- Iteration 8 --
+int(21)
+int(20)
+int(19)
+int(1)
+int(2)
+bool(false)
+int(21)
+int(21)
+int(20)
+int(19)
+int(1)
+int(2)
+bool(false)
+int(21)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+int(21)
+int(20)
+int(19)
+int(1)
+int(2)
+bool(false)
+int(21)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(21)
+int(20)
+int(19)
+int(1)
+int(2)
+bool(false)
+int(21)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+
+-- Iteration 9 --
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(2)
+int(1)
+int(0)
+int(0)
+int(1)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(12)
+int(11)
+int(10)
+int(1)
+int(2)
+bool(false)
+int(12)
+int(12)
+int(11)
+int(10)
+int(1)
+int(2)
+bool(false)
+int(12)
+int(12)
+int(11)
+int(10)
+int(1)
+int(2)
+bool(false)
+int(12)
+int(12)
+int(11)
+int(10)
+int(1)
+int(2)
+bool(false)
+int(12)
+int(12)
+int(11)
+int(10)
+int(1)
+int(2)
+bool(false)
+int(12)
+int(11)
+int(10)
+int(9)
+int(0)
+int(1)
+bool(false)
+int(11)
+
+-- Iteration 10 --
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(16)
+int(15)
+int(14)
+int(1)
+int(2)
+bool(false)
+int(16)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+
+-- Iteration 11 --
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+
+-- Iteration 12 --
+int(0)
+int(5)
+int(4)
+int(0)
+int(1)
+bool(false)
+int(0)
+int(0)
+int(5)
+int(4)
+int(0)
+int(1)
+bool(false)
+int(0)
+int(3)
+int(2)
+int(1)
+int(1)
+int(2)
+bool(false)
+int(3)
+int(3)
+int(2)
+int(1)
+int(1)
+int(2)
+bool(false)
+int(3)
+int(13)
+int(12)
+int(11)
+int(1)
+int(2)
+bool(false)
+int(13)
+int(13)
+int(12)
+int(11)
+int(1)
+int(2)
+bool(false)
+int(13)
+int(13)
+int(12)
+int(11)
+int(1)
+int(2)
+bool(false)
+int(13)
+int(13)
+int(12)
+int(11)
+int(1)
+int(2)
+bool(false)
+int(13)
+int(13)
+int(12)
+int(11)
+int(1)
+int(2)
+bool(false)
+int(13)
+int(13)
+int(12)
+int(11)
+int(1)
+int(2)
+bool(false)
+int(13)
+
+-- Iteration 13 --
+int(0)
+int(12)
+int(11)
+int(0)
+int(1)
+bool(false)
+int(0)
+int(0)
+int(12)
+int(11)
+int(0)
+int(1)
+bool(false)
+int(0)
+int(3)
+int(2)
+int(1)
+int(1)
+int(2)
+bool(false)
+int(3)
+int(3)
+int(2)
+int(1)
+int(1)
+int(2)
+bool(false)
+int(3)
+int(14)
+int(13)
+int(12)
+int(1)
+int(2)
+bool(false)
+int(14)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+int(14)
+int(13)
+int(12)
+int(1)
+int(2)
+bool(false)
+int(14)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+
+-- Iteration 14 --
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(2)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(2)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+
+-- Iteration 15 --
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(2)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(2)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+int(11)
+int(10)
+int(9)
+int(1)
+int(2)
+bool(false)
+int(11)
+
+-- Iteration 16 --
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(2)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(2)
+int(14)
+int(13)
+int(12)
+int(1)
+int(2)
+bool(false)
+int(14)
+int(14)
+int(13)
+int(12)
+int(1)
+int(2)
+bool(false)
+int(14)
+int(14)
+int(13)
+int(12)
+int(1)
+int(2)
+bool(false)
+int(14)
+int(14)
+int(13)
+int(12)
+int(1)
+int(2)
+bool(false)
+int(14)
+int(14)
+int(13)
+int(12)
+int(1)
+int(2)
+bool(false)
+int(14)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+
+-- Iteration 17 --
+int(21)
+int(20)
+int(19)
+int(1)
+int(2)
+bool(false)
+int(21)
+int(21)
+int(20)
+int(19)
+int(1)
+int(2)
+bool(false)
+int(21)
+int(2)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(2)
+int(21)
+int(20)
+int(19)
+int(1)
+int(2)
+bool(false)
+int(21)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(21)
+int(20)
+int(19)
+int(1)
+int(2)
+bool(false)
+int(21)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+Done \ No newline at end of file
diff --git a/ext/standard/tests/strings/strcspn_variation12.phpt b/ext/standard/tests/strings/strcspn_variation12.phpt
new file mode 100644
index 0000000000..b6f8cac081
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation12.phpt
@@ -0,0 +1,2482 @@
+--TEST--
+Test strcspn() function : usage variations - with varying start and len args
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [,int start [,int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : with varying start and len arguments
+*/
+
+echo "*** Testing strcspn() : with different start and len values ***\n";
+
+// initialing required variables
+// initialing required variables
+$strings = array(
+ "",
+ '',
+ "\n",
+ '\n',
+ "hello\tworld\nhello\nworld\n",
+ "1234hello45world\t123",
+ "hello\0world\012",
+ chr(0).chr(0),
+ chr(0)."hello\0world".chr(0),
+ "hello".chr(0)."world",
+ "hello\0\100\xaworld",
+ );
+
+// defining array of mask strings
+$mask_array = array(
+ "",
+ '',
+ "\n\trsti \l",
+ "\t",
+ "t\ ",
+ "\t\i\100\xa"
+ );
+
+//defining array of start values
+$start_array = array(
+ 0,
+ 1,
+ 2,
+ -1,
+ 2147483647, // max positive integer
+ -2147483648 // min negative integer
+ );
+
+//defining array of len values
+$len_array = array(
+ 0,
+ 1,
+ 2,
+ -1,
+ 2147483647, // max positive integer
+ -2147483648 // min negative integer
+ );
+
+
+// loop through each element of the arrays for str,mask,start and len arguments
+
+$count = 1;
+foreach($strings as $str) {
+ echo "\n-- Iteration $count --\n";
+ foreach($mask_array as $mask) {
+ foreach($start_array as $start) {
+ foreach($len_array as $len) {
+ var_dump( strcspn($str,$mask,$start,$len) );
+ }
+ }
+ }
+ $count++;
+}
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with different start and len values ***
+
+-- Iteration 1 --
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+
+-- Iteration 2 --
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+
+-- Iteration 3 --
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+
+-- Iteration 4 --
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+
+-- Iteration 5 --
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(2)
+int(21)
+int(22)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(2)
+int(21)
+int(22)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(2)
+int(21)
+int(22)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+
+-- Iteration 6 --
+int(0)
+int(1)
+int(2)
+int(19)
+int(20)
+int(0)
+int(0)
+int(1)
+int(2)
+int(18)
+int(19)
+int(0)
+int(0)
+int(1)
+int(2)
+int(17)
+int(18)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(19)
+int(20)
+int(0)
+int(0)
+int(1)
+int(2)
+int(19)
+int(20)
+int(0)
+int(0)
+int(1)
+int(2)
+int(18)
+int(19)
+int(0)
+int(0)
+int(1)
+int(2)
+int(17)
+int(18)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(19)
+int(20)
+int(0)
+int(0)
+int(1)
+int(2)
+int(6)
+int(6)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(6)
+int(6)
+int(0)
+int(0)
+int(1)
+int(2)
+int(16)
+int(16)
+int(0)
+int(0)
+int(1)
+int(2)
+int(15)
+int(15)
+int(0)
+int(0)
+int(1)
+int(2)
+int(14)
+int(14)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(16)
+int(16)
+int(0)
+int(0)
+int(1)
+int(2)
+int(19)
+int(20)
+int(0)
+int(0)
+int(1)
+int(2)
+int(18)
+int(19)
+int(0)
+int(0)
+int(1)
+int(2)
+int(17)
+int(18)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(19)
+int(20)
+int(0)
+int(0)
+int(1)
+int(2)
+int(16)
+int(16)
+int(0)
+int(0)
+int(1)
+int(2)
+int(15)
+int(15)
+int(0)
+int(0)
+int(1)
+int(2)
+int(14)
+int(14)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(16)
+int(16)
+int(0)
+
+-- Iteration 7 --
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(11)
+int(12)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(2)
+int(9)
+int(10)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(11)
+int(12)
+int(0)
+int(0)
+int(1)
+int(2)
+int(11)
+int(12)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(2)
+int(9)
+int(10)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(11)
+int(12)
+int(0)
+int(0)
+int(1)
+int(2)
+int(11)
+int(11)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(10)
+int(0)
+int(0)
+int(1)
+int(2)
+int(9)
+int(9)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(11)
+int(11)
+int(0)
+
+-- Iteration 8 --
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+
+-- Iteration 9 --
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+int(0)
+int(1)
+int(2)
+int(11)
+int(12)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+int(0)
+int(1)
+int(2)
+int(11)
+int(12)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+int(0)
+int(1)
+int(2)
+int(11)
+int(12)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+
+-- Iteration 10 --
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(2)
+int(9)
+int(10)
+int(0)
+int(0)
+int(1)
+int(2)
+int(8)
+int(9)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(2)
+int(9)
+int(10)
+int(0)
+int(0)
+int(1)
+int(2)
+int(8)
+int(9)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(2)
+int(9)
+int(10)
+int(0)
+int(0)
+int(1)
+int(2)
+int(8)
+int(9)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+
+-- Iteration 11 --
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+int(0)
+int(1)
+int(2)
+int(11)
+int(12)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+int(0)
+int(1)
+int(2)
+int(11)
+int(12)
+int(0)
+int(0)
+int(1)
+int(2)
+int(10)
+int(11)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(12)
+int(13)
+int(0)
+int(0)
+int(1)
+int(2)
+int(6)
+int(6)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(6)
+int(6)
+int(0)
+Done \ No newline at end of file
diff --git a/ext/standard/tests/strings/strcspn_variation2.phpt b/ext/standard/tests/strings/strcspn_variation2.phpt
new file mode 100644
index 0000000000..df79e9afd6
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation2.phpt
@@ -0,0 +1,274 @@
+--TEST--
+Test strcspn() function : usage variations - unexpected values for mask argument
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [, int start [, int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : with different unexpected values for mask argument
+*/
+
+echo "*** Testing strcspn() : with diferent unexpected values of mask argument ***\n";
+
+$str = 'string_val';
+$start = 1;
+$len = 10;
+
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// declaring class
+class sample {
+ public function __toString() {
+ return "object";
+ }
+}
+
+// creating a file resource
+$file_handle = fopen(__FILE__, 'r');
+
+
+//array of values to iterate over
+$values = array(
+
+ // int data
+ 0,
+ 1,
+ 12345,
+ -2345,
+
+ // float data
+ 10.5,
+ -10.5,
+ 10.5e10,
+ 10.6E-10,
+ .5,
+
+ // array data
+ array(),
+ array(0),
+ array(1),
+ array(1, 2),
+ array('color' => 'red', 'item' => 'pen'),
+
+ // null data
+ NULL,
+ null,
+
+ // boolean data
+ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+ "",
+ '',
+
+ // object data
+ new sample(),
+
+ // undefined data
+ $undefined_var,
+
+ // unset data
+ $unset_var,
+
+ // resource
+ $file_handle
+);
+
+// loop through each element of the array for mask
+
+foreach($values as $value) {
+ echo "\n-- Iteration with mask value as \"$value\" -- \n";
+ var_dump( strcspn($str,$value) ); // with defalut args
+ var_dump( strcspn($str,$value,$start) ); // with default len value
+ var_dump( strcspn($str,$value,$start,$len) ); // with all args
+};
+
+// close the resource
+fclose($file_handle);
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with diferent unexpected values of mask argument ***
+
+Notice: Undefined variable: undefined_var in %s on line %d
+
+Notice: Undefined variable: unset_var in %s on line %d
+
+-- Iteration with mask value as "0" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "1" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "12345" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "-2345" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "10.5" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "-10.5" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "105000000000" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "1.06E-9" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "0.5" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "Array" --
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with mask value as "Array" --
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with mask value as "Array" --
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with mask value as "Array" --
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with mask value as "Array" --
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, array given in %s on line %d
+NULL
+
+-- Iteration with mask value as "" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "1" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "1" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "object" --
+int(1)
+int(0)
+int(0)
+
+-- Iteration with mask value as "" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "" --
+int(10)
+int(9)
+int(9)
+
+-- Iteration with mask value as "Resource id #%d" --
+
+Warning: strcspn() expects parameter 2 to be string, resource given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, resource given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 2 to be string, resource given in %s on line %d
+NULL
+Done
diff --git a/ext/standard/tests/strings/strcspn_variation3.phpt b/ext/standard/tests/strings/strcspn_variation3.phpt
new file mode 100644
index 0000000000..869f46537c
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation3.phpt
@@ -0,0 +1,245 @@
+--TEST--
+Test strcspn() function : usage variations - unexpected values of start argument
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [,int start [,int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : with unexpected values of start argument
+*/
+
+echo "*** Testing strcspn() : with unexpected values of start argument ***\n";
+
+// initialing required variables
+$str = 'string_val';
+$mask = 'soibtFTf1234567890';
+$len = 10;
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// declaring class
+class sample {
+ public function __toString() {
+ return "object";
+ }
+}
+
+// creating a file resource
+$file_handle = fopen(__FILE__, 'r');
+
+
+//array of values to iterate over
+$values = array(
+
+ // float data
+ 10.5,
+ -10.5,
+ 10.5e10,
+ 10.6E-10,
+ .5,
+
+ // array data
+ array(),
+ array(0),
+ array(1),
+ array(1, 2),
+ array('color' => 'red', 'item' => 'pen'),
+
+ // null data
+ NULL,
+ null,
+
+ // boolean data
+ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+ "",
+ '',
+
+ // string data
+ "string",
+ 'string',
+
+ // object data
+ new sample(),
+
+ // undefined data
+ $undefined_var,
+
+ // unset data
+ $unset_var,
+
+ // resource
+ $file_handle
+);
+
+// loop through each element of the array for start
+
+foreach($values as $value) {
+ echo "\n-- Iteration with start value as \"$value\" --\n";
+ var_dump( strcspn($str,$mask,$value) ); // with default len value
+ var_dump( strcspn($str,$mask,$value,$len) ); // with all args
+};
+
+// closing the resource
+fclose($file_handle);
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with unexpected values of start argument ***
+
+Notice: Undefined variable: undefined_var in %s on line %d
+
+Notice: Undefined variable: unset_var in %s on line %d
+
+-- Iteration with start value as "10.5" --
+int(0)
+int(0)
+
+-- Iteration with start value as "-10.5" --
+int(0)
+int(0)
+
+-- Iteration with start value as "105000000000" --
+bool(false)
+bool(false)
+
+-- Iteration with start value as "1.06E-9" --
+int(0)
+int(0)
+
+-- Iteration with start value as "0.5" --
+int(0)
+int(0)
+
+-- Iteration with start value as "Array" --
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with start value as "Array" --
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with start value as "Array" --
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with start value as "Array" --
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with start value as "Array" --
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with start value as "" --
+int(0)
+int(0)
+
+-- Iteration with start value as "" --
+int(0)
+int(0)
+
+-- Iteration with start value as "1" --
+int(0)
+int(0)
+
+-- Iteration with start value as "" --
+int(0)
+int(0)
+
+-- Iteration with start value as "1" --
+int(0)
+int(0)
+
+-- Iteration with start value as "" --
+int(0)
+int(0)
+
+-- Iteration with start value as "" --
+
+Warning: strcspn() expects parameter 3 to be long, string given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, string given in %s on line %d
+NULL
+
+-- Iteration with start value as "" --
+
+Warning: strcspn() expects parameter 3 to be long, string given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, string given in %s on line %d
+NULL
+
+-- Iteration with start value as "string" --
+
+Warning: strcspn() expects parameter 3 to be long, string given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, string given in %s on line %d
+NULL
+
+-- Iteration with start value as "string" --
+
+Warning: strcspn() expects parameter 3 to be long, string given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, string given in %s on line %d
+NULL
+
+-- Iteration with start value as "object" --
+
+Warning: strcspn() expects parameter 3 to be long, object given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, object given in %s on line %d
+NULL
+
+-- Iteration with start value as "" --
+int(0)
+int(0)
+
+-- Iteration with start value as "" --
+int(0)
+int(0)
+
+-- Iteration with start value as "Resource id #%d" --
+
+Warning: strcspn() expects parameter 3 to be long, resource given in %s on line %d
+NULL
+
+Warning: strcspn() expects parameter 3 to be long, resource given in %s on line %d
+NULL
+Done
diff --git a/ext/standard/tests/strings/strcspn_variation4.phpt b/ext/standard/tests/strings/strcspn_variation4.phpt
new file mode 100644
index 0000000000..6ea48219cf
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation4.phpt
@@ -0,0 +1,198 @@
+--TEST--
+Test strcspn() function : usage variations - unexpected values of len argument
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [, int start [, int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : with unexpected values of len argument
+*/
+
+echo "*** Testing strcspn() : with unexpected values of len argument ***\n";
+
+// initialing required variables
+$str = 'string_val';
+$mask = 'soibtFTf1234567890';
+$start = 0;
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+// declaring class
+class sample {
+ public function __toString() {
+ return "object";
+ }
+}
+
+// creating a file resource
+$file_handle = fopen(__FILE__, 'r');
+
+
+//array of values to iterate over
+$values = array(
+
+ // float data
+ 10.5,
+ -10.5,
+ 10.5e10,
+ 10.6E-10,
+ .5,
+
+ // array data
+ array(),
+ array(0),
+ array(1),
+ array(1, 2),
+ array('color' => 'red', 'item' => 'pen'),
+
+ // null data
+ NULL,
+ null,
+
+ // boolean data
+ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+ "",
+ '',
+
+ // string data
+ "string",
+ 'string',
+
+ // object data
+ new sample(),
+
+ // undefined data
+ $undefined_var,
+
+ // unset data
+ $unset_var,
+
+ // resource
+ $file_handle
+);
+
+// loop through each element of the array for start
+
+foreach($values as $value) {
+ echo "\n-- Iteration with len value as \"$value\" --\n";
+ var_dump( strcspn($str,$mask,$start,$value) ); // with all args
+};
+
+// closing the resource
+fclose($file_handle);
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with unexpected values of len argument ***
+
+Notice: Undefined variable: undefined_var in %s on line %d
+
+Notice: Undefined variable: unset_var in %s on line %d
+
+-- Iteration with len value as "10.5" --
+int(0)
+
+-- Iteration with len value as "-10.5" --
+int(0)
+
+-- Iteration with len value as "105000000000" --
+int(0)
+
+-- Iteration with len value as "1.06E-9" --
+int(0)
+
+-- Iteration with len value as "0.5" --
+int(0)
+
+-- Iteration with len value as "Array" --
+
+Warning: strcspn() expects parameter 4 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with len value as "Array" --
+
+Warning: strcspn() expects parameter 4 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with len value as "Array" --
+
+Warning: strcspn() expects parameter 4 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with len value as "Array" --
+
+Warning: strcspn() expects parameter 4 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with len value as "Array" --
+
+Warning: strcspn() expects parameter 4 to be long, array given in %s on line %d
+NULL
+
+-- Iteration with len value as "" --
+int(0)
+
+-- Iteration with len value as "" --
+int(0)
+
+-- Iteration with len value as "1" --
+int(0)
+
+-- Iteration with len value as "" --
+int(0)
+
+-- Iteration with len value as "1" --
+int(0)
+
+-- Iteration with len value as "" --
+int(0)
+
+-- Iteration with len value as "" --
+
+Warning: strcspn() expects parameter 4 to be long, string given in %s on line %d
+NULL
+
+-- Iteration with len value as "" --
+
+Warning: strcspn() expects parameter 4 to be long, string given in %s on line %d
+NULL
+
+-- Iteration with len value as "string" --
+
+Warning: strcspn() expects parameter 4 to be long, string given in %s on line %d
+NULL
+
+-- Iteration with len value as "string" --
+
+Warning: strcspn() expects parameter 4 to be long, string given in %s on line %d
+NULL
+
+-- Iteration with len value as "object" --
+
+Warning: strcspn() expects parameter 4 to be long, object given in %s on line %d
+NULL
+
+-- Iteration with len value as "" --
+int(0)
+
+-- Iteration with len value as "" --
+int(0)
+
+-- Iteration with len value as "Resource id #%d" --
+
+Warning: strcspn() expects parameter 4 to be long, resource given in %s on line %d
+NULL
+Done
diff --git a/ext/standard/tests/strings/strcspn_variation5.phpt b/ext/standard/tests/strings/strcspn_variation5.phpt
new file mode 100644
index 0000000000..a3dfa5177f
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation5.phpt
Binary files differ
diff --git a/ext/standard/tests/strings/strcspn_variation6.phpt b/ext/standard/tests/strings/strcspn_variation6.phpt
new file mode 100644
index 0000000000..92fa3d0951
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation6.phpt
@@ -0,0 +1,177 @@
+--TEST--
+Test strcspn() function : usage variations - with heredoc strings, varying mask & default start and len args
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [,int start [,int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : with heredoc string, varying mask and default start and len arguments
+*/
+
+echo "*** Testing strcspn() : with different mask strings ***\n";
+
+// initialing required variables
+// defining different heredoc strings
+$empty_heredoc = <<<EOT
+EOT;
+
+$heredoc_with_newline = <<<EOT
+\n
+
+EOT;
+
+$heredoc_with_characters = <<<EOT
+first line of heredoc string
+second line of heredoc string
+third line of heredocstring
+EOT;
+
+$heredoc_with_newline_and_tabs = <<<EOT
+hello\tworld\nhello\nworld\n
+EOT;
+
+$heredoc_with_alphanumerics = <<<EOT
+hello123world456
+1234hello\t1234
+EOT;
+
+$heredoc_with_embedded_nulls = <<<EOT
+hello\0world\0hello
+\0hello\0
+EOT;
+
+$heredoc_with_hexa_octal = <<<EOT
+hello\0\100\xaaworld\0hello
+\0hello\0
+EOT;
+
+$heredoc_strings = array(
+ $empty_heredoc,
+ $heredoc_with_newline,
+ $heredoc_with_characters,
+ $heredoc_with_newline_and_tabs,
+ $heredoc_with_alphanumerics,
+ $heredoc_with_embedded_nulls,
+ $heredoc_with_hexa_octal
+ );
+
+// defining array of mask strings
+$mask_array = array(
+ "",
+ '',
+ "\n\trsti \l",
+ '\n\trsti \l',
+ "\t",
+ "t\ ",
+ '\t',
+ "\t\ ",
+ " \t",
+ "\t\i\100\xaa"
+ );
+
+
+// loop through each element of the arrays for string and mask arguments
+
+$count = 1;
+foreach($heredoc_strings as $str) {
+ echo "\n-- Iteration $count --\n";
+ foreach($mask_array as $mask) {
+ var_dump( strcspn($str,$mask) ); // with default start and len value
+ }
+ $count++;
+}
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with different mask strings ***
+
+-- Iteration 1 --
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+
+-- Iteration 2 --
+int(2)
+int(2)
+int(0)
+int(2)
+int(2)
+int(2)
+int(2)
+int(2)
+int(2)
+int(2)
+
+-- Iteration 3 --
+int(86)
+int(86)
+int(1)
+int(1)
+int(86)
+int(4)
+int(4)
+int(5)
+int(5)
+int(1)
+
+-- Iteration 4 --
+int(24)
+int(24)
+int(2)
+int(2)
+int(5)
+int(24)
+int(24)
+int(5)
+int(5)
+int(5)
+
+-- Iteration 5 --
+int(31)
+int(31)
+int(2)
+int(2)
+int(26)
+int(31)
+int(31)
+int(26)
+int(26)
+int(26)
+
+-- Iteration 6 --
+int(5)
+int(5)
+int(2)
+int(2)
+int(25)
+int(25)
+int(25)
+int(25)
+int(25)
+int(25)
+
+-- Iteration 7 --
+int(5)
+int(5)
+int(2)
+int(2)
+int(27)
+int(27)
+int(27)
+int(27)
+int(27)
+int(6)
+Done
diff --git a/ext/standard/tests/strings/strcspn_variation7.phpt b/ext/standard/tests/strings/strcspn_variation7.phpt
new file mode 100644
index 0000000000..ae01f91be3
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation7.phpt
@@ -0,0 +1,612 @@
+--TEST--
+Test strcspn() function : usage variations - with heredoc strings, varying start and default len args
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [, int start [,int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : with heredoc string, varying start and default len arguments
+*/
+
+echo "*** Testing strcspn() : with different start values ***\n";
+
+// initialing required variables
+// defining different heredoc strings
+$empty_heredoc = <<<EOT
+EOT;
+
+$heredoc_with_newline = <<<EOT
+\n
+
+EOT;
+
+$heredoc_with_characters = <<<EOT
+first line of heredoc string
+second line of heredoc string
+third line of heredocstring
+EOT;
+
+$heredoc_with_newline_and_tabs = <<<EOT
+hello\tworld\nhello\nworld\n
+EOT;
+
+$heredoc_with_alphanumerics = <<<EOT
+hello123world456
+1234hello\t1234
+EOT;
+
+$heredoc_with_embedded_nulls = <<<EOT
+hello\0world\0hello
+\0hello\0
+EOT;
+
+$heredoc_with_hexa_octal = <<<EOT
+hello\0\100\xaaworld\0hello
+\0hello\0
+EOT;
+
+$heredoc_strings = array(
+ $empty_heredoc,
+ $heredoc_with_newline,
+ $heredoc_with_characters,
+ $heredoc_with_newline_and_tabs,
+ $heredoc_with_alphanumerics,
+ $heredoc_with_embedded_nulls,
+ $heredoc_with_hexa_octal
+ );
+
+
+// defining array of mask strings
+
+$mask_array = array(
+ "",
+ '',
+ "\n\trsti \l",
+ '\n\trsti \l',
+ "\t",
+ "t\ ",
+ '\t',
+ "\t\ ",
+ " \t",
+ "\t\i\100\xaa"
+ );
+
+// definig array of start values
+$start_array = array(
+ 0,
+ 1,
+ 2,
+ -1,
+ -2,
+ 2147483647, // max positive integer
+ -2147483648, // min negative integer
+ );
+
+
+// loop through each element of the arrays for str, mask and start arguments
+
+$count = 1;
+foreach($heredoc_strings as $str) {
+ echo "\n-- Iteration $count --\n";
+ foreach($mask_array as $mask) {
+ foreach($start_array as $start) {
+ var_dump( strcspn($str,$mask,$start) ); // with default len value
+ }
+ }
+ $count++;
+}
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with different start values ***
+
+-- Iteration 1 --
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(0)
+bool(false)
+bool(false)
+int(0)
+int(0)
+bool(false)
+int(0)
+
+-- Iteration 2 --
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+int(0)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+
+-- Iteration 3 --
+int(86)
+int(85)
+int(84)
+int(1)
+int(2)
+bool(false)
+int(86)
+int(86)
+int(85)
+int(84)
+int(1)
+int(2)
+bool(false)
+int(86)
+int(1)
+int(0)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(1)
+int(1)
+int(0)
+int(0)
+int(1)
+int(0)
+bool(false)
+int(1)
+int(86)
+int(85)
+int(84)
+int(1)
+int(2)
+bool(false)
+int(86)
+int(4)
+int(3)
+int(2)
+int(1)
+int(2)
+bool(false)
+int(4)
+int(4)
+int(3)
+int(2)
+int(1)
+int(2)
+bool(false)
+int(4)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(1)
+int(0)
+int(5)
+int(1)
+int(2)
+bool(false)
+int(1)
+
+-- Iteration 4 --
+int(24)
+int(23)
+int(22)
+int(1)
+int(2)
+bool(false)
+int(24)
+int(24)
+int(23)
+int(22)
+int(1)
+int(2)
+bool(false)
+int(24)
+int(2)
+int(1)
+int(0)
+int(0)
+int(1)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(24)
+int(23)
+int(22)
+int(1)
+int(2)
+bool(false)
+int(24)
+int(24)
+int(23)
+int(22)
+int(1)
+int(2)
+bool(false)
+int(24)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(1)
+int(2)
+bool(false)
+int(5)
+
+-- Iteration 5 --
+int(31)
+int(30)
+int(29)
+int(1)
+int(2)
+bool(false)
+int(31)
+int(31)
+int(30)
+int(29)
+int(1)
+int(2)
+bool(false)
+int(31)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(26)
+int(25)
+int(24)
+int(1)
+int(2)
+bool(false)
+int(26)
+int(31)
+int(30)
+int(29)
+int(1)
+int(2)
+bool(false)
+int(31)
+int(31)
+int(30)
+int(29)
+int(1)
+int(2)
+bool(false)
+int(31)
+int(26)
+int(25)
+int(24)
+int(1)
+int(2)
+bool(false)
+int(26)
+int(26)
+int(25)
+int(24)
+int(1)
+int(2)
+bool(false)
+int(26)
+int(26)
+int(25)
+int(24)
+int(1)
+int(2)
+bool(false)
+int(26)
+
+-- Iteration 6 --
+int(5)
+int(4)
+int(3)
+int(0)
+int(1)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(0)
+int(1)
+bool(false)
+int(5)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(25)
+int(24)
+int(23)
+int(1)
+int(2)
+bool(false)
+int(25)
+int(25)
+int(24)
+int(23)
+int(1)
+int(2)
+bool(false)
+int(25)
+int(25)
+int(24)
+int(23)
+int(1)
+int(2)
+bool(false)
+int(25)
+int(25)
+int(24)
+int(23)
+int(1)
+int(2)
+bool(false)
+int(25)
+int(25)
+int(24)
+int(23)
+int(1)
+int(2)
+bool(false)
+int(25)
+int(25)
+int(24)
+int(23)
+int(1)
+int(2)
+bool(false)
+int(25)
+
+-- Iteration 7 --
+int(5)
+int(4)
+int(3)
+int(0)
+int(1)
+bool(false)
+int(5)
+int(5)
+int(4)
+int(3)
+int(0)
+int(1)
+bool(false)
+int(5)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(2)
+int(1)
+int(0)
+int(1)
+int(2)
+bool(false)
+int(2)
+int(27)
+int(26)
+int(25)
+int(1)
+int(2)
+bool(false)
+int(27)
+int(27)
+int(26)
+int(25)
+int(1)
+int(2)
+bool(false)
+int(27)
+int(27)
+int(26)
+int(25)
+int(1)
+int(2)
+bool(false)
+int(27)
+int(27)
+int(26)
+int(25)
+int(1)
+int(2)
+bool(false)
+int(27)
+int(27)
+int(26)
+int(25)
+int(1)
+int(2)
+bool(false)
+int(27)
+int(6)
+int(5)
+int(4)
+int(1)
+int(2)
+bool(false)
+int(6)
+Done \ No newline at end of file
diff --git a/ext/standard/tests/strings/strcspn_variation8.phpt b/ext/standard/tests/strings/strcspn_variation8.phpt
new file mode 100644
index 0000000000..6b662ecdec
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation8.phpt
@@ -0,0 +1,1892 @@
+--TEST--
+Test strcspn() function : usage variations - with heredoc strings, varying start and len args
+--FILE--
+<?php
+/* Prototype : proto int strcspn(string str, string mask [, int start [, int len]])
+ * Description: Finds length of initial segment consisting entirely of characters not found in mask.
+ If start or/and length is provided works like strcspn(substr($s,$start,$len),$bad_chars)
+ * Source code: ext/standard/string.c
+ * Alias to functions: none
+*/
+
+/*
+* Testing strcspn() : with heredoc string, varying start and len arguments
+*/
+
+echo "*** Testing strcspn() : with different start and len values ***\n";
+
+// initialing required variables
+// defining different heredoc strings
+$empty_heredoc = <<<EOT
+EOT;
+
+$heredoc_with_newline = <<<EOT
+\n
+
+EOT;
+
+$heredoc_with_characters = <<<EOT
+first line of heredoc string
+second line of heredoc string
+third line of heredocstring
+EOT;
+
+$heredoc_with_newline_and_tabs = <<<EOT
+hello\tworld\nhello\nworld\n
+EOT;
+
+$heredoc_with_alphanumerics = <<<EOT
+hello123world456
+1234hello\t1234
+EOT;
+
+$heredoc_with_embedded_nulls = <<<EOT
+hello\0world\0hello
+\0hello\0
+EOT;
+
+$heredoc_with_hexa_octal = <<<EOT
+hello\0\100\xaaworld\0hello
+\0hello\0
+EOT;
+
+$heredoc_strings = array(
+ $empty_heredoc,
+ $heredoc_with_newline,
+ $heredoc_with_characters,
+ $heredoc_with_newline_and_tabs,
+ $heredoc_with_alphanumerics,
+ $heredoc_with_embedded_nulls,
+ $heredoc_with_hexa_octal
+ );
+
+// defining array of mask strings
+$mask_array = array(
+ "",
+ '',
+ "\n\trsti \l",
+ "\t",
+ "t\ ",
+ " \t",
+ "\t\i\100\xaa"
+ );
+
+// definig array of start values
+$start_array = array(
+ 0,
+ 1,
+ 2,
+ -1,
+ 2147483647, // max positive integer
+ -2147483648, // min negative integer
+ );
+
+// defining array of len values
+$len_array = array(
+ 0,
+ 1,
+ 2,
+ -1,
+ 2147483647, // max positive integer
+ -2147483648, // min negative integer
+ );
+
+
+// loop through each element of the arrays for all arguments
+
+$count = 1;
+foreach($heredoc_strings as $str) {
+ echo "\n-- Iteration $count --\n";
+ foreach($mask_array as $mask) {
+ foreach($start_array as $start) {
+ foreach($len_array as $len) {
+ var_dump( strcspn($str,$mask,$start,$len) );
+ }
+ }
+ }
+ $count++;
+}
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing strcspn() : with different start and len values ***
+
+-- Iteration 1 --
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+
+-- Iteration 2 --
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(1)
+int(2)
+int(0)
+
+-- Iteration 3 --
+int(0)
+int(1)
+int(2)
+int(85)
+int(86)
+int(0)
+int(0)
+int(1)
+int(2)
+int(84)
+int(85)
+int(0)
+int(0)
+int(1)
+int(2)
+int(83)
+int(84)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(85)
+int(86)
+int(0)
+int(0)
+int(1)
+int(2)
+int(85)
+int(86)
+int(0)
+int(0)
+int(1)
+int(2)
+int(84)
+int(85)
+int(0)
+int(0)
+int(1)
+int(2)
+int(83)
+int(84)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(85)
+int(86)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(1)
+int(2)
+int(85)
+int(86)
+int(0)
+int(0)
+int(1)
+int(2)
+int(84)
+int(85)
+int(0)
+int(0)
+int(1)
+int(2)
+int(83)
+int(84)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(85)
+int(86)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+
+-- Iteration 4 --
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(2)
+int(21)
+int(22)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(2)
+int(21)
+int(22)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(2)
+int(21)
+int(22)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+
+-- Iteration 5 --
+int(0)
+int(1)
+int(2)
+int(30)
+int(31)
+int(0)
+int(0)
+int(1)
+int(2)
+int(29)
+int(30)
+int(0)
+int(0)
+int(1)
+int(2)
+int(28)
+int(29)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(30)
+int(31)
+int(0)
+int(0)
+int(1)
+int(2)
+int(30)
+int(31)
+int(0)
+int(0)
+int(1)
+int(2)
+int(29)
+int(30)
+int(0)
+int(0)
+int(1)
+int(2)
+int(28)
+int(29)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(30)
+int(31)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(26)
+int(26)
+int(0)
+int(0)
+int(1)
+int(2)
+int(25)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(24)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(26)
+int(26)
+int(0)
+int(0)
+int(1)
+int(2)
+int(30)
+int(31)
+int(0)
+int(0)
+int(1)
+int(2)
+int(29)
+int(30)
+int(0)
+int(0)
+int(1)
+int(2)
+int(28)
+int(29)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(30)
+int(31)
+int(0)
+int(0)
+int(1)
+int(2)
+int(26)
+int(26)
+int(0)
+int(0)
+int(1)
+int(2)
+int(25)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(24)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(26)
+int(26)
+int(0)
+int(0)
+int(1)
+int(2)
+int(26)
+int(26)
+int(0)
+int(0)
+int(1)
+int(2)
+int(25)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(24)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(26)
+int(26)
+int(0)
+
+-- Iteration 6 --
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(2)
+int(23)
+int(24)
+int(0)
+int(0)
+int(1)
+int(2)
+int(22)
+int(23)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+
+-- Iteration 7 --
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(2)
+int(3)
+int(3)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(1)
+int(1)
+int(1)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(2)
+int(2)
+int(0)
+int(0)
+int(1)
+int(2)
+int(26)
+int(27)
+int(0)
+int(0)
+int(1)
+int(2)
+int(25)
+int(26)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(26)
+int(27)
+int(0)
+int(0)
+int(1)
+int(2)
+int(26)
+int(27)
+int(0)
+int(0)
+int(1)
+int(2)
+int(25)
+int(26)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(26)
+int(27)
+int(0)
+int(0)
+int(1)
+int(2)
+int(26)
+int(27)
+int(0)
+int(0)
+int(1)
+int(2)
+int(25)
+int(26)
+int(0)
+int(0)
+int(1)
+int(2)
+int(24)
+int(25)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(26)
+int(27)
+int(0)
+int(0)
+int(1)
+int(2)
+int(6)
+int(6)
+int(0)
+int(0)
+int(1)
+int(2)
+int(5)
+int(5)
+int(0)
+int(0)
+int(1)
+int(2)
+int(4)
+int(4)
+int(0)
+int(0)
+int(1)
+int(1)
+int(0)
+int(1)
+int(0)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(1)
+int(2)
+int(6)
+int(6)
+int(0)
+Done \ No newline at end of file
diff --git a/ext/standard/tests/strings/strcspn_variation9.phpt b/ext/standard/tests/strings/strcspn_variation9.phpt
new file mode 100644
index 0000000000..e7650844da
--- /dev/null
+++ b/ext/standard/tests/strings/strcspn_variation9.phpt
Binary files differ