Files
FreshRSS/tests
Gerard Alvear Porras c15171efb5 Fix actualize mutex collision across instances (#9045)
## What changed

- derive the actualization mutex name from a SHA-256 hash of the canonical `DATA_PATH`
- keep `TMP_PATH` as the configurable location for the mutex file
- add coverage for deterministic per-instance names and independent locks

## Why

Multiple FreshRSS instances that use the default shared system temporary directory currently use the same actualization lock. The data path identifies the instance without exposing or depending on its configured salt.

## Validation

- `vendor/bin/phpunit --bootstrap ./tests/bootstrap.php ./tests/lib/ActualizeMutexTest.php --no-progress`
- `vendor/bin/phpcs app/actualize_script.php lib/lib_rss.php tests/lib/ActualizeMutexTest.php -s`
- `vendor/bin/phpstan analyse --memory-limit 512M --no-progress app/actualize_script.php lib/lib_rss.php tests/lib/ActualizeMutexTest.php`

Fixes #6370

Co-authored-by: Gerard Alvear <gerard.alvear@logiqd.me>
2026-07-18 22:32:38 +02:00
..
2023-11-16 22:43:00 +01:00
2024-09-06 09:06:46 +02:00

FreshRSS tests

See our documentation about running tests.

make test-all

See test.yml for the GitHub Actions automated tests.

See composer.json for the different tests and versions, to be run locally.

Details about this tests folder

Unit tests are based on PHPUnit. Here is an example of manual install:

cd ./tests/
wget -O phpunit.phar https://phar.phpunit.de/phpunit-10.phar
php phpunit.phar --bootstrap bootstrap.php

The shellchecks.sh script is used to safeguard shell scripts from common shell script bugs and to ensure a consistent style. It requires ShellCheck and shfmt.