diff --git a/src/Box.php b/src/Box.php
index 27e849c8f..a2dc63230 100644
--- a/src/Box.php
+++ b/src/Box.php
@@ -52,8 +52,6 @@
*/
final class Box implements Countable
{
- public const DEBUG_DIR = '.box_dump';
-
/**
* @var string The path to the PHAR file
*/
diff --git a/src/Console/Command/Compile.php b/src/Console/Command/Compile.php
index dcd14bffc..250a0c96b 100644
--- a/src/Console/Command/Compile.php
+++ b/src/Console/Command/Compile.php
@@ -239,12 +239,12 @@ private function createPhar(
$this->checkComposerFiles($box, $config, $logger);
- $this->configureCompressionAlgorithm($config, $box, $input->getOption(self::DEV_OPTION), $io, $logger);
-
if ($debug) {
$box->getPhar()->extractTo(self::DEBUG_DIR, null, true);
}
+ $this->configureCompressionAlgorithm($config, $box, $input->getOption(self::DEV_OPTION), $io, $logger);
+
$this->signPhar($config, $box, $config->getTmpOutputPath(), $input, $output, $logger);
if ($config->getTmpOutputPath() !== $config->getOutputPath()) {
@@ -649,25 +649,27 @@ private static function bumpOpenFileDescriptorLimit(Box $box, SymfonyStyle $io):
$softLimit = posix_getrlimit()['soft openfiles'];
$hardLimit = posix_getrlimit()['hard openfiles'];
- if ($softLimit < $filesCount) {
- $io->writeln(
- sprintf(
- '[debug] Increased the maximum number of open file descriptors from ("%s", "%s") to ("%s", "%s")'
- .'',
- $softLimit,
- $hardLimit,
- $filesCount,
- 'unlimited'
- ),
- OutputInterface::VERBOSITY_DEBUG
- );
+ if ($softLimit >= $filesCount) {
+ return function (): void {};
+ }
- posix_setrlimit(
- POSIX_RLIMIT_NOFILE,
+ $io->writeln(
+ sprintf(
+ '[debug] Increased the maximum number of open file descriptors from ("%s", "%s") to ("%s", "%s")'
+ .'',
+ $softLimit,
+ $hardLimit,
$filesCount,
- 'unlimited' === $hardLimit ? POSIX_RLIMIT_INFINITY : $hardLimit
- );
- }
+ 'unlimited'
+ ),
+ OutputInterface::VERBOSITY_DEBUG
+ );
+
+ posix_setrlimit(
+ POSIX_RLIMIT_NOFILE,
+ $filesCount,
+ 'unlimited' === $hardLimit ? POSIX_RLIMIT_INFINITY : $hardLimit
+ );
return function () use ($io, $softLimit, $hardLimit): void {
if (function_exists('posix_setrlimit') && isset($softLimit, $hardLimit)) {
diff --git a/tests/Console/Command/CompileTest.php b/tests/Console/Command/CompileTest.php
index 440f50bcd..a5807f87c 100644
--- a/tests/Console/Command/CompileTest.php
+++ b/tests/Console/Command/CompileTest.php
@@ -32,6 +32,7 @@
use function extension_loaded;
use function file_get_contents;
use function file_put_contents;
+use function Humbug\get_contents;
use function iterator_to_array;
use function KevinGH\Box\FileSystem\dump_file;
use function KevinGH\Box\FileSystem\file_contents;
@@ -974,6 +975,9 @@ public function test_it_can_build_a_PHAR_file_in_very_verbose_mode(): void
$this->assertSame($expected, $actual);
}
+ /**
+ * @requires extension zlib
+ */
public function test_it_can_build_a_PHAR_file_in_debug_mode(): void
{
mirror(self::FIXTURES_DIR.'/dir000', $this->tmp);
@@ -1005,6 +1009,7 @@ public function test_it_can_build_a_PHAR_file_in_debug_mode(): void
'metadata' => ['rand' => $rand = random_int(0, mt_getrandmax())],
'output' => 'test.phar',
'shebang' => $shebang,
+ 'compression' => 'GZ',
]
)
);
@@ -1077,7 +1082,8 @@ public function test_it_can_build_a_PHAR_file_in_debug_mode(): void
)
? Dumping the Composer autoloader
? Removing the Composer dump artefacts
-? No compression
+? Compressing with the algorithm "GZ"
+ > Warning: the extension "zlib" will now be required to execute the PHAR
? Signing using a private key
Private key passphrase:
? Setting file permissions to 0754
@@ -1360,7 +1366,7 @@ public function test_it_can_build_a_PHAR_file_in_debug_mode(): void
]
}
]
- -compressionAlgorithm: null
+ -compressionAlgorithm: 4096
-mainScriptPath: "/path/to/run.php"
-mainScriptContents: """
assertSame($expectedDumpedConfig, $actualDumpedConfig);
+
+ // Checks one of the dumped file from the PHAR to ensure the encoding of the extracted file is correct
+ $this->assertSame(
+ get_contents('.box_dump/run.php'),
+ <<<'PHP'
+