summaryrefslogtreecommitdiff
path: root/ext/standard/tests/strings/strncmp_error.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/strings/strncmp_error.phpt')
-rw-r--r--ext/standard/tests/strings/strncmp_error.phpt45
1 files changed, 45 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/strncmp_error.phpt b/ext/standard/tests/strings/strncmp_error.phpt
new file mode 100644
index 0000000..8e4d280
--- /dev/null
+++ b/ext/standard/tests/strings/strncmp_error.phpt
@@ -0,0 +1,45 @@
+--TEST--
+Test strncmp() function : error conditions
+--FILE--
+<?php
+/* Prototype : int strncmp ( string $str1, string $str2, int $len );
+ * Description: Binary safe case-sensitive string comparison of the first n characters
+ * Source code: Zend/zend_builtin_functions.c
+*/
+
+/* Test strncmp() function with more/less number of args and invalid args */
+
+echo "*** Testing strncmp() function: error conditions ***\n";
+$str1 = 'string_val';
+$str2 = 'string_val';
+$len = 10;
+$extra_arg = 10;
+
+var_dump( strncmp() ); //Zero argument
+var_dump( strncmp($str1) ); //One argument, less than expected no. of args
+var_dump( strncmp($str1, $str2) ); //Two arguments, less than expected no. of args
+var_dump( strncmp($str1, $str2, $len, $extra_arg) ); //Four arguments, greater than expected no. of args
+
+/* Invalid argument for $len */
+$len = -10;
+var_dump( strncmp($str1, $str2, $len) );
+echo "*** Done ***\n";
+?>
+--EXPECTF--
+*** Testing strncmp() function: error conditions ***
+
+Warning: strncmp() expects exactly 3 parameters, 0 given in %s on line %d
+NULL
+
+Warning: strncmp() expects exactly 3 parameters, 1 given in %s on line %d
+NULL
+
+Warning: strncmp() expects exactly 3 parameters, 2 given in %s on line %d
+NULL
+
+Warning: strncmp() expects exactly 3 parameters, 4 given in %s on line %d
+NULL
+
+Warning: Length must be greater than or equal to 0 in %s on line %d
+bool(false)
+*** Done ***