php-src/ext/sysvshm/tests/005.phpt
Kalle Sommer Nielsen ceb1ea37ad Windows support for sysvshm
A little background:
* key_t is an int, like ext/shmop
* There is no ftok() (from ext/standard), so tests have a new check to see whether or not it is available. This however means that the 7 tests will all be skipped for Windows. I know we cannot properly implement an ftok() function since there is no inodes for NTFS, maybe we should look into using the GetFileInfoByHandle() or similar to use the system unique ID for a file to get the same functionality, Anatol?
* Despite the lack of phpt's, local testing works flawlessly but we better look into a solution for this if we are to keep this patch
2015-04-22 09:29:45 +02:00

74 lines
1.4 KiB
PHP

--TEST--
shm_get_var() tests
--SKIPIF--
<?php
if (!extension_loaded("sysvshm")){ print 'skip'; }
if (!function_exists('ftok')){ print 'skip'; }
?>
--FILE--
<?php
$key = ftok(__FILE__, 't');
$s = shm_attach($key, 1024);
shm_put_var($s, -1, "test string");
shm_put_var($s, 0, new stdclass);
shm_put_var($s, 1, array(1,2,3));
shm_put_var($s, 2, false);
shm_put_var($s, 3, null);
var_dump(shm_get_var());
var_dump(shm_get_var(-1, -1));
var_dump(shm_get_var($s, 1000));
var_dump(shm_get_var($s, -10000));
var_dump(shm_get_var($s, array()));
var_dump(shm_get_var($s, -1));
var_dump(shm_get_var($s, 0));
var_dump(shm_get_var($s, 1));
var_dump(shm_get_var($s, 2));
var_dump(shm_get_var($s, 3));
shm_put_var($s, 3, "test");
shm_put_var($s, 3, 1);
shm_put_var($s, 3, null);
var_dump(shm_get_var($s, 3));
shm_remove($s);
echo "Done\n";
?>
--EXPECTF--
Warning: shm_get_var() expects exactly 2 parameters, 0 given in %s005.php on line %d
NULL
Warning: shm_get_var() expects parameter 1 to be resource, integer given in %s005.php on line %d
NULL
Warning: shm_get_var(): variable key 1000 doesn't exist in %s005.php on line %d
bool(false)
Warning: shm_get_var(): variable key -10000 doesn't exist in %s005.php on line %d
bool(false)
Warning: shm_get_var() expects parameter 2 to be integer, array given in %s005.php on line %d
NULL
string(11) "test string"
object(stdClass)#%d (0) {
}
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
bool(false)
NULL
NULL
Done