-
-
Notifications
You must be signed in to change notification settings - Fork 8
QA Testing
Before starting, ensure you have:
- Arch Linux or Arch-based distribution (EndeavourOS, Manjaro, CachyOS, Artix)
-
System tools:
-
pacman(package manager) -
paruoryay(AUR helper) — at least one required for AUR testing -
sudoaccess (for password prompt tests)
-
-
Terminal emulator (at least one of:
alacritty,kitty,ghostty,xterm,gnome-terminal,konsole,xfce4-terminal,tilix,mate-terminal) - Rust toolchain (stable)
- Always use
--dry-runduring initial testing to avoid system changes - Test in a VM or isolated environment when possible
- For password-related tests, ensure you have sudo access configured
- Check the PR description or release notes for specific features being tested
- Report bugs with detailed logs and steps to reproduce
sudo pacman -S rustup
rustup default stableVerify installation:
rustc --version
cargo --versionsudo pacman -S --needed base-devel gitgit clone https://github.com/Firstp1ck/Pacsea.git
cd PacseaIf you need to test a specific branch:
git fetch origin
git checkout <branch-name>To test the latest main branch:
git checkout main
git pull origin mainTo test a specific release tag:
git fetch origin --tags
git checkout <tag-name>Verify you're on the correct branch/tag:
git branch --show-current
# or for tags:
git describe --tagsCheck if you have an AUR helper installed:
which paru || which yayIf neither is found, install one (required for AUR testing):
# For paru:
git clone https://aur.archlinux.org/paru.git
cd paru && makepkg -si && cd ..
# OR for yay:
git clone https://aur.archlinux.org/yay.git
cd yay && makepkg -si && cd ..cargo build --releaseThis may take several minutes on first build. Subsequent builds will be faster.
Run a quick check to ensure everything compiles:
cargo checkBefore testing manually, verify the test suite passes:
cargo test -- --test-threads=1Note: Some tests are marked as ignored (e.g., password validation tests). To run those:
cargo test -- --ignored --test-threads=1Recommended for initial testing (dry-run mode):
cargo run -- --dry-runFor actual testing (will execute commands):
cargo run --releaseOr use the built binary directly:
./target/release/pacseaWith debug logging (useful for troubleshooting):
RUST_LOG=pacsea=debug cargo run -- --dry-runOr with verbose flag:
cargo run -- --dry-run --verbose- Use a VM or test system to avoid affecting your main system
- Start with
--dry-runto verify behavior without making changes - Use a test user with sudo access for password prompt tests
- Ensure network connectivity for package operations
Before starting QA testing, verify:
- Rust toolchain installed (
rustc --versionworks) - Repository cloned and on the correct branch/tag
- Project builds successfully (
cargo build --releasecompletes) - Tests pass (
cargo test -- --test-threads=1passes) -
pacmanis available (which pacman) - AUR helper is available (
which paruorwhich yay) - Terminal emulator is installed (at least one from the list)
- Sudo access works (
sudo -vsucceeds)
If available, use the testing checklist at:
dev/PR/TESTING_CHECKLIST.md
Common testing areas include:
- Package installation/removal flows
- Preflight modal workflows
- Password prompt behavior
- Security scan flows
- System update flows
- Error handling
- Edge cases
-
BlackArch (if
[blackarch]is configured): Aftercargo run -- --dry-run, confirm the official index loads without errors; search for a known BlackArch package (e.g. a tool you know is only in BlackArch); verify the BlackArch label on rows; confirm the [BlackArch] chip appears in the Results title bar and toggles visibility on click; open Preflight for an install that pulls BlackArch deps and check badge coloring. On a system without BlackArch, confirm there is no chip and behavior matches mainline Arch/EOS/CachyOS expectations. -
Custom repos (
repos.conf/ Options → Repositories, Linux): Prefer a VM. With--dry-run, open Repositories, toggle Space on a managed row, verify the printed apply plan; confirm all-disabled apply still produces a safe comment-only drop-in message in the plan text. On a throwaway system, run a real apply, then confirm post-apply overlap wizard only after the log completes; exercise Esc/q on step 0 vs migration path. Queue a mixed official+AUR install and confirm helper invocations use-S --aurfor the AUR-only segment. See How to use Pacsea — Custom repositories. -
Privilege setup assistants (
sudo_timestamp_setup,doas_persist_setup): From Optional Deps, open both helpers and verify modal flow, key navigation, and instruction rendering. Confirm sudo helper shows timeout preset variants and safevisudo/permission steps; confirm doas helper presents persist-policy snippets plus checklist/validation hints. In--dry-run, verify no unintended privileged mutations execute. - Long-run auth readiness warnings: Trigger install/update/remove/downgrade paths with auth settings that may expire credentials; verify warning appears once per continuation path, text is clear, and continue/cancel behavior is correct.
-
Security baseline checks: Run
./dev/scripts/security-check.shlocally and confirm no high/critical blockers before final QA sign-off.
For specific feature testing, check for PR documentation files in dev/PR/ directory.
When testing branches that touch theme or settings loading:
-
Backup
~/.config/pacsea/(or use a throwaway user /HOMEin a test environment). -
Partial
theme.conf: Replacetheme.confwith a minimal file (for example one valid line likebase = #111111), start Pacsea, confirm the TUI loads. Inspecttheme.confafterward—missing palette keys should be appended (see Configuration). -
Empty
theme.conf: Truncatetheme.confto zero bytes or delete it; on next start, Pacsea should recreate a full default skeleton. -
--dry-run: Config files may still be updated on startup; use a copy of your config dir if you must not touch production files.
Build fails:
- Ensure Rust stable is installed:
rustup default stable - Update Rust:
rustup update stable - Clean and rebuild:
cargo clean && cargo build --release
Tests fail:
- Run with single thread:
cargo test -- --test-threads=1 - Some tests require specific system state; check test output for details
Application won't start:
- Check terminal emulator availability
- Verify
pacmanis in PATH - Run with debug logging:
RUST_LOG=pacsea=debug cargo run - If the log mentions theme or config parse errors, open
~/.config/pacsea/theme.confand fix reported lines (duplicates, invalid colors). For expected auto-repair behavior, see Configuration and Troubleshooting
AUR operations don't work:
- Verify
paruoryayis installed and in PATH - Test AUR helper directly:
paru -S --helporyay -S --help
- Review any available PR documentation in
dev/PR/for feature details - Review
dev/PR/TESTING_CHECKLIST.mdfor test scenarios (if available) - Start with dry-run mode:
cargo run -- --dry-run - Follow the testing checklist systematically
- Report issues with logs:
RUST_LOG=pacsea=debug cargo run -- --dry-run > test.log 2>&1
You're ready to start QA testing.