⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.23
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
local
/
src
/
mongodb-1.11.1
/
tests
/
cursor
/
View File Name :
bug1050-001.phpt
--TEST-- PHPC-1050: Command cursor should not invoke getMore at execution --SKIPIF-- <?php require __DIR__ . "/../utils/basic-skipif.inc"; ?> <?php skip_if_not_replica_set(); ?> <?php skip_if_not_clean(); ?> <?php skip_if_server_version('<', '3.6'); ?> <?php skip_if_not_server_storage_engine('wiredTiger'); ?> --FILE-- <?php require_once __DIR__ . "/../utils/basic.inc"; class CommandLogger implements MongoDB\Driver\Monitoring\CommandSubscriber { public function commandStarted(MongoDB\Driver\Monitoring\CommandStartedEvent $event) { if ($event->getCommandName() !== 'aggregate' && $event->getCommandName() !== 'getMore') { return; } printf("Executing command: %s\n", $event->getCommandName()); } public function commandSucceeded(MongoDB\Driver\Monitoring\CommandSucceededEvent $event) { if ($event->getCommandName() !== 'aggregate' && $event->getCommandName() !== 'getMore') { return; } printf("Executing command took %0.6f seconds\n", $event->getDurationMicros() / 1000000); } public function commandFailed(MongoDB\Driver\Monitoring\CommandFailedEvent $event) { } } $manager = create_test_manager(); $cmd = new MongoDB\Driver\Command( [ 'aggregate' => COLLECTION_NAME, 'pipeline' => [ ['$changeStream' => (object) []], ], 'cursor' => (object) [], ], [ 'maxAwaitTimeMS' => 500, ] ); MongoDB\Driver\Monitoring\addSubscriber(new CommandLogger); $cursor = $manager->executeReadCommand(DATABASE_NAME, $cmd); $it = new IteratorIterator($cursor); printf("Current position is valid: %s\n\n", $it->valid() ? 'yes' : 'no'); echo "Rewinding cursor\n"; $it->rewind(); printf("Current position is valid: %s\n\n", $it->valid() ? 'yes' : 'no'); $bulk = new MongoDB\Driver\BulkWrite; $bulk->insert(['x' => 1]); $manager->executeBulkWrite(NS, $bulk); echo "Advancing cursor\n"; $it->next(); printf("Current position is valid: %s\n\n", $it->valid() ? 'yes' : 'no'); $document = $it->current(); if (isset($document)) { printf("Operation type: %s\n", $document->operationType); var_dump($document->fullDocument); } ?> ===DONE=== <?php exit(0); ?> --EXPECTF-- Executing command: aggregate Executing command took 0.%d seconds Current position is valid: no Rewinding cursor Executing command: getMore Executing command took 0.%r(4|5)%r%d seconds Current position is valid: no Advancing cursor Executing command: getMore Executing command took 0.%d seconds Current position is valid: yes Operation type: insert object(stdClass)#%d (%d) { ["_id"]=> object(MongoDB\BSON\ObjectId)#%d (%d) { ["oid"]=> string(24) "%x" } ["x"]=> int(1) } ===DONE===