Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 5326190fc690eb59f6575c01243b0085 > files > 77

php-apc-3.1.15-4.14.mga4.x86_64.rpm

--TEST--
APC: Bug #63491 file_md5 value was wrong when use apc_bin_load function
--SKIPIF--
<?php
    require_once(dirname(__FILE__) . '/skipif.inc'); 
    if (PHP_MAJOR_VERSION < 5 || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION < 4)) {
		die('skip PHP 5.4+ only');
	}
--FILE--
<?php
include "server_test.inc";

$script = dirname(__FILE__) . '/bug63491.test.php';
$bin = dirname(__FILE__) . '/bug63491.test.bin';

file_put_contents($script, "<?php\nclass Hello {}\n\$a = '42';\n");

$file = <<<FL
	if ('dump' == \$_GET['do']) {
		echo "dumping\n";
		include "$script";
		\$ret = apc_bin_dumpfile(array('$script'), NULL, '$bin');
		if (false === \$ret) {
			echo "fail\n";
		} else {
			echo "all good \n";
		}
	} else if ('load' == \$_GET['do']) {
		echo "loading\n";
		\$ret = apc_bin_loadfile('$bin');
		if (true !== \$ret) {
			echo "fail\n";
		} else {
			echo "all good \n";
		}
	}
	\$aci = apc_cache_info();
	foreach (\$aci['cache_list'] as \$item) {
		if (\$item['filename'] == '$script') {
			echo "md5 is {\$item['md5']}\n";
			break;
		}
	}
FL;

$args = array(
'apc.enabled=1',
'apc.enable_cli=1',
'apc.file_md5=1',
'apc.stat=0',
);

server_start($file, $args);
for ($u = 0; $u < 10; $u++) {
	/* dump the test file on one instance */
	$send = "GET /?do=dump HTTP/1.1\n" .
			"Host: " . PHP_CLI_SERVER_HOSTNAME . "\n" .
			"\r\n\r\n";
	run_test(PHP_CLI_SERVER_HOSTNAME, PHP_CLI_SERVER_PORT, $send);

	/* and load it on another */
	$send = "GET /?do=load HTTP/1.1\n" .
			"Host: " . PHP_CLI_SERVER_HOSTNAME . "\n" .
			"\r\n\r\n";
	run_test(PHP_CLI_SERVER_HOSTNAME, PHP_CLI_SERVER_PORT+1, $send);
}
echo 'done';

--CLEAN--
<?php
	$script = dirname(__FILE__) . '/bug63491.test.php';
	$bin = dirname(__FILE__) . '/bug63491.test.bin';
	unlink($script);
	unlink($bin);
--EXPECT--
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
dumping
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
loading
all good 
md5 is f0b9d73bccf99c764cf793773d4d13d1
done