function test_bzwrite() { global $tmpfile; $str = "HipHop for"; $bz = bzopen($tmpfile, "w"); VERIFY($bz !== false); VS(bzwrite($bz, $str), 10); bzflush($bz); VERIFY(bzclose($bz)); $bz = bzopen($tmpfile, "r"); $ret = bzread($bz, 10000); VS($ret, $str); VERIFY(bzclose($bz)); VS($ret, $str); unlink($tmpfile); }
function test_eregi() { $str = "XYZ"; VERIFY(eregi("z", $str) !== false); }
function test_openssl_x509_read() { $fcert = file_get_contents(__DIR__ . "/test_x509.crt"); $cert = openssl_x509_read($fcert); VERIFY($cert != null); }
VERIFY(posix_getpid()); VERIFY(posix_getppid()); $ret = posix_getpwnam("root"); VERIFY($ret != false); VERIFY(count((array) $ret) != 0); VS(posix_getpwnam(""), false); VS(posix_getpwnam(-1), false); $ret = posix_getpwuid(0); VERIFY($ret != false); VERIFY(count((array) $ret) != 0); VS(posix_getpwuid(-1), false); $ret = posix_getrlimit(); VERIFY($ret != false); VERIFY(count((array) $ret) != 0); VERIFY(posix_getsid(posix_getpid())); $tmpfifo = tempnam('/tmp', 'vmmkfifotest'); unlink($tmpfifo); VERIFY(posix_mkfifo($tmpfifo, 0)); $tmpnod = tempnam('/tmp', 'vmmknodtest'); unlink($tmpnod); VERIFY(posix_mknod($tmpnod, 0)); VERIFY(posix_setpgid(0, 0)); VERIFY(posix_setsid()); VERIFY(strlen(posix_strerror(1))); $ret = posix_times(); VERIFY($ret != false); VERIFY(count((array) $ret) != 0); $ret = posix_uname(); VERIFY($ret != false); VERIFY(count((array) $ret) != 0);
function test_stream_socket_shutdown() { list($port, $address, $server) = retry_bind_server(); VERIFY(stream_socket_shutdown($server, 0)); }
fclose($pipes[0]); fpassthru($pipes[1]); VS(proc_close($process), 0); $descriptorspec = array(array("pipe", "r"), array("pipe", "w"), array("file", $errout, "a")); $process = proc_open('cat', $descriptorspec, $pipes); VERIFY($process != false); VERIFY(proc_terminate($process)); // still need to close it, not to leave a zombie behind proc_close($process); $process = proc_open('cat', $descriptorspec, $pipes); VERIFY($process != false); $ret = proc_get_status($process); VS($ret['command'], 'cat'); VERIFY($ret['pid'] > 0); VERIFY($ret['running']); VERIFY(!$ret['signaled']); VS($ret['exitcode'], -1); VS($ret['termsig'], 0); VS($ret['stopsig'], 0); proc_close($process); VERIFY(proc_nice(0)); VS(escapeshellarg("\""), "'\"'"); VS(escapeshellcmd("perl \""), "perl \\\""); $nullbyte = "echo abc\ncommand"; VS(passthru($nullbyte), null); VS(system($nullbyte), ""); VS(exec($nullbyte, $nullbyteout), ""); VS($nullbyteout, null); VS(shell_exec($nullbyte), null); $process = proc_open($nullbyte, array(), $pipes); VS($process, false);
$u = nzuncompress($t); VS($u, $s); $compressable = str_repeat('\\0', 1024); $bs = $compressable; $bt = nzcompress($bs); VERIFY(strlen($bt) < strlen($bs)); $bu = nzuncompress($bt); VS($bu, $bs); VS(count($bu), count($bs)); ////////////////////////////////////////////////////////////////////// $s = "garbage stuff"; $v = nzuncompress($s); VERIFY($v == false); $empty = ""; $c = nzcompress($empty); $d = nzuncompress($c); VERIFY($d == $empty); VS(lz4_uncompress(lz4_compress("testing lz4_compress")), "testing lz4_compress"); VS(lz4_uncompress(lz4_hccompress("testing lz4_hccompress")), "testing lz4_hccompress"); // first test uncompressing invalid string $s = "invalid compressed string"; $v = lz4_uncompress($s); VERIFY($v == false); // try uncompressing empty string $empty = ""; $v = lz4_uncompress($empty); VERIFY($v == false); $c = lz4_compress($empty); $d = lz4_uncompress($c); VERIFY($d == $empty);
$stmt = $db->prepare("SELECT * FROM foo WHERE bar = :id"); VS($stmt->paramcount(), 1); $id = "DEF"; VERIFY($stmt->bindvalue(":id", $id, SQLITE3_TEXT)); $id = "ABC"; $res = $stmt->execute(); VS($res->fetcharray(SQLITE3_NUM), array("DEF")); VERIFY($stmt->clear()); VERIFY($stmt->reset()); $id = "DEF"; VERIFY($stmt->bindparam(":id", $id, SQLITE3_TEXT)); $id = "ABC"; $res = $stmt->execute(); VS($res->fetcharray(SQLITE3_NUM), array("ABC")); VERIFY($db->createfunction("tolower", "lower", 1)); $res = $db->query("SELECT tolower(bar) FROM foo"); VS($res->fetcharray(SQLITE3_NUM), array("abc")); VERIFY($db->createaggregate("sumlen", "sumlen_step", "sumlen_fini", 1)); $res = $db->query("SELECT sumlen(bar) FROM foo"); VS($res->fetcharray(SQLITE3_NUM), array(6)); // Since minor version can change frequently, just test the major version VS($db->version()['versionString'][0], "3"); VERIFY((int) $db->version()['versionNumber'] > (int) 3000000); $db->close(); unlink(":memory:test"); // Check that a PHP Exception is thrown for nonexistant databases try { new SQLite3('/' . uniqid('random', true) . '/db'); } catch (Exception $e) { var_dump(true); }
function VS($x, $y) { var_dump($x === $y); if ($x !== $y) { echo "Failed: {$y}\n"; echo "Got: {$x}\n"; var_dump(debug_backtrace()); } } function VERIFY($x) { VS($x, true); } ////////////////////////////////////////////////////////////////////// VERIFY(connection_aborted() != true); VERIFY(connection_status() == CONNECTION_NORMAL); VERIFY(connection_timeout() != true); constant("a"); VERIFY(defined("a") != true); __halt_compiler(); ignore_user_abort("a"); VERIFY(empty(uniqid()) != true); VS(token_name(258), "T_REQUIRE_ONCE"); VS(count(sys_getloadavg()), 3); $src = "blarb <?php 1"; VS(token_get_all(src), array(array(T_INLINE_HTML, "blarb ", 1), array(T_OPEN_TAG, "<?php", 1)));
VS(boolval(42), true); VS(boolval(0.0), false); VS(boolval(4.2), true); VS(boolval(""), false); VS(boolval("string"), true); VS(boolval("0"), false); VS(boolval("1"), true); VS(boolval(array(1, 2)), true); VS(boolval(array()), false); VS(boolval(new stdClass()), true); $v = "5bar"; VERIFY(settype($v, "integer")); VS($v, 5); $v = true; VERIFY(settype($v, "string")); VS($v, "1"); $obj = new stdclass(); $obj->name = "value"; VS(serialize($obj), "O:8:\"stdClass\":1:{s:4:\"name\";s:5:\"value\";}"); $v = array("a" => "apple", "b" => 2, "c" => array(1, "y", 3)); VS(serialize($v), "a:3:{s:1:\"a\";s:5:\"apple\";s:1:\"b\";i:2;s:1:\"c\";a:3:{i:0;i:1;i:1;s:1:\"y\";i:2;i:3;}}"); $v = unserialize("O:8:\"stdClass\":1:{s:4:\"name\";s:5:\"value\";}"); VERIFY(is_object($v)); VS($v->name, "value"); $v = unserialize("O:8:\"stdClass\":1:{s:7:\"*name\";s:5:\"value\";}"); VERIFY(is_object($v)); VS($v->name, null); $v1 = array("a" => "apple", "b" => 2, "c" => array(1, "y", 3)); $v2 = unserialize("a:3:{s:1:\"a\";s:5:\"apple\";s:1:\"b\";i:2;s:1:\"c\";a:3:{i:0;i:1;i:1;s:1:\"y\";i:2;i:3;}}"); VS($v1, $v2); get_defined_vars();
try { $dbh = new PDO($source); $dbh->query("CREATE TABLE IF NOT EXISTS foobar (id INT)"); $dbh->query("INSERT INTO foobar (id) VALUES (1)"); $stmt = $dbh->query("SELECT id FROM foobar LIMIT 1"); $ret = $stmt->fetch(); VS($ret['id'], "1"); } catch (Exception $e) { VS($e, null); } try { $dbh = new PDO($source); VERIFY($dbh != null); $stmt = $dbh->prepare("select * from foo"); VERIFY($stmt != false); VERIFY($stmt->execute()); $rs = $stmt->fetch(PDO::FETCH_ASSOC); VS($rs, array("bar" => "ABC")); $rs = $stmt->fetch(PDO::FETCH_ASSOC); VS($rs, array("bar" => "DEF")); } catch (Exception $e) { VS($e, null); } try { $dbh = new PDO($source); $vstmt = $dbh->query("select * from foo"); foreach ($vstmt as $k => $v) { var_dump($k); var_dump($v); } $vstmt = $dbh->query("select * from foo", 0);
$decrypted = mcrypt_cfb(MCRYPT_RIJNDAEL_128, substr($key, 0, 32), $encrypted, MCRYPT_DECRYPT, substr($key, 32, 16)); VERIFY($encrypted !== $decrypted); VS(trim((string) $decrypted), $CC); ////////////////////////////////////////////////////////////////////// $key = "123456789012345678901234567890123456789012345678901234567890"; $CC = "4007000000027"; $encrypted = mcrypt_ecb(MCRYPT_RIJNDAEL_128, substr($key, 0, 32), $CC, MCRYPT_ENCRYPT, substr($key, 32, 16)); $decrypted = mcrypt_ecb(MCRYPT_RIJNDAEL_128, substr($key, 0, 32), $encrypted, MCRYPT_DECRYPT, substr($key, 32, 16)); VERIFY($encrypted !== $decrypted); VS(trim((string) $decrypted), $CC); ////////////////////////////////////////////////////////////////////// $key = "123456789012345678901234567890123456789012345678901234567890"; $CC = "4007000000027"; $encrypted = mcrypt_ofb(MCRYPT_RIJNDAEL_128, substr($key, 0, 32), $CC, MCRYPT_ENCRYPT, substr($key, 32, 16)); $decrypted = mcrypt_ofb(MCRYPT_RIJNDAEL_128, substr($key, 0, 32), $encrypted, MCRYPT_DECRYPT, substr($key, 32, 16)); VERIFY($encrypted !== $decrypted); VS($decrypted, $CC); ////////////////////////////////////////////////////////////////////// VS(mcrypt_get_block_size("tripledes", "ecb"), 8); VS(mcrypt_get_cipher_name(MCRYPT_TRIPLEDES), "3DES"); VS(mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB), 16); VS(mcrypt_get_iv_size("des", "ecb"), 8); VS(mcrypt_get_key_size("tripledes", "ecb"), 24); $td = mcrypt_module_open("cast-256", "", "cfb", ""); VS(mcrypt_enc_get_algorithms_name($td), "CAST-256"); $td = mcrypt_module_open("tripledes", "", "ecb", ""); VS(mcrypt_enc_get_block_size($td), 8); $td = mcrypt_module_open("cast-256", "", "cfb", ""); VS(mcrypt_enc_get_iv_size($td), 16); $td = mcrypt_module_open("tripledes", "", "ecb", ""); VS(mcrypt_enc_get_key_size($td), 24);
VS(pcntl_wexitstatus($status), 0x80); $pid = pcntl_fork(); if ($pid == 0) { exit(0x12); } pcntl_waitpid(0, $status); VERIFY(pcntl_wifexited($status)); $pid = pcntl_fork(); if ($pid == 0) { exit(0x12); } pcntl_waitpid(0, $status); VERIFY(!pcntl_wifsignaled($status)); $pid = pcntl_fork(); if ($pid == 0) { exit(0x12); } pcntl_waitpid(0, $status); VERIFY(!pcntl_wifstopped($status)); $pid = pcntl_fork(); if ($pid == 0) { exit(0x12); } pcntl_waitpid(0, $status); VS(pcntl_wstopsig($status), 0x12); $pid = pcntl_fork(); if ($pid == 0) { exit(0x12); } pcntl_waitpid(0, $status); VS(pcntl_wtermsig($status), 0);
VERIFY($xml->startElement("node")); VERIFY($xml->startCdata()); VERIFY($xml->text("Raw text")); VERIFY($xml->endCdata()); VERIFY($xml->endElement()); VERIFY($xml->startElement("node")); VERIFY($xml->writeCdata("More CDATA")); VERIFY($xml->endElement()); VERIFY($xml->startComment()); VERIFY($xml->text("Comments")); VERIFY($xml->endComment()); VERIFY($xml->writeComment("More comments")); VERIFY($xml->startPi("lol")); VERIFY($xml->endPi()); VERIFY($xml->writePi("php", "print 'Hello world!';")); VERIFY($xml->writeRaw("<node>Raw XML</node>")); VERIFY($xml->writeDTD("name", "publicID", "systemID", "subset")); VERIFY($xml->startDTD("name", "publicID", "systemID")); VERIFY($xml->endDTD()); VERIFY($xml->startDTDElement("name")); VERIFY($xml->endDTDElement()); VERIFY($xml->writeDTDElement("name", "content")); VERIFY($xml->startDTDAttlist("name")); VERIFY($xml->endDTDAttlist()); VERIFY($xml->writeDTDAttlist("name", "content")); VERIFY($xml->startDTDEntity("name", false)); VERIFY($xml->endDTDEntity()); VERIFY($xml->writeDTDEntity("name", "content", false, "publicid", "systemid", "ndataid")); VERIFY($xml->endDocument()); var_dump($xml->flush()); var_dump($xml->outputMemory());
VERIFY(xmlwriter_start_element($xml, "node")); VERIFY(xmlwriter_start_cdata($xml)); VERIFY(xmlwriter_text($xml, "Raw text")); VERIFY(xmlwriter_end_cdata($xml)); VERIFY(xmlwriter_end_element($xml)); VERIFY(xmlwriter_start_element($xml, "node")); VERIFY(xmlwriter_write_cdata($xml, "More CDATA")); VERIFY(xmlwriter_end_element($xml)); VERIFY(xmlwriter_start_comment($xml)); VERIFY(xmlwriter_text($xml, "Comments")); VERIFY(xmlwriter_end_comment($xml)); VERIFY(xmlwriter_write_comment($xml, "More comments")); VERIFY(xmlwriter_start_pi($xml, "lol")); VERIFY(xmlwriter_end_pi($xml)); VERIFY(xmlwriter_write_pi($xml, "php", "print 'Hello world!';")); VERIFY(xmlwriter_write_raw($xml, "<node>Raw XML</node>")); VERIFY(xmlwriter_write_dtd($xml, "name", "publicID", "systemID", "subset")); VERIFY(xmlwriter_start_dtd($xml, "name", "publicID", "systemID")); VERIFY(xmlwriter_end_dtd($xml)); VERIFY(xmlwriter_start_dtd_element($xml, "name")); VERIFY(xmlwriter_end_dtd_element($xml)); VERIFY(xmlwriter_write_dtd_element($xml, "name", "content")); VERIFY(xmlwriter_start_dtd_attlist($xml, "name")); VERIFY(xmlwriter_end_dtd_attlist($xml)); VERIFY(xmlwriter_write_dtd_attlist($xml, "name", "content")); VERIFY(xmlwriter_start_dtd_entity($xml, "name", false)); VERIFY(xmlwriter_end_dtd_entity($xml)); VERIFY(xmlwriter_write_dtd_entity($xml, "name", "content", false, "publicid", "systemid", "ndataid")); VERIFY(xmlwriter_end_document($xml)); var_dump(xmlwriter_flush($xml)); var_dump(xmlwriter_output_memory($xml));