Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified agent/build/agent.phar
Binary file not shown.
2 changes: 1 addition & 1 deletion agent/build/signature.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
52149106D34A73BB8DE3CD83918A1272E980EFE1FADFFC8A80002F96E76429866F7DEB68D99456C71E4D01E85F89D936C6805BD7E40CB772580DCF30BB27A1EB
AEFC6C5B33B8A0A3AEB075A6C8E2DFEA5D0B1AE302014601999F45C6F5C68A5AA2D50F490F472BC05932163737CEBDFA4EEE066D006415E7BF8C5FD7E3F6FEA9
20 changes: 19 additions & 1 deletion agent/src/agent.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
$ingestTimeout ??= 10;
/** @var ?string $server */
$server ??= (string) gethostname();
$testing = (bool) ($_SERVER['NIGHTWATCH_TESTING'] ?? false);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need to be able to avoid exit while we are running the testsuite.


/*
* Logging helpers...
Expand All @@ -84,7 +85,11 @@
if ($expectedSignature === false) {
$error("Unable to read the agent's signature");

return;
if ($testing) {
return;
} else {
exit(1);
}
Comment on lines +88 to +92
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously, this would just return, but I think we should exit with an error code if we cannot read the signature file.

}

$tokenHash = substr(hash('xxh128', $refreshToken), 0, 7);
Expand Down Expand Up @@ -196,3 +201,16 @@
$checkSignature->start();

$loop->run();

if (! $testing) {
// When the agent is invoked from the artisan command, it is possible that
// the Laravel application will attempt to load additional PHP files after
// the agent has shut down. These additional PHP files are part of their
// application not one of the agent's dependencies. If the application is
// using a symlink switch deployment strategy, e.g., Laravel Envoyer, it is
// possible the additional files are no longer present, which will trigger
// a fatal PHP error. Exiting here ensures that the agent always shuts down
// cleanly with the tradeoff that the application's terminating hooks will
// not run for the `nightwatch:agent` command.
exit(0);
}
3 changes: 3 additions & 0 deletions agent/tests/TestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ protected function runAgent(
}

$process = Process::fromShellCommandline('php '.__DIR__.'/agent-wrapper.php')
->setEnv([
'NIGHTWATCH_TESTING' => '1',
])
->setTimeout($timeout);

$process->mustRun(function (string $type, string $o) use ($until, $process, &$output) {
Expand Down