Problem
CHIRP now has system tests that import committed test-data/chirp/<version>/<radio>/ fixtures through the internal codeplug model and assert file-level round-trip fidelity (multiset row compare; Location excluded because export reassigns slots). OpenGD77 should have the same guard.
Today OpenGD77 coverage is semantic (roundtrip.test.ts with stripIds()) and merge workflow (activeImport.system.test.ts with synthetic src/test/opengd77/ bundles). There is no committed real CPS export file-level diff after import → export.
Scope
- Add
test-data/opengd77/<version>/… layout (mirror CHIRP pattern)
- System test: import OpenGD77 CPS folder → internal
Codeplug → export all CSVs → compare each file to source
- Row/order rules: multiset compare where order is not guaranteed; document excluded columns (e.g. header-only DTMF/APRS, profile-specific truncation)
- Wire through
runNewProjectImportWorkflow or dedicated harness beside src/test/system/chirpRoundTrip.system.test.ts
Reference
Acceptance
Problem
CHIRP now has system tests that import committed
test-data/chirp/<version>/<radio>/fixtures through the internal codeplug model and assert file-level round-trip fidelity (multiset row compare;Locationexcluded because export reassigns slots). OpenGD77 should have the same guard.Today OpenGD77 coverage is semantic (
roundtrip.test.tswithstripIds()) and merge workflow (activeImport.system.test.tswith syntheticsrc/test/opengd77/bundles). There is no committed real CPS export file-level diff after import → export.Scope
test-data/opengd77/<version>/…layout (mirror CHIRP pattern)Codeplug→ export all CSVs → compare each file to sourcerunNewProjectImportWorkflowor dedicated harness besidesrc/test/system/chirpRoundTrip.system.test.tsReference
src/test/system/chirpRoundTrip.system.test.ts,src/test/csvRecordCompare.tsdocs/features/import-export/adding-a-new-vendor.md§4Acceptance
test-data/opengd77/npm run test:systemdocs/build/testing/format-fidelity.md