File: gridfs-fseek2.phpt

package info (click to toggle)
php-mongo 1.5.7-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 11,040 kB
  • ctags: 2,802
  • sloc: ansic: 17,632; xml: 2,195; php: 1,630; pascal: 330; makefile: 52; sh: 39
file content (58 lines) | stat: -rw-r--r-- 1,594 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
--TEST--
GridFS: Testing fseek and fread (2)
--SKIPIF--
<?php require_once "tests/utils/standalone.inc"; ?>
--FILE--
<?php
require_once "tests/utils/server.inc";
function readRange($fp, $seek, $length = false)
{
	fseek($fp, $seek, SEEK_SET);
	$data = '';
	if ($length === false) {
		while (!feof($fp)) {
			$buffer = fread($fp, 8192);
			$data .= $buffer;
		}
	} else {
		$toRead = $length - $seek;
		while ($toRead > 0) {
			$buffer = fread($fp, $toRead);
			$toRead -= strlen($buffer);
			$data .= $buffer;
		}
	}
	return $data;
}

$m = new_mongo_standalone();
$db = $m->selectDb('phpunit');
$grid = $db->getGridFS('wrapper');
$grid->drop();
$grid->storeFile('tests/data-files/gridfs-fseek2-data.txt');

$file = $grid->findOne(array('filename' => 'tests/data-files/gridfs-fseek2-data.txt'));
echo $file->file['chunkSize'], "\n";
$fp = $file->getResource();

echo md5(readRange($fp, 0, 819300)), "\n";
echo md5(readRange($fp, 0, 819300)), "\n";
$first = readRange($fp, 0, 819300);
echo md5(readRange($fp, 819300, false)), "\n";
echo md5(readRange($fp, 819300, false)), "\n";
echo md5(readRange($fp, 819300, false)), "\n";
echo md5(readRange($fp, 819300, false)), "\n";
$second = readRange($fp, 819300, false);
echo md5_file('tests/data-files/gridfs-fseek2-data.txt'), "\n";
echo md5($first . $second), "\n";
?>
--EXPECT--
261120
3c1fbf79189651e9e0d81058cd3c6af6
3c1fbf79189651e9e0d81058cd3c6af6
856bebb64ad591da27e61a9d288a0dce
856bebb64ad591da27e61a9d288a0dce
856bebb64ad591da27e61a9d288a0dce
856bebb64ad591da27e61a9d288a0dce
1769daba434b221ac2577e4f6f491cca
1769daba434b221ac2577e4f6f491cca