From: Michael Wallner Date: Fri, 27 Oct 2006 21:18:56 +0000 (+0000) Subject: - upgrade ext/sysvshm to current parameter parsing API X-Git-Tag: RELEASE_1_0_0RC1~1190 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=60de9952d70f53e84631be33d680767172d6a877;p=php - upgrade ext/sysvshm to current parameter parsing API - mark functions unicode safe - add shm_has_var() --- diff --git a/NEWS b/NEWS index bc6b7b26a0..457fa7b30d 100644 --- a/NEWS +++ b/NEWS @@ -57,6 +57,7 @@ PHP NEWS for temporary files (as requested in bug #35380). (Hartmut) . "context" and "binary_pipes" params in "other_options" arg. (Sara) . stream_resolve_include_path(). (Sara) +- Added shm_has_var() function. (Mike) - Fixed bug #36630 (umask not reset at the end of the request). (Ilia) - Fixed bug #34286 (__toString() behavior is inconsistent). (Marcus) diff --git a/ext/sysvshm/php_sysvshm.h b/ext/sysvshm/php_sysvshm.h index 344d9d0267..9c03fd750e 100644 --- a/ext/sysvshm/php_sysvshm.h +++ b/ext/sysvshm/php_sysvshm.h @@ -30,6 +30,8 @@ extern zend_module_entry sysvshm_module_entry; #include #include +#define PHP_SHM_RSRC_NAME "sysvshm" + typedef struct { int le_shm; long init_mem; @@ -51,9 +53,9 @@ typedef struct { } sysvshm_chunk_head; typedef struct { - key_t key; /* Key set by user */ - long id; /* Returned by shmget. */ - sysvshm_chunk_head *ptr; /* memoryaddress of shared memory */ + key_t key; /* key set by user */ + long id; /* returned by shmget */ + sysvshm_chunk_head *ptr; /* memory address of shared memory */ } sysvshm_shm; PHP_MINIT_FUNCTION(sysvshm); @@ -62,6 +64,7 @@ PHP_FUNCTION(shm_detach); PHP_FUNCTION(shm_remove); PHP_FUNCTION(shm_put_var); PHP_FUNCTION(shm_get_var); +PHP_FUNCTION(shm_has_var); PHP_FUNCTION(shm_remove_var); extern sysvshm_module php_sysvshm; diff --git a/ext/sysvshm/sysvshm.c b/ext/sysvshm/sysvshm.c index a445bf27bf..901def0ef9 100644 --- a/ext/sysvshm/sysvshm.c +++ b/ext/sysvshm/sysvshm.c @@ -45,6 +45,7 @@ zend_function_entry sysvshm_functions[] = { PHP_FE(shm_remove, NULL) PHP_FE(shm_detach, NULL) PHP_FE(shm_put_var, NULL) + PHP_FE(shm_has_var, NULL) PHP_FE(shm_get_var, NULL) PHP_FE(shm_remove_var, NULL) {NULL, NULL, NULL} @@ -56,7 +57,7 @@ zend_function_entry sysvshm_functions[] = { zend_module_entry sysvshm_module_entry = { STANDARD_MODULE_HEADER, "sysvshm", - sysvshm_functions, + sysvshm_functions, PHP_MINIT(sysvshm), NULL, NULL, @@ -73,9 +74,11 @@ ZEND_GET_MODULE(sysvshm) #undef shm_ptr /* undefine AIX-specific macro */ +#define SHM_FETCH_RESOURCE(shm_ptr, z_ptr) ZEND_FETCH_RESOURCE(shm_ptr, sysvshm_shm *, &z_ptr, -1, PHP_SHM_RSRC_NAME, php_sysvshm.le_shm) + THREAD_LS sysvshm_module php_sysvshm; -static int php_put_shm_data(sysvshm_chunk_head *ptr, long key, char *data, long len); +static int php_put_shm_data(sysvshm_chunk_head *ptr, long key, const char *data, long len); static long php_check_shm_data(sysvshm_chunk_head *ptr, long key); static int php_remove_shm_data(sysvshm_chunk_head *ptr, long shm_varpos); @@ -93,7 +96,7 @@ static void php_release_sysvshm(zend_rsrc_list_entry *rsrc TSRMLS_DC) */ PHP_MINIT_FUNCTION(sysvshm) { - php_sysvshm.le_shm = zend_register_list_destructors_ex(php_release_sysvshm, NULL, "sysvshm", module_number); + php_sysvshm.le_shm = zend_register_list_destructors_ex(php_release_sysvshm, NULL, PHP_SHM_RSRC_NAME, module_number); if (cfg_get_long("sysvshm.init_mem", &php_sysvshm.init_mem) == FAILURE) { php_sysvshm.init_mem=10000; @@ -102,36 +105,17 @@ PHP_MINIT_FUNCTION(sysvshm) } /* }}} */ -/* {{{ proto int shm_attach(int key [, int memsize [, int perm]]) +/* {{{ proto resource shm_attach(int key [, int memsize [, int perm]]) U Creates or open a shared memory segment */ PHP_FUNCTION(shm_attach) { - zval **arg_key, **arg_size, **arg_flag; - long shm_size, shm_flag; sysvshm_shm *shm_list_ptr; char *shm_ptr; sysvshm_chunk_head *chunk_ptr; - key_t shm_key = (key_t) 0; - long shm_id, list_id; - int ac = ZEND_NUM_ARGS(); + long shm_key, shm_id, shm_size = php_sysvshm.init_mem, shm_flag = 0666; - shm_flag = 0666; - shm_size = php_sysvshm.init_mem; - - if (ac < 1 || ac > 3 || zend_get_parameters_ex(ac, &arg_key, &arg_size, &arg_flag) == FAILURE) { - WRONG_PARAM_COUNT; - } - - switch (ac) { - case 3: - convert_to_long_ex(arg_flag); - shm_flag = Z_LVAL_PP(arg_flag); - case 2: - convert_to_long_ex(arg_size); - shm_size= Z_LVAL_PP(arg_size); - case 1: - convert_to_long_ex(arg_key); - shm_key = Z_LVAL_PP(arg_key); + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l|ll", &shm_key, &shm_size, &shm_flag)) { + RETURN_FALSE; } shm_list_ptr = (sysvshm_shm *) emalloc(sizeof(sysvshm_shm)); @@ -150,7 +134,7 @@ PHP_FUNCTION(shm_attach) } } - if ((shm_ptr = shmat(shm_id, NULL, 0)) == (void *) - 1) { + if ((shm_ptr = shmat(shm_id, NULL, 0)) == (void *) -1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for key 0x%x: %s", shm_key, strerror(errno)); efree(shm_list_ptr); RETURN_FALSE; @@ -169,101 +153,70 @@ PHP_FUNCTION(shm_attach) shm_list_ptr->key = shm_key; shm_list_ptr->id = shm_id; shm_list_ptr->ptr = chunk_ptr; - list_id = zend_list_insert(shm_list_ptr, php_sysvshm.le_shm); - RETURN_LONG(list_id); + + ZEND_REGISTER_RESOURCE(return_value, shm_list_ptr, php_sysvshm.le_shm); } /* }}} */ -/* {{{ proto bool shm_detach(int shm_identifier) +/* {{{ proto bool shm_detach(resource shm_identifier) U Disconnects from shared memory segment */ PHP_FUNCTION(shm_detach) { - zval **arg_id; - int type; + zval *shm_id; sysvshm_shm *shm_list_ptr; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg_id) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(arg_id); - shm_list_ptr = (sysvshm_shm *) zend_list_find(Z_LVAL_PP(arg_id), &type); - if (!shm_list_ptr || type != php_sysvshm.le_shm) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "The parameter is not a valid shm_identifier"); + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &shm_id)) { RETURN_FALSE; } - - zend_list_delete(Z_LVAL_PP(arg_id)); - - RETURN_TRUE; + SHM_FETCH_RESOURCE(shm_list_ptr, shm_id); + RETURN_BOOL(SUCCESS == zend_list_delete(Z_LVAL_P(shm_id))); } /* }}} */ -/* {{{ proto bool shm_remove(int shm_identifier) +/* {{{ proto bool shm_remove(resource shm_identifier) U Removes shared memory from Unix systems */ PHP_FUNCTION(shm_remove) { - zval **arg_id; - long id; - int type; + zval *shm_id; sysvshm_shm *shm_list_ptr; - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg_id) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(arg_id); - id = Z_LVAL_PP(arg_id); - shm_list_ptr = (sysvshm_shm *) zend_list_find(id, &type); - - if (!shm_list_ptr) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "The parameter is not a valid shm_identifier"); + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &shm_id)) { RETURN_FALSE; } - - if (shmctl(shm_list_ptr->id, IPC_RMID,NULL) < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for key 0x%x, id %ld: %s", shm_list_ptr->key, id, strerror(errno)); + SHM_FETCH_RESOURCE(shm_list_ptr, shm_id); + + if (shmctl(shm_list_ptr->id, IPC_RMID, NULL) < 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for key 0x%x, id %ld: %s", shm_list_ptr->key, Z_LVAL_P(shm_id), strerror(errno)); RETURN_FALSE; - } + } RETURN_TRUE; } /* }}} */ -/* {{{ proto bool shm_put_var(int shm_identifier, int variable_key, mixed variable) +/* {{{ proto bool shm_put_var(resource shm_identifier, int variable_key, mixed variable) U Inserts or updates a variable in shared memory */ PHP_FUNCTION(shm_put_var) { - zval **arg_id, **arg_key, **arg_var; - long key, id; + zval *shm_id, *arg_var; + int ret; + long shm_key; sysvshm_shm *shm_list_ptr; - int type; smart_str shm_var = {0}; - int ret; php_serialize_data_t var_hash; - if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg_id, &arg_key, &arg_var) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(arg_id); - id = Z_LVAL_PP(arg_id); - convert_to_long_ex(arg_key); - key = Z_LVAL_PP(arg_key); - - shm_list_ptr = (sysvshm_shm *) zend_list_find(id, &type); - if (type != php_sysvshm.le_shm) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a SysV shared memory index", id); + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlz", &shm_id, &shm_key, &arg_var)) { RETURN_FALSE; } - + SHM_FETCH_RESOURCE(shm_list_ptr, shm_id); + /* setup string-variable and serialize */ - PHP_VAR_SERIALIZE_INIT(var_hash); - php_var_serialize(&shm_var, arg_var, &var_hash TSRMLS_CC); + php_var_serialize(&shm_var, &arg_var, &var_hash TSRMLS_CC); PHP_VAR_SERIALIZE_DESTROY(var_hash); + /* insert serialized variable into shared memory */ - ret = php_put_shm_data(shm_list_ptr->ptr, key, shm_var.c, shm_var.len); + ret = php_put_shm_data(shm_list_ptr->ptr, shm_key, shm_var.c, shm_var.len); /* free string */ smart_str_free(&shm_var); @@ -276,94 +229,86 @@ PHP_FUNCTION(shm_put_var) } /* }}} */ -/* {{{ proto mixed shm_get_var(int id, int variable_key) +/* {{{ proto mixed shm_get_var(resource id, int variable_key) U Returns a variable from shared memory */ PHP_FUNCTION(shm_get_var) { - zval **arg_id, **arg_key; - long key, id; + zval *shm_id; + long shm_key; sysvshm_shm *shm_list_ptr; - int type; - char *shm_data; + char *shm_data; long shm_varpos; sysvshm_chunk *shm_var; php_unserialize_data_t var_hash; - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg_id, &arg_key) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(arg_id); - id = Z_LVAL_PP(arg_id); - convert_to_long_ex(arg_key); - key = Z_LVAL_PP(arg_key); - - shm_list_ptr = (sysvshm_shm *) zend_list_find(id, &type); - if (type != php_sysvshm.le_shm) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a SysV shared memory index", id); + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &shm_id, &shm_key)) { RETURN_FALSE; } + SHM_FETCH_RESOURCE(shm_list_ptr, shm_id); /* setup string-variable and serialize */ /* get serialized variable from shared memory */ - shm_varpos = php_check_shm_data((shm_list_ptr->ptr), key); + shm_varpos = php_check_shm_data((shm_list_ptr->ptr), shm_key); if (shm_varpos < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "variable key %ld doesn't exist", key); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "variable key %ld doesn't exist", shm_key); RETURN_FALSE; } shm_var = (sysvshm_chunk*) ((char *)shm_list_ptr->ptr + shm_varpos); shm_data = &shm_var->mem; PHP_VAR_UNSERIALIZE_INIT(var_hash); - if (php_var_unserialize(&return_value, (const unsigned char **) &shm_data, shm_data + shm_var->length, &var_hash TSRMLS_CC) != 1) { - PHP_VAR_UNSERIALIZE_DESTROY(var_hash); + if (php_var_unserialize(&return_value, (const unsigned char **) &shm_data, (unsigned char *) shm_data + shm_var->length, &var_hash TSRMLS_CC) != 1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "variable data in shared memory is corrupted"); - RETURN_FALSE; + RETVAL_FALSE; } PHP_VAR_UNSERIALIZE_DESTROY(var_hash); } /* }}} */ -/* {{{ proto bool shm_remove_var(int id, int variable_key) - Removes variable from shared memory */ -PHP_FUNCTION(shm_remove_var) +/* {{{ proto bool shm_has_var(resource id, int variable_key) U + Checks whether a specific entry exists */ +PHP_FUNCTION(shm_has_var) { - zval **arg_id, **arg_key; - long key, id; + zval *shm_id; + long shm_key; sysvshm_shm *shm_list_ptr; - int type; - long shm_varpos; - if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg_id, &arg_key) == FAILURE) { - WRONG_PARAM_COUNT; + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &shm_id, &shm_key)) { + RETURN_FALSE; } + SHM_FETCH_RESOURCE(shm_list_ptr, shm_id); + RETURN_BOOL(php_check_shm_data(shm_list_ptr->ptr, shm_key) >= 0); +} +/* }}} */ - convert_to_long_ex(arg_id); - id = Z_LVAL_PP(arg_id); - convert_to_long_ex(arg_key); - key = Z_LVAL_PP(arg_key); - - shm_list_ptr = (sysvshm_shm *) zend_list_find(id, &type); - if (type != php_sysvshm.le_shm) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a SysV shared memory index", id); +/* {{{ proto bool shm_remove_var(resource id, int variable_key) U + Removes variable from shared memory */ +PHP_FUNCTION(shm_remove_var) +{ + zval *shm_id; + long shm_key, shm_varpos; + sysvshm_shm *shm_list_ptr; + + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &shm_id, &shm_key)) { RETURN_FALSE; } + SHM_FETCH_RESOURCE(shm_list_ptr, shm_id); - shm_varpos = php_check_shm_data((shm_list_ptr->ptr), key); + shm_varpos = php_check_shm_data((shm_list_ptr->ptr), shm_key); if (shm_varpos < 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "variable key %ld doesn't exist", key); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "variable key %ld doesn't exist", shm_key); RETURN_FALSE; } - php_remove_shm_data((shm_list_ptr->ptr), shm_varpos); + php_remove_shm_data((shm_list_ptr->ptr), shm_varpos); RETURN_TRUE; } /* }}} */ /* {{{ php_put_shm_data * inserts an ascii-string into shared memory */ -static int php_put_shm_data(sysvshm_chunk_head *ptr, long key, char *data, long len) +static int php_put_shm_data(sysvshm_chunk_head *ptr, long key, const char *data, long len) { sysvshm_chunk *shm_var; long total_size; @@ -376,14 +321,14 @@ static int php_put_shm_data(sysvshm_chunk_head *ptr, long key, char *data, long } if (ptr->free < total_size) { - return -1; /* not enough memeory */ + return -1; /* not enough memory */ } - shm_var = (sysvshm_chunk *) ((char *) ptr + ptr->end); + shm_var = (sysvshm_chunk *) ((char *) ptr + ptr->end); shm_var->key = key; shm_var->length = len; - shm_var->next = total_size; - memcpy(&(shm_var->mem), data, len); + shm_var->next = total_size; + memcpy(&(shm_var->mem), data, len); ptr->end += total_size; ptr->free -= total_size; return 0; @@ -398,7 +343,7 @@ static long php_check_shm_data(sysvshm_chunk_head *ptr, long key) sysvshm_chunk *shm_var; pos = ptr->start; - + for (;;) { if (pos >= ptr->end) { return -1; @@ -406,7 +351,7 @@ static long php_check_shm_data(sysvshm_chunk_head *ptr, long key) shm_var = (sysvshm_chunk*) ((char *) ptr + pos); if (shm_var->key == key) { return pos; - } + } pos += shm_var->next; if (shm_var->next <= 0 || pos < ptr->start) { diff --git a/ext/sysvshm/tests/002.phpt b/ext/sysvshm/tests/002.phpt index 81bb0cd495..23ac51f9f4 100644 --- a/ext/sysvshm/tests/002.phpt +++ b/ext/sysvshm/tests/002.phpt @@ -32,36 +32,37 @@ shm_remove($s); echo "Done\n"; ?> ---EXPECTF-- -Warning: Wrong parameter count for shm_attach() in %s on line %d -NULL +--EXPECTF-- -Warning: Wrong parameter count for shm_attach() in %s on line %d -NULL +Warning: shm_attach() expects at least 1 parameter, 0 given in %s002.php on line %d +bool(false) + +Warning: shm_attach() expects at most 3 parameters, 4 given in %s002.php on line %d +bool(false) -Warning: shm_attach(): failed for key 0xffffffff: memorysize too small in %s on line %d +Warning: shm_attach(): failed for key 0xffffffff: memorysize too small in %s002.php on line %d bool(false) -Warning: shm_attach(): failed for key 0x0: Invalid argument in %s on line %d +Warning: shm_attach(): failed for key 0x0: Invalid argument in %s002.php on line %d bool(false) -Warning: shm_attach(): failed for key 0x7b: Invalid argument in %s on line %d +Warning: shm_attach(): failed for key 0x7b: Invalid argument in %s002.php on line %d bool(false) -Warning: shm_attach(): failed for key %s: Invalid argument in %s on line %d +Warning: shm_attach(): failed for key 0x%x: Invalid argument in %s002.php on line %d bool(false) -Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_remove() expects parameter 1 to be resource, boolean given in %s002.php on line %d -Warning: shm_attach(): failed for key %s: memorysize too small in %s on line %d +Warning: shm_attach(): failed for key 0x%x: memorysize too small in %s002.php on line %d bool(false) -Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d -int(%d) +Warning: shm_remove() expects parameter 1 to be resource, boolean given in %s002.php on line %d +resource(%d) of type (sysvshm) -Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d -int(%d) -int(%d) -int(%d) -int(%d) +Warning: shm_remove() expects parameter 1 to be resource, integer given in %s002.php on line %d +resource(%d) of type (sysvshm) +resource(%d) of type (sysvshm) +resource(%d) of type (sysvshm) +resource(%d) of type (sysvshm) Done diff --git a/ext/sysvshm/tests/003.phpt b/ext/sysvshm/tests/003.phpt index 467e46a07e..b6e0f18bbc 100644 --- a/ext/sysvshm/tests/003.phpt +++ b/ext/sysvshm/tests/003.phpt @@ -22,25 +22,25 @@ var_dump(shm_detach(-1)); echo "Done\n"; ?> ---EXPECTF-- -Warning: Wrong parameter count for shm_detach() in %s on line %d -NULL +--EXPECTF-- +Warning: shm_detach() expects exactly 1 parameter, 0 given in %s003.php on line %d +bool(false) -Warning: Wrong parameter count for shm_detach() in %s on line %d -NULL +Warning: shm_detach() expects exactly 1 parameter, 2 given in %s003.php on line %d +bool(false) bool(true) -Warning: shm_detach(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_detach(): %d is not a valid sysvshm resource in %s003.php on line %d bool(false) -Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_remove(): %d is not a valid sysvshm resource in %s003.php on line %d -Warning: shm_detach(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_detach() expects parameter 1 to be resource, integer given in %s003.php on line %d bool(false) -Warning: shm_detach(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_detach() expects parameter 1 to be resource, integer given in %s003.php on line %d bool(false) -Warning: shm_detach(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_detach() expects parameter 1 to be resource, integer given in %s003.php on line %d bool(false) Done diff --git a/ext/sysvshm/tests/004.phpt b/ext/sysvshm/tests/004.phpt index ea4d7500aa..ba25c81258 100644 --- a/ext/sysvshm/tests/004.phpt +++ b/ext/sysvshm/tests/004.phpt @@ -22,19 +22,20 @@ shm_remove($s); echo "Done\n"; ?> ---EXPECTF-- -Warning: Wrong parameter count for shm_put_var() in %s on line %d -NULL +--EXPECTF-- -Warning: shm_put_var(): -1 is not a SysV shared memory index in %s on line %d +Warning: shm_put_var() expects exactly 3 parameters, 0 given in %s004.php on line %d bool(false) -Warning: shm_put_var(): -1 is not a SysV shared memory index in %s on line %d +Warning: shm_put_var() expects parameter 1 to be resource, integer given in %s004.php on line %d +bool(false) + +Warning: shm_put_var() expects parameter 1 to be resource, integer given in %s004.php on line %d bool(false) bool(true) bool(true) bool(true) -Warning: shm_put_var(): not enough shared memory left in %s on line %d +Warning: shm_put_var(): not enough shared memory left in %s004.php on line 14 bool(false) Done diff --git a/ext/sysvshm/tests/005.phpt b/ext/sysvshm/tests/005.phpt index a1cdc95619..56b21e240a 100644 --- a/ext/sysvshm/tests/005.phpt +++ b/ext/sysvshm/tests/005.phpt @@ -37,20 +37,22 @@ shm_remove($s); echo "Done\n"; ?> ---EXPECTF-- -Warning: Wrong parameter count for shm_get_var() in %s on line %d -NULL +--EXPECTF-- -Warning: shm_get_var(): -1 is not a SysV shared memory index in %s on line %d +Warning: shm_get_var() expects exactly 2 parameters, 0 given in %s005.php on line %d bool(false) -Warning: shm_get_var(): variable key 1000 doesn't exist in %s on line %d +Warning: shm_get_var() expects parameter 1 to be resource, integer given in %s005.php on line %d bool(false) -Warning: shm_get_var(): variable key -10000 doesn't exist in %s on line %d +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 long, array given in %s005.php on line %d bool(false) -object(stdClass)#%d (0) { -} string(11) "test string" object(stdClass)#%d (0) { } @@ -67,19 +69,21 @@ NULL NULL Done --UEXPECTF-- -Warning: Wrong parameter count for shm_get_var() in %s on line %d -NULL -Warning: shm_get_var(): -1 is not a SysV shared memory index in %s on line %d +Warning: shm_get_var() expects exactly 2 parameters, 0 given in %s005.php on line %d bool(false) -Warning: shm_get_var(): variable key 1000 doesn't exist in %s on line %d +Warning: shm_get_var() expects parameter 1 to be resource, integer given in %s005.php on line %d bool(false) -Warning: shm_get_var(): variable key -10000 doesn't exist in %s on line %d +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 long, array given in %s005.php on line %d bool(false) -object(stdClass)#%d (0) { -} unicode(11) "test string" object(stdClass)#%d (0) { } diff --git a/ext/sysvshm/tests/006.phpt b/ext/sysvshm/tests/006.phpt index 8ec4aab509..80638bd762 100644 --- a/ext/sysvshm/tests/006.phpt +++ b/ext/sysvshm/tests/006.phpt @@ -25,45 +25,47 @@ var_dump(shm_get_var($s, 1)); shm_remove($s); echo "Done\n"; ?> ---EXPECTF-- -Warning: Wrong parameter count for shm_remove_var() in %s on line %d -NULL +--EXPECTF-- -Warning: shm_remove_var(): -1 is not a SysV shared memory index in %s on line %d +Warning: shm_remove_var() expects exactly 2 parameters, 0 given in %s006.php on line %d bool(false) -Warning: shm_remove_var(): variable key -10 doesn't exist in %s on line %d +Warning: shm_remove_var() expects parameter 1 to be resource, integer given in %s006.php on line %d +bool(false) + +Warning: shm_remove_var(): variable key -10 doesn't exist in %s006.php on line %d bool(false) string(11) "test string" bool(true) -Warning: shm_get_var(): variable key 1 doesn't exist in %s on line %d +Warning: shm_get_var(): variable key 1 doesn't exist in %s006.php on line %d bool(false) -Warning: shm_remove_var(): variable key 1 doesn't exist in %s on line %d +Warning: shm_remove_var(): variable key 1 doesn't exist in %s006.php on line %d bool(false) -Warning: shm_get_var(): variable key 1 doesn't exist in %s on line %d +Warning: shm_get_var(): variable key 1 doesn't exist in %s006.php on line %d bool(false) Done --UEXPECTF-- -Warning: Wrong parameter count for shm_remove_var() in %s on line %d -NULL -Warning: shm_remove_var(): -1 is not a SysV shared memory index in %s on line %d +Warning: shm_remove_var() expects exactly 2 parameters, 0 given in %s006.php on line %d +bool(false) + +Warning: shm_remove_var() expects parameter 1 to be resource, integer given in %s006.php on line %d bool(false) -Warning: shm_remove_var(): variable key -10 doesn't exist in %s on line %d +Warning: shm_remove_var(): variable key -10 doesn't exist in %s006.php on line %d bool(false) unicode(11) "test string" bool(true) -Warning: shm_get_var(): variable key 1 doesn't exist in %s on line %d +Warning: shm_get_var(): variable key 1 doesn't exist in %s006.php on line %d bool(false) -Warning: shm_remove_var(): variable key 1 doesn't exist in %s on line %d +Warning: shm_remove_var(): variable key 1 doesn't exist in %s006.php on line %d bool(false) -Warning: shm_get_var(): variable key 1 doesn't exist in %s on line %d +Warning: shm_get_var(): variable key 1 doesn't exist in %s006.php on line %d bool(false) Done diff --git a/ext/sysvshm/tests/007.phpt b/ext/sysvshm/tests/007.phpt index 05ef7ea189..0fb9cfc2c6 100644 --- a/ext/sysvshm/tests/007.phpt +++ b/ext/sysvshm/tests/007.phpt @@ -21,21 +21,41 @@ var_dump(shm_remove($s)); echo "Done\n"; ?> ---EXPECTF-- -Warning: Wrong parameter count for shm_remove() in %s on line %d -NULL +--EXPECTF-- -Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_remove() expects exactly 1 parameter, 0 given in %s007.php on line %d bool(false) -Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_remove() expects parameter 1 to be resource, integer given in %s007.php on line %d bool(false) -Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_remove() expects parameter 1 to be resource, integer given in %s007.php on line %d +bool(false) + +Warning: shm_remove() expects parameter 1 to be resource, string given in %s007.php on line %d +bool(false) +bool(true) +bool(true) + +Warning: shm_remove(): %d is not a valid sysvshm resource in %s007.php on line %d +bool(false) +Done +--UEXPECTF-- + +Warning: shm_remove() expects exactly 1 parameter, 0 given in %s007.php on line %d +bool(false) + +Warning: shm_remove() expects parameter 1 to be resource, integer given in %s007.php on line %d +bool(false) + +Warning: shm_remove() expects parameter 1 to be resource, integer given in %s007.php on line %d +bool(false) + +Warning: shm_remove() expects parameter 1 to be resource, Unicode string given in %s007.php on line %d bool(false) bool(true) bool(true) -Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d +Warning: shm_remove(): %d is not a valid sysvshm resource in %s007.php on line %d bool(false) Done