diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2002-11-20 15:56:56 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2002-11-20 15:56:56 +0000 |
commit | 7908cffab42a0ebba9499f778065d2b57949f247 (patch) | |
tree | 51c680af921b5d8dc8b5c6ca88875df43836bc1e /ext/shmop/tests | |
parent | e532b24d82b8c4cbdeca960c1802288b028c2748 (diff) | |
download | php-git-7908cffab42a0ebba9499f778065d2b57949f247.tar.gz |
Switched to a new parameter parsing API, which simplifies the code.
Made error reporting use php_error_docref().
Fixed a memory leak in shmop_open() when an invalid flag is specified.
Added tests for shmop() extension.
Diffstat (limited to 'ext/shmop/tests')
-rw-r--r-- | ext/shmop/tests/001.phpt | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/ext/shmop/tests/001.phpt b/ext/shmop/tests/001.phpt new file mode 100644 index 0000000000..1a1b926308 --- /dev/null +++ b/ext/shmop/tests/001.phpt @@ -0,0 +1,91 @@ +--TEST-- +shmop extension test +--SKIPIF-- +<?php + if (!extension_loaded("shmop")) { + die("skip shmop() extension not avaliable"); + } +?> +--FILE-- +<?php + $hex_shm_id = 0xff3; + $write_d1 = "test #1 of the shmop() extension"; + $write_d2 = "test #2 append data to shared memory segment"; + + echo "shm open for create: "; + $shm_id = shmop_open($hex_shm_id, "n", 0644, 1024); + if (!$shm_id) { + die("failed\n"); + } else { + echo "ok\n"; + } + + echo "shm size is: " . ($shm_size = shmop_size($shm_id)) . "\n"; + + echo "shm write test #1: "; + $written = shmop_write($shm_id, $write_d1, 0); + if ($written != strlen($write_d1)) { + echo "failed\n"; + } else { + echo "ok\n"; + } + + echo "data in memory is: " . shmop_read($shm_id, 0, $written) . "\n"; + + shmop_close($shm_id); + + echo "shm open for read only: "; + $shm_id = shmop_open($hex_shm_id, "a", 0644, 1024); + if (!$shm_id) { + echo "failed\n"; + } else { + echo "ok\n"; + } + + echo "data in memory is: " . shmop_read($shm_id, 0, $written) . "\n"; + + /* try to append data to the shared memory segment, this should fail */ + @shmop_write($shm_id, $write_d1, $written); + echo $php_errormsg . "\n"; + + shmop_close($shm_id); + + echo "shm open for read only: "; + $shm_id = shmop_open($hex_shm_id, "w", 0644, 1024); + if (!$shm_id) { + echo "failed\n"; + } else { + echo "ok\n"; + } + + echo "shm write test #1: "; + $written = shmop_write($shm_id, $write_d2, $written); + if ($written != strlen($write_d2)) { + die("failed\n"); + } else { + echo "ok\n"; + } + + echo "data in memory is: " . shmop_read($shm_id, 0, strlen($write_d1 . $write_d2)) . "\n"; + + echo "deletion of shm segment: "; + if (!shmop_delete($shm_id)) { + echo "failed\n"; + } else { + echo "ok\n"; + } + + shmop_close($shm_id); +?> +--EXPECT-- +shm open for create: ok +shm size is: 1024 +shm write test #1: ok +data in memory is: test #1 of the shmop() extension +shm open for read only: ok +data in memory is: test #1 of the shmop() extension +trying to write to a read only segment +shm open for read only: ok +shm write test #1: ok +data in memory is: test #1 of the shmop() extensiontest #2 append data to shared memory segment +deletion of shm segment: ok |