Testing Packages¶
Strategies for testing spksrc packages.
Regression Checks¶
If the issue being fixed was reported for a previous version, reproduce the original problem first, then verify the fix resolves it with an appropriate test case before submitting.
Build Testing¶
# Primary architecture
make -C spk/<package> arch-x64-7.2
# Multiple architectures
make -C spk/<package> arch-x64-7.2 arch-aarch64-7.2 arch-armv7-7.1
# All architectures
make -C spk/<package> all-supported
Build at least the primary architecture plus one representative per CPU family (e.g. x64, aarch64, armv7) — ideally matching what CI runs.
Package Features¶
- Description translations are correct
- Wizard pages and process work for both install and upgrade
- Wizard translations are complete
Service Operation¶
- Service starts from Package Center; confirm with
ps - Service stops from Package Center; confirm with
ps - "View log" in Package Center works
- Log files exist in the package data directory
(
/var/packages/<package>/var/on DSM < 7,/volume1/@appdata/<package>/on DSM 7) - DSM shortcut opens the interface
- Application port is declared in Firewall Services
Command Line Tools¶
- Expected binaries appear in PATH (via
/usr/local/binlinks) - Run binaries with version and verbose options (
--version,-v)
Device Testing¶
- Install via Package Center > Manual Install (upload SPK from local computer)
- Check the package log in the data directory
(
/var/packages/<pkg>/var/on DSM < 7,/volume1/@appdata/<pkg>/on DSM 7) - Verify service starts correctly
- For a fresh install, confirm the service account is created and config is initialized in the package data directory
Upgrade Testing¶
- Install previous version
- Configure and add data
- Upgrade to new version
- Verify data preserved
- Verify the service account and permissions are unchanged after upgrade
Uninstall Testing¶
- Package removes cleanly from
/var/packages/<package>/ - On DSM < 7: service account is removed from
/etc/passwd - On DSM 7: confirm the package data directory is removed when "delete data" is selected in the uninstall wizard
Note
On DSM ⅚ the installer explicitly removes the service account
(syno_remove_user). On DSM 7 the account is managed by the DSM package
framework (via conf/privilege) and persists after uninstall — the
installer no longer removes it.
Checklist Before PR¶
- Builds for x64-7.2
- Builds for aarch64-7.2
- Installs without errors
- Service starts automatically
- Core features work
- Upgrades from previous version
- Uninstalls cleanly
See Also¶
- Update Policy and Process - The testing checklist used before publishing, including supported DSM versions