1--TEST-- 2Test umask() function : usage variation 3--CREDITS-- 4Dave Kelsey <d_kelsey@uk.ibm.com> 5--SKIPIF-- 6<?php 7if (substr(PHP_OS, 0, 3) == 'WIN') { 8 die('skip.. only for Non Windows'); 9} 10?> 11--FILE-- 12<?php 13/* Prototype : int umask([int mask]) 14 * Description: Return or change the umask 15 * Source code: ext/standard/file.c 16 * Alias to functions: 17 */ 18 19echo "*** Testing umask() : usage variation ***\n"; 20 21// Define error handler 22function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) { 23 if (error_reporting() != 0) { 24 // report non-silenced errors 25 echo "Error: $err_no - $err_msg, $filename($linenum)\n"; 26 } 27} 28set_error_handler('test_error_handler'); 29 30// Initialise function arguments not being substituted (if any) 31 32//get an unset variable 33$unset_var = 10; 34unset ($unset_var); 35 36// define some classes 37class classWithToString 38{ 39 public function __toString() { 40 return "Class A object"; 41 } 42} 43 44class classWithoutToString 45{ 46} 47 48// heredoc string 49$heredoc = <<<EOT 50hello world 51EOT; 52 53// add arrays 54$index_array = array (1, 2, 3); 55$assoc_array = array ('one' => 1, 'two' => 2); 56 57//array of values to iterate over 58$inputs = array( 59 //out of boundary integers 60 'int -100' => -100, 61 'int 99999' => 99999, 62 63 // float data 64 'float 10.5' => 10.5, 65 'float -10.5' => -10.5, 66 'float 12.3456789000e10' => 12.3456789000e10, 67 //'float -12.3456789000e10' => -12.3456789000e10, different in p8 68 'float .5' => .5, 69 70 // array data 71 'empty array' => array(), 72 'int indexed array' => $index_array, 73 'associative array' => $assoc_array, 74 'nested arrays' => array('foo', $index_array, $assoc_array), 75 76 // null data 77 'uppercase NULL' => NULL, 78 'lowercase null' => null, 79 80 // boolean data 81 'lowercase true' => true, 82 'lowercase false' =>false, 83 'uppercase TRUE' =>TRUE, 84 'uppercase FALSE' =>FALSE, 85 86 // empty data 87 'empty string DQ' => "", 88 'empty string SQ' => '', 89 90 // string data 91 'string DQ' => "string", 92 'string SQ' => 'string', 93 'mixed case string' => "sTrInG", 94 'heredoc' => $heredoc, 95 96 // object data 97 'instance of classWithToString' => new classWithToString(), 98 'instance of classWithoutToString' => new classWithoutToString(), 99 100 // undefined data 101 'undefined var' => @$undefined_var, 102 103 // unset data 104 'unset var' => @$unset_var, 105); 106 107// loop through each element of the array for mask 108 109foreach($inputs as $key =>$value) { 110 echo "\n--$key--\n"; 111 umask(0); 112 var_dump(umask($value)); 113 var_dump( umask() & 0777); 114}; 115 116?> 117===DONE=== 118--EXPECTF-- 119*** Testing umask() : usage variation *** 120 121--int -100-- 122int(0) 123int(412) 124 125--int 99999-- 126int(0) 127int(159) 128 129--float 10.5-- 130int(0) 131int(10) 132 133--float -10.5-- 134int(0) 135int(502) 136 137--float 12.3456789000e10-- 138int(0) 139int(%d) 140 141--float .5-- 142int(0) 143int(0) 144 145--empty array-- 146Error: 2 - umask() expects parameter 1 to be long, array given, %s(%d) 147bool(false) 148int(63) 149 150--int indexed array-- 151Error: 2 - umask() expects parameter 1 to be long, array given, %s(%d) 152bool(false) 153int(63) 154 155--associative array-- 156Error: 2 - umask() expects parameter 1 to be long, array given, %s(%d) 157bool(false) 158int(63) 159 160--nested arrays-- 161Error: 2 - umask() expects parameter 1 to be long, array given, %s(%d) 162bool(false) 163int(63) 164 165--uppercase NULL-- 166int(0) 167int(0) 168 169--lowercase null-- 170int(0) 171int(0) 172 173--lowercase true-- 174int(0) 175int(1) 176 177--lowercase false-- 178int(0) 179int(0) 180 181--uppercase TRUE-- 182int(0) 183int(1) 184 185--uppercase FALSE-- 186int(0) 187int(0) 188 189--empty string DQ-- 190Error: 2 - umask() expects parameter 1 to be long, string given, %s(%d) 191bool(false) 192int(63) 193 194--empty string SQ-- 195Error: 2 - umask() expects parameter 1 to be long, string given, %s(%d) 196bool(false) 197int(63) 198 199--string DQ-- 200Error: 2 - umask() expects parameter 1 to be long, string given, %s(%d) 201bool(false) 202int(63) 203 204--string SQ-- 205Error: 2 - umask() expects parameter 1 to be long, string given, %s(%d) 206bool(false) 207int(63) 208 209--mixed case string-- 210Error: 2 - umask() expects parameter 1 to be long, string given, %s(%d) 211bool(false) 212int(63) 213 214--heredoc-- 215Error: 2 - umask() expects parameter 1 to be long, string given, %s(%d) 216bool(false) 217int(63) 218 219--instance of classWithToString-- 220Error: 2 - umask() expects parameter 1 to be long, object given, %s(%d) 221bool(false) 222int(63) 223 224--instance of classWithoutToString-- 225Error: 2 - umask() expects parameter 1 to be long, object given, %s(%d) 226bool(false) 227int(63) 228 229--undefined var-- 230int(0) 231int(0) 232 233--unset var-- 234int(0) 235int(0) 236===DONE=== 237 238