flock_basic.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --TEST--
  2. Test flock() function: Basic functionality
  3. --FILE--
  4. <?php
  5. /*
  6. Description: PHP supports a portable way of locking complete files
  7. in an advisory way
  8. */
  9. echo "*** Testing flock() fun with file and dir ***\n";
  10. $lock_file = preg_replace("~\.phpt?$~", '', __FILE__);
  11. $file_handle = fopen($lock_file, "w");
  12. var_dump(flock($file_handle, LOCK_SH|LOCK_NB));
  13. var_dump(flock($file_handle, LOCK_UN));
  14. var_dump(flock($file_handle, LOCK_EX));
  15. var_dump(flock($file_handle, LOCK_UN));
  16. fclose($file_handle);
  17. unlink($lock_file);
  18. $lock_dir = sprintf("%s.dir", preg_replace("~\.phpt?$~", '', __FILE__));
  19. mkdir($lock_dir);
  20. $dir_handle = opendir($lock_dir);
  21. var_dump(flock($dir_handle, LOCK_SH|LOCK_NB));
  22. var_dump(flock($dir_handle, LOCK_UN));
  23. var_dump(flock($dir_handle, LOCK_EX));
  24. var_dump(flock($dir_handle, LOCK_UN));
  25. closedir($dir_handle);
  26. rmdir($lock_dir);
  27. echo "\n*** Done ***\n";
  28. ?>
  29. --EXPECT--
  30. *** Testing flock() fun with file and dir ***
  31. bool(true)
  32. bool(true)
  33. bool(true)
  34. bool(true)
  35. bool(false)
  36. bool(false)
  37. bool(false)
  38. bool(false)
  39. *** Done ***