add several test cases

This commit is contained in:
Shuhei Tanuma 2012-06-25 00:18:32 +09:00
parent a68592fcdd
commit 7f026cf1b2
10 changed files with 170 additions and 24 deletions

View File

@ -1,5 +1,13 @@
PHP_ARG_ENABLE(uv, Whether to enable the "uv" extension, PHP_ARG_ENABLE(uv, Whether to enable the "uv" extension,
[ --enable-uv Enable "uv" extension support]) [ --enable-uv Enable "uv" extension support])
if test -z "$PHP_DEBUG"; then
AC_ARG_ENABLE(debug,
[ --enable-debug compile with debugging symbols],[
PHP_DEBUG=$enableval
],[ PHP_DEBUG=no
])
fi
if test $PHP_UV != "no"; then if test $PHP_UV != "no"; then
PHP_NEW_EXTENSION(uv, php_uv.c uv.c, $ext_shared) PHP_NEW_EXTENSION(uv, php_uv.c uv.c, $ext_shared)
@ -8,6 +16,10 @@ if test $PHP_UV != "no"; then
CFLAGS=" -g -O0 -Wunused-variable -Wpointer-sign -Wimplicit-function-declaration -Wl,libuv/uv.a" CFLAGS=" -g -O0 -Wunused-variable -Wpointer-sign -Wimplicit-function-declaration -Wl,libuv/uv.a"
dnl if test $PHP_DEBUG != "no"; then
dnl CFLAGS="$CFLAGS -DPHP_UV_DEBUG=1"
dnl fi
case $host in case $host in
*darwin*) *darwin*)
dnl these macro does not work. why? dnl these macro does not work. why?

View File

@ -20,7 +20,7 @@
#include "php_uv.h" #include "php_uv.h"
#ifndef PHP_UV_DEBUG #ifndef PHP_UV_DEBUG
#define PHP_UV_DEBUG 1 #define PHP_UV_DEBUG 0
#endif #endif
extern void php_uv_init(TSRMLS_D); extern void php_uv_init(TSRMLS_D);
@ -2972,7 +2972,8 @@ struct sockaddr_in {
} }
/* }}} */ /* }}} */
/* {{{ */ /* {{{ proto array uv_loadavg(void)
*/
PHP_FUNCTION(uv_loadavg) PHP_FUNCTION(uv_loadavg)
{ {
zval *retval; zval *retval;
@ -2990,19 +2991,16 @@ PHP_FUNCTION(uv_loadavg)
} }
/* }}} */ /* }}} */
/* {{{ */ /* {{{ proto double uv_uptime(void)
*/
PHP_FUNCTION(uv_uptime) PHP_FUNCTION(uv_uptime)
{ {
zval *retval;
uv_err_t error; uv_err_t error;
double uptime; double uptime;
error = uv_uptime(&uptime); error = uv_uptime(&uptime);
MAKE_STD_ZVAL(retval); RETURN_DOUBLE(uptime);
ZVAL_DOUBLE(retval, uptime);
RETURN_ZVAL(retval,0,1);
} }
/* }}} */ /* }}} */
@ -3020,35 +3018,39 @@ PHP_FUNCTION(uv_get_process_title)
} }
/* }}} */ /* }}} */
/* {{{ */ /* {{{ proto long uv_get_free_memory(void)
*/
PHP_FUNCTION(uv_get_free_memory) PHP_FUNCTION(uv_get_free_memory)
{ {
RETURN_LONG(uv_get_free_memory()); RETURN_LONG(uv_get_free_memory());
} }
/* }}} */ /* }}} */
/* {{{ */ /* {{{ proto long uv_get_total_memory(void)
*/
PHP_FUNCTION(uv_get_total_memory) PHP_FUNCTION(uv_get_total_memory)
{ {
RETURN_LONG(uv_get_total_memory()); RETURN_LONG(uv_get_total_memory());
} }
/* }}} */ /* }}} */
/* {{{ */ /* {{{ proto long uv_hrtime(void)
*/
PHP_FUNCTION(uv_hrtime) PHP_FUNCTION(uv_hrtime)
{ {
/* TODO: check behavior */ /* TODO: is this correct? */
RETURN_LONG(uv_hrtime()); RETURN_LONG(uv_hrtime());
} }
/* }}} */ /* }}} */
/* {{{ */ /* {{{ proto string uv_exepath(void)
*/
PHP_FUNCTION(uv_exepath) PHP_FUNCTION(uv_exepath)
{ {
char buffer[1024] = {0}; char buffer[1024] = {0};
size_t buffer_sz = sizeof(buffer); size_t buffer_sz;
/* TODO: check behavior */ buffer_sz = sizeof(buffer);
uv_exepath(buffer, &buffer_sz); uv_exepath(buffer, &buffer_sz);
buffer[buffer_sz] = '\0'; buffer[buffer_sz] = '\0';
@ -3070,7 +3072,8 @@ PHP_FUNCTION(uv_cwd)
} }
/* }}} */ /* }}} */
/* {{{ */ /* {{{ proto array uv_cpu_info(void)
*/
PHP_FUNCTION(uv_cpu_info) PHP_FUNCTION(uv_cpu_info)
{ {
zval *retval; zval *retval;
@ -3085,23 +3088,25 @@ PHP_FUNCTION(uv_cpu_info)
for (i = 0; i < count; i++) { for (i = 0; i < count; i++) {
zval *tmp, *times; zval *tmp, *times;
MAKE_STD_ZVAL(tmp); MAKE_STD_ZVAL(tmp);
array_init(tmp);
MAKE_STD_ZVAL(times); MAKE_STD_ZVAL(times);
array_init(tmp);
array_init(times); array_init(times);
add_assoc_string_ex(tmp, "model", sizeof("model"), cpus[i].model, 1); add_assoc_string_ex(tmp, "model", sizeof("model"), cpus[i].model, 1);
add_assoc_long_ex(tmp, "speed", sizeof("speed"), cpus[i].speed); add_assoc_long_ex(tmp, "speed", sizeof("speed"), cpus[i].speed);
add_assoc_long_ex(times, "sys", sizeof("sys"), (size_t)cpus[i].cpu_times.sys); add_assoc_long_ex(times, "sys", sizeof("sys"), (size_t)cpus[i].cpu_times.sys);
add_assoc_long_ex(times, "user", sizeof("user"), (size_t)cpus[i].cpu_times.user); add_assoc_long_ex(times, "user", sizeof("user"), (size_t)cpus[i].cpu_times.user);
add_assoc_long_ex(times, "idle", sizeof("idle"), (size_t)cpus[i].cpu_times.idle); add_assoc_long_ex(times, "idle", sizeof("idle"), (size_t)cpus[i].cpu_times.idle);
add_assoc_long_ex(times, "irq", sizeof("irq"), (size_t)cpus[i].cpu_times.irq); add_assoc_long_ex(times, "irq", sizeof("irq"), (size_t)cpus[i].cpu_times.irq);
add_assoc_long_ex(times, "nice", sizeof("nice"), (size_t)cpus[i].cpu_times.nice); add_assoc_long_ex(times, "nice", sizeof("nice"), (size_t)cpus[i].cpu_times.nice);
add_assoc_zval_ex(tmp,"times", sizeof("times"), times); add_assoc_zval_ex(tmp, "times", sizeof("times"), times);
add_next_index_zval(retval,tmp); add_next_index_zval(retval,tmp);
} }
uv_free_cpu_info(cpus, count); uv_free_cpu_info(cpus, count);
RETURN_ZVAL(retval,0,1); RETURN_ZVAL(retval,0,1);
} }

