26 cases (protocol x representative transport): current-shape input, expected sing-box fragment, and share-link baseline generated by running current main@8e89960 GetLink. Blocked/partial cases (xhttp, kcp, fallbacks, finalmask, vlessenc, removed SS ciphers, tunnel) record their unmapped concepts under _b0 for the Q1 decision instead of fabricating output. Link-route baselines only: JSON/Clash subscription families are being removed wholesale per the 2026-10-23 decision, Q2 closed.
21 lines
1.1 KiB
Go
21 lines
1.1 KiB
Go
// Package singbox hosts the L-UI xray→sing-box migration (ITEM6) assets.
|
||
//
|
||
// B0 deliverable: the golden fixture corpus under testdata/golden — for each
|
||
// protocol × representative transport, a current-shape sample (input.json),
|
||
// the expected sing-box fragment (expected-singbox.json), and the expected
|
||
// share-link output (expected-link.txt) produced by the CURRENT code at
|
||
// main 8e89960. B1 (data model + migrator) and B2 (config builder) consume
|
||
// these fixtures as their acceptance baseline:
|
||
//
|
||
// - the converter's output for input.json must equal expected-singbox.json
|
||
// (keys starting with "_" are fixture metadata, stripped before compare);
|
||
// - subscription links regenerated from the converted model must equal
|
||
// expected-link.txt byte for byte (ITEM6-SCOPE §2.4 invariants).
|
||
//
|
||
// Subscription baselines cover the LINK route only. Per the 2026-10-23
|
||
// product decision, the JSON and Clash subscription families are being
|
||
// removed entirely (separate work line); no baselines are kept for them.
|
||
//
|
||
// The conversion spec lives in ~/workspace/xui-lite-work/ITEM6-CONVERSION-SPEC.md.
|
||
package singbox
|