Split the Disk arms of 04774 into their own test file
`Stateless tests (amd_asan_ubsan, flaky check)` failed this PR's head with `Test runs too long (> 180s)` on 04774: 5 of 5 recorded runs over the gate (183.76 to 190.85 s), no passes. That gate is per test file and fires only in flaky-check mode (tests/clickhouse-test:3630-3646). The cost is per client process, not per statement. 04774 was 49 client invocations at 132.0 s p50 in #114405's slowest asan flaky-check job and is 75 here at 185.2 s p50: 2.69 and 2.47 s per invocation. Four interleaved local pairs give 0.179 s per invocation on all three arms. So the Disk section moves to 04776 with its own fixture, at 37 invocations. 04774 keeps the File coverage at 46 invocations, below the 49 it shipped with, and its change is a pure deletion: the two arms that asserted the old `Disk` exemption, plus the locator and admin backup only those arms used. The moved block is verbatim apart from the local database identifier and one added arm: `ENGINE = Backup` over a `Disk(...)` locator was asserted only in the denied direction, here and before the split, so a regression that stopped granting the new source on that path would not have been caught. `RESTORE` had that positive arm already. Equivalence is byte-exact rather than argued: dropping the two lines the new arm prints from 04776's reference and reinserting the rest at the seam in 04774's reproduces the published 04774 reference. With the `Disk` source hook reverted to `std::nullopt`, 04776 fails on 7 lines and 04774 passes; with it made to demand `WRITE` unconditionally, 04776 fails on the two positive arms.
G
Groene AI committed
c30ed77f160e0fc5d0537fee7a162c9904516a34
Parent: 66e59bb