flock_variation.phpt 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. --TEST--
  2. Test flock() function: Variations
  3. --FILE--
  4. <?php
  5. /*
  6. Prototype: bool flock(resource $handle, int $operation [, int &$wouldblock]);
  7. Description: PHP supports a portable way of locking complete files
  8. in an advisory way
  9. */
  10. echo "*** Testing flock() fun with the various operation and
  11. wouldblock values ***\n";
  12. $file = dirname(__FILE__)."/flock.tmp";
  13. $fp = fopen($file, "w");
  14. /* array of operatons */
  15. $operations = array(
  16. LOCK_SH,
  17. LOCK_EX,
  18. LOCK_SH|LOCK_NB,
  19. LOCK_EX|LOCK_NB,
  20. LOCK_SH|LOCK_EX,
  21. LOCK_UN,
  22. 1,
  23. 2,
  24. 2.234,
  25. TRUE
  26. );
  27. /* array of wouldblocks */
  28. $wouldblocks = array(
  29. 0,
  30. 1,
  31. 2,
  32. 1.234,
  33. TRUE,
  34. FALSE,
  35. NULL,
  36. array(1,2,3),
  37. array(),
  38. "string",
  39. "",
  40. /* binary input */
  41. b"string",
  42. b"",
  43. "\0"
  44. );
  45. $i = 0;
  46. foreach($operations as $operation) {
  47. echo "--- Outer iteration $i ---\n";
  48. var_dump(flock($fp, $operation));
  49. $j = 0;
  50. foreach($wouldblocks as $wouldblock) {
  51. echo "-- Inner iteration $j in $i --\n";
  52. var_dump(flock($fp, $operation, $wouldblock));
  53. $j++;
  54. }
  55. $i++;
  56. }
  57. fclose($fp);
  58. @unlink($file);
  59. echo "\n*** Done ***\n";
  60. ?>
  61. --EXPECTF--
  62. *** Testing flock() fun with the various operation and
  63. wouldblock values ***
  64. --- Outer iteration 0 ---
  65. bool(true)
  66. -- Inner iteration 0 in 0 --
  67. bool(true)
  68. -- Inner iteration 1 in 0 --
  69. bool(true)
  70. -- Inner iteration 2 in 0 --
  71. bool(true)
  72. -- Inner iteration 3 in 0 --
  73. bool(true)
  74. -- Inner iteration 4 in 0 --
  75. bool(true)
  76. -- Inner iteration 5 in 0 --
  77. bool(true)
  78. -- Inner iteration 6 in 0 --
  79. bool(true)
  80. -- Inner iteration 7 in 0 --
  81. bool(true)
  82. -- Inner iteration 8 in 0 --
  83. bool(true)
  84. -- Inner iteration 9 in 0 --
  85. bool(true)
  86. -- Inner iteration 10 in 0 --
  87. bool(true)
  88. -- Inner iteration 11 in 0 --
  89. bool(true)
  90. -- Inner iteration 12 in 0 --
  91. bool(true)
  92. -- Inner iteration 13 in 0 --
  93. bool(true)
  94. --- Outer iteration 1 ---
  95. bool(true)
  96. -- Inner iteration 0 in 1 --
  97. bool(true)
  98. -- Inner iteration 1 in 1 --
  99. bool(true)
  100. -- Inner iteration 2 in 1 --
  101. bool(true)
  102. -- Inner iteration 3 in 1 --
  103. bool(true)
  104. -- Inner iteration 4 in 1 --
  105. bool(true)
  106. -- Inner iteration 5 in 1 --
  107. bool(true)
  108. -- Inner iteration 6 in 1 --
  109. bool(true)
  110. -- Inner iteration 7 in 1 --
  111. bool(true)
  112. -- Inner iteration 8 in 1 --
  113. bool(true)
  114. -- Inner iteration 9 in 1 --
  115. bool(true)
  116. -- Inner iteration 10 in 1 --
  117. bool(true)
  118. -- Inner iteration 11 in 1 --
  119. bool(true)
  120. -- Inner iteration 12 in 1 --
  121. bool(true)
  122. -- Inner iteration 13 in 1 --
  123. bool(true)
  124. --- Outer iteration 2 ---
  125. bool(true)
  126. -- Inner iteration 0 in 2 --
  127. bool(true)
  128. -- Inner iteration 1 in 2 --
  129. bool(true)
  130. -- Inner iteration 2 in 2 --
  131. bool(true)
  132. -- Inner iteration 3 in 2 --
  133. bool(true)
  134. -- Inner iteration 4 in 2 --
  135. bool(true)
  136. -- Inner iteration 5 in 2 --
  137. bool(true)
  138. -- Inner iteration 6 in 2 --
  139. bool(true)
  140. -- Inner iteration 7 in 2 --
  141. bool(true)
  142. -- Inner iteration 8 in 2 --
  143. bool(true)
  144. -- Inner iteration 9 in 2 --
  145. bool(true)
  146. -- Inner iteration 10 in 2 --
  147. bool(true)
  148. -- Inner iteration 11 in 2 --
  149. bool(true)
  150. -- Inner iteration 12 in 2 --
  151. bool(true)
  152. -- Inner iteration 13 in 2 --
  153. bool(true)
  154. --- Outer iteration 3 ---
  155. bool(true)
  156. -- Inner iteration 0 in 3 --
  157. bool(true)
  158. -- Inner iteration 1 in 3 --
  159. bool(true)
  160. -- Inner iteration 2 in 3 --
  161. bool(true)
  162. -- Inner iteration 3 in 3 --
  163. bool(true)
  164. -- Inner iteration 4 in 3 --
  165. bool(true)
  166. -- Inner iteration 5 in 3 --
  167. bool(true)
  168. -- Inner iteration 6 in 3 --
  169. bool(true)
  170. -- Inner iteration 7 in 3 --
  171. bool(true)
  172. -- Inner iteration 8 in 3 --
  173. bool(true)
  174. -- Inner iteration 9 in 3 --
  175. bool(true)
  176. -- Inner iteration 10 in 3 --
  177. bool(true)
  178. -- Inner iteration 11 in 3 --
  179. bool(true)
  180. -- Inner iteration 12 in 3 --
  181. bool(true)
  182. -- Inner iteration 13 in 3 --
  183. bool(true)
  184. --- Outer iteration 4 ---
  185. bool(true)
  186. -- Inner iteration 0 in 4 --
  187. bool(true)
  188. -- Inner iteration 1 in 4 --
  189. bool(true)
  190. -- Inner iteration 2 in 4 --
  191. bool(true)
  192. -- Inner iteration 3 in 4 --
  193. bool(true)
  194. -- Inner iteration 4 in 4 --
  195. bool(true)
  196. -- Inner iteration 5 in 4 --
  197. bool(true)
  198. -- Inner iteration 6 in 4 --
  199. bool(true)
  200. -- Inner iteration 7 in 4 --
  201. bool(true)
  202. -- Inner iteration 8 in 4 --
  203. bool(true)
  204. -- Inner iteration 9 in 4 --
  205. bool(true)
  206. -- Inner iteration 10 in 4 --
  207. bool(true)
  208. -- Inner iteration 11 in 4 --
  209. bool(true)
  210. -- Inner iteration 12 in 4 --
  211. bool(true)
  212. -- Inner iteration 13 in 4 --
  213. bool(true)
  214. --- Outer iteration 5 ---
  215. bool(true)
  216. -- Inner iteration 0 in 5 --
  217. bool(true)
  218. -- Inner iteration 1 in 5 --
  219. bool(true)
  220. -- Inner iteration 2 in 5 --
  221. bool(true)
  222. -- Inner iteration 3 in 5 --
  223. bool(true)
  224. -- Inner iteration 4 in 5 --
  225. bool(true)
  226. -- Inner iteration 5 in 5 --
  227. bool(true)
  228. -- Inner iteration 6 in 5 --
  229. bool(true)
  230. -- Inner iteration 7 in 5 --
  231. bool(true)
  232. -- Inner iteration 8 in 5 --
  233. bool(true)
  234. -- Inner iteration 9 in 5 --
  235. bool(true)
  236. -- Inner iteration 10 in 5 --
  237. bool(true)
  238. -- Inner iteration 11 in 5 --
  239. bool(true)
  240. -- Inner iteration 12 in 5 --
  241. bool(true)
  242. -- Inner iteration 13 in 5 --
  243. bool(true)
  244. --- Outer iteration 6 ---
  245. bool(true)
  246. -- Inner iteration 0 in 6 --
  247. bool(true)
  248. -- Inner iteration 1 in 6 --
  249. bool(true)
  250. -- Inner iteration 2 in 6 --
  251. bool(true)
  252. -- Inner iteration 3 in 6 --
  253. bool(true)
  254. -- Inner iteration 4 in 6 --
  255. bool(true)
  256. -- Inner iteration 5 in 6 --
  257. bool(true)
  258. -- Inner iteration 6 in 6 --
  259. bool(true)
  260. -- Inner iteration 7 in 6 --
  261. bool(true)
  262. -- Inner iteration 8 in 6 --
  263. bool(true)
  264. -- Inner iteration 9 in 6 --
  265. bool(true)
  266. -- Inner iteration 10 in 6 --
  267. bool(true)
  268. -- Inner iteration 11 in 6 --
  269. bool(true)
  270. -- Inner iteration 12 in 6 --
  271. bool(true)
  272. -- Inner iteration 13 in 6 --
  273. bool(true)
  274. --- Outer iteration 7 ---
  275. bool(true)
  276. -- Inner iteration 0 in 7 --
  277. bool(true)
  278. -- Inner iteration 1 in 7 --
  279. bool(true)
  280. -- Inner iteration 2 in 7 --
  281. bool(true)
  282. -- Inner iteration 3 in 7 --
  283. bool(true)
  284. -- Inner iteration 4 in 7 --
  285. bool(true)
  286. -- Inner iteration 5 in 7 --
  287. bool(true)
  288. -- Inner iteration 6 in 7 --
  289. bool(true)
  290. -- Inner iteration 7 in 7 --
  291. bool(true)
  292. -- Inner iteration 8 in 7 --
  293. bool(true)
  294. -- Inner iteration 9 in 7 --
  295. bool(true)
  296. -- Inner iteration 10 in 7 --
  297. bool(true)
  298. -- Inner iteration 11 in 7 --
  299. bool(true)
  300. -- Inner iteration 12 in 7 --
  301. bool(true)
  302. -- Inner iteration 13 in 7 --
  303. bool(true)
  304. --- Outer iteration 8 ---
  305. bool(true)
  306. -- Inner iteration 0 in 8 --
  307. bool(true)
  308. -- Inner iteration 1 in 8 --
  309. bool(true)
  310. -- Inner iteration 2 in 8 --
  311. bool(true)
  312. -- Inner iteration 3 in 8 --
  313. bool(true)
  314. -- Inner iteration 4 in 8 --
  315. bool(true)
  316. -- Inner iteration 5 in 8 --
  317. bool(true)
  318. -- Inner iteration 6 in 8 --
  319. bool(true)
  320. -- Inner iteration 7 in 8 --
  321. bool(true)
  322. -- Inner iteration 8 in 8 --
  323. bool(true)
  324. -- Inner iteration 9 in 8 --
  325. bool(true)
  326. -- Inner iteration 10 in 8 --
  327. bool(true)
  328. -- Inner iteration 11 in 8 --
  329. bool(true)
  330. -- Inner iteration 12 in 8 --
  331. bool(true)
  332. -- Inner iteration 13 in 8 --
  333. bool(true)
  334. --- Outer iteration 9 ---
  335. bool(true)
  336. -- Inner iteration 0 in 9 --
  337. bool(true)
  338. -- Inner iteration 1 in 9 --
  339. bool(true)
  340. -- Inner iteration 2 in 9 --
  341. bool(true)
  342. -- Inner iteration 3 in 9 --
  343. bool(true)
  344. -- Inner iteration 4 in 9 --
  345. bool(true)
  346. -- Inner iteration 5 in 9 --
  347. bool(true)
  348. -- Inner iteration 6 in 9 --
  349. bool(true)
  350. -- Inner iteration 7 in 9 --
  351. bool(true)
  352. -- Inner iteration 8 in 9 --
  353. bool(true)
  354. -- Inner iteration 9 in 9 --
  355. bool(true)
  356. -- Inner iteration 10 in 9 --
  357. bool(true)
  358. -- Inner iteration 11 in 9 --
  359. bool(true)
  360. -- Inner iteration 12 in 9 --
  361. bool(true)
  362. -- Inner iteration 13 in 9 --
  363. bool(true)
  364. *** Done ***