View File

@ -0,0 +1,35 @@
--TEST--
Check for uv_cpuinfo
--FILE--
<?php
$cpuinfo = uv_cpu_info();
$info = array_shift($cpuinfo);
if (!isset($info["model"])) {
echo "FAILED: key `model` does not exist" . PHP_EOL;
}
if (!isset($info["speed"])) {
echo "FAILED: key `speed` does not exist" . PHP_EOL;
}
if (!isset($info["times"])) {
echo "FAILED: key `times` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["sys"])) {
echo "FAILED: key `times.sys` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["user"])) {
echo "FAILED: key `times.user` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["idle"])) {
echo "FAILED: key `times.idle` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["irq"])) {
echo "FAILED: key `times.irq` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["nice"])) {
echo "FAILED: key `times.nice` does not exist" . PHP_EOL;
}
--EXPECT--

35
tests/999-uv_cpuinfo.phpt Executable file
View File

@ -0,0 +1,35 @@
--TEST--
Check for uv_cpu_info
--FILE--
<?php
$cpuinfo = uv_cpu_info();
$info = array_shift($cpuinfo);
if (!isset($info["model"])) {
echo "FAILED: key `model` does not exist" . PHP_EOL;
}
if (!isset($info["speed"])) {
echo "FAILED: key `speed` does not exist" . PHP_EOL;
}
if (!isset($info["times"])) {
echo "FAILED: key `times` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["sys"])) {
echo "FAILED: key `times.sys` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["user"])) {
echo "FAILED: key `times.user` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["idle"])) {
echo "FAILED: key `times.idle` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["irq"])) {
echo "FAILED: key `times.irq` does not exist" . PHP_EOL;
}
if (!isset($info["times"]["nice"])) {
echo "FAILED: key `times.nice` does not exist" . PHP_EOL;
}
--EXPECT--

View File

@ -0,0 +1,9 @@
--TEST--
Check for uv_exepath
--FILE--
<?php
$path = uv_exepath();
echo (int)preg_match("/php/",$path,$match);
--EXPECT--
1

View File

@ -0,0 +1,9 @@
--TEST--
Check for uv_get_free_memory
--FILE--
<?php
$free = uv_get_free_memory();
echo (int)is_int($free);
--EXPECT--
1

View File

@ -0,0 +1,9 @@
--TEST--
Check for uv_get_total_memory
--FILE--
<?php
$free = uv_get_total_memory();
echo (int)is_int($free);
--EXPECT--
1

8
tests/999-uv_hrtime.phpt Normal file
View File

@ -0,0 +1,8 @@
--TEST--
Check for uv_hrtime
--FILE--
<?php
/* is this correct ?*/
$hrtime = uv_hrtime();
--EXPECT--

15
tests/999-uv_loadavg.phpt Normal file
View File

@ -0,0 +1,15 @@
--TEST--
Check for uv_loadavg
--FILE--
<?php
$avg = uv_loadavg();
echo "count: " . count($avg) . PHP_EOL;
echo (int)is_float($avg[0]) . PHP_EOL;
echo (int)is_float($avg[1]) . PHP_EOL;
echo (int)is_float($avg[2]) . PHP_EOL;
--EXPECT--
count: 3
1
1
1

9
tests/999-uv_uptime.phpt Normal file
View File

@ -0,0 +1,9 @@
--TEST--
Check for uv_uptime
--FILE--
<?php
$uptime = uv_uptime();
echo (int)is_float($uptime);
--EXPECT--
1