Skip to content
Snippets Groups Projects
Verified Commit 29f289f3 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3423329 by catch, kristiaanvandeneynde, dww, alexpott: Prevent session...

Issue #3423329 by catch, kristiaanvandeneynde, dww, alexpott: Prevent session garbage collection during functional tests
parent a6b5f9f4
No related branches found
No related tags found
No related merge requests found
......@@ -129,13 +129,17 @@ protected function prepareSettings() {
// Otherwise, use the default services as a starting point for overrides.
$settings_services_file = DRUPAL_ROOT . '/sites/default/default.services.yml';
}
// Copy the testing-specific service overrides in place.
copy($settings_services_file, $directory . '/services.yml');
// Put the testing-specific service overrides in place.
$yaml = new SymfonyYaml();
$content = file_get_contents($settings_services_file);
// Disable session garbage collection since test environments do not last
// long enough to have stale sessions. This prevents random delete queries
// from running during tests.
$services = $yaml->parse($content);
$services['parameters']['session.storage.options']['gc_probability'] = 0;
if ($this->strictConfigSchema) {
// Add a listener to validate configuration schema on save.
$yaml = new SymfonyYaml();
$content = file_get_contents($directory . '/services.yml');
$services = $yaml->parse($content);
$test_file_name = (new \ReflectionClass($this))->getFileName();
// @todo Decide in https://www.drupal.org/project/drupal/issues/3395099 when/how to trigger deprecation errors or even failures for contrib modules.
$is_core_test = str_starts_with($test_file_name, DRUPAL_ROOT . DIRECTORY_SEPARATOR . 'core');
......@@ -144,8 +148,8 @@ protected function prepareSettings() {
'arguments' => ['@config.typed', $this->getConfigSchemaExclusions(), $is_core_test],
'tags' => [['name' => 'event_subscriber']],
];
file_put_contents($directory . '/services.yml', $yaml->dump($services));
}
file_put_contents($directory . '/services.yml', $yaml->dump($services));
// Since Drupal is bootstrapped already, install_begin_request() will not
// bootstrap again. Hence, we have to reload the newly written custom
// settings.php manually.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment