008.phpt 846 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. --TEST--
  2. InterBase: event handling
  3. --SKIPIF--
  4. <?php
  5. if (PHP_OS == "WINNT") echo "skip";
  6. include("skipif.inc");
  7. ?>
  8. --FILE--
  9. <?php /* $Id$ */
  10. require("interbase.inc");
  11. $count = 0;
  12. function event_callback($event)
  13. {
  14. global $count;
  15. if ($event == 'TEST1') echo "FAIL TEST1\n";
  16. return (++$count < 5); /* cancel event */
  17. }
  18. $link = ibase_connect($test_base);
  19. ibase_query("CREATE PROCEDURE pevent AS BEGIN POST_EVENT 'TEST1'; POST_EVENT 'TEST2'; END");
  20. ibase_commit();
  21. $e = ibase_set_event_handler('event_callback','TEST1');
  22. ibase_free_event_handler($e);
  23. ibase_set_event_handler('event_callback','TEST2');
  24. usleep(5E+5);
  25. for ($i = 0; $i < 8; ++$i) {
  26. ibase_query("EXECUTE PROCEDURE pevent");
  27. ibase_commit();
  28. usleep(3E+5);
  29. }
  30. usleep(5E+5);
  31. if (!$count || $count > 5) echo "FAIL ($count)\n";
  32. echo "end of test\n";
  33. ?>
  34. --EXPECT--
  35. end of test