You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.3 KiB
2.3 KiB
ADDED Requirements
Requirement: ValidatePackages uses dyalpm library with batch AUR fallback
The ValidatePackages method SHALL accept a slice of package names, query them in batch using dyalpm, then batch query AUR for any not found in pacman databases.
Scenario: All packages found in local database
- WHEN ValidatePackages is called with packages that all exist in local pacman database
- THEN returns a slice of PackageInfo with Exists=true, InAUR=false for each
Scenario: Some packages found in sync database
- WHEN ValidatePackages is called with packages where some are only in sync databases
- THEN returns PackageInfo with Exists=true, InAUR=false for found packages
Scenario: Some packages found in AUR
- WHEN ValidatePackages is called and some packages are not in pacman databases
- THEN those packages are batched to single AUR HTTP request, returns PackageInfo with InAUR=true
Scenario: Packages not found anywhere
- WHEN ValidatePackages is called and some packages not found in pacman or AUR
- THEN returns PackageInfo with Exists=false, InAUR=false for those packages
Requirement: Unified package cache
The Pac struct SHALL maintain a single cache map that stores all package query results (both pacman and AUR), replacing the separate aurCache.
Scenario: Package already cached
- WHEN ValidatePackages is called for a package already queried in current job
- THEN cached result returned without any dyalpm or AUR calls
Scenario: New Pac instance
- WHEN New() creates a new Pac instance
- THEN cache is empty (fresh job)
Requirement: Single batch AUR call
The AUR HTTP API SHALL be called once with all package names not found in pacman databases.
Scenario: Multiple packages not in pacman
- WHEN 3 packages not found in local or sync databases
- THEN single AUR HTTP request with all 3 in arg[] params
- AND results cached for all 3
Requirement: Fallback to process spawn if dyalpm unavailable
If dyalpm library is not available at runtime, ValidatePackages SHALL fall back to spawning pacman -Qip/-Sip processes in batch.
Scenario: dyalpm unavailable
- WHEN dyalpm initialization fails
- THEN uses pacman -Qip for local, -Sip for sync, AUR HTTP batch as fallback
- AND behavior is identical to using dyalpm