From 513baed2623c3766cfc847c6bd86e4a78dc1fdf3 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Tue, 25 Aug 2026 15:28:06 +0200 Subject: [PATCH 1/2] test: run dataset suites against legacy storage Signed-off-by: Jakub Sztandera --- Makefile | 2 ++ test/PDPVerifier.t.sol | 12 +++++++++++- test/PDPVerifierProofTest.t.sol | 1 + test/PieceHelper.t.sol | 9 +++++++++ test/SimplePDPService.t.sol | 1 + 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f62e31e..9490c4b 100644 --- a/Makefile +++ b/Makefile @@ -36,11 +36,13 @@ build-fast: .PHONY: test test: forge test -vv + PDP_TEST_LEGACY_STORAGE=true forge test -vv # Fast local test target (non-IR, optimizer disabled) .PHONY: test-fast test-fast: FOUNDRY_PROFILE=fast forge test -vv + PDP_TEST_LEGACY_STORAGE=true FOUNDRY_PROFILE=fast forge test -vv # Deployment targets .PHONY: deploy-calibnet diff --git a/test/PDPVerifier.t.sol b/test/PDPVerifier.t.sol index bda9915..7a98ed9 100644 --- a/test/PDPVerifier.t.sol +++ b/test/PDPVerifier.t.sol @@ -31,6 +31,7 @@ contract PDPVerifierDataSetCreateDeleteTest is MockFVMTest, PieceHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); listener = new TestingRecordKeeperService(); } @@ -255,6 +256,7 @@ contract PDPVerifierStorageProviderTest is MockFVMTest, PieceHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); listener = new TestingRecordKeeperService(); storageProvider = address(this); @@ -355,6 +357,7 @@ contract PDPVerifierDataSetMutateTest is MockFVMTest, PieceHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); listener = new TestingRecordKeeperService(); } @@ -1246,6 +1249,7 @@ contract PDPVerifierPaginationTest is MockFVMTest, PieceHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); listener = new TestingRecordKeeperService(); } @@ -2190,6 +2194,7 @@ contract PDPListenerIntegrationTest is MockFVMTest, PieceHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); badListener = new BadListener(); } @@ -2296,6 +2301,7 @@ contract PDPVerifierExtraDataTest is MockFVMTest, PieceHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); extraDataListener = new ExtraDataListener(); } @@ -2354,6 +2360,7 @@ contract PDPVerifierE2ETest is MockFVMTest, ProofBuilderHelper, PieceHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); listener = new TestingRecordKeeperService(); vm.fee(1 gwei); vm.deal(address(pdpVerifierImpl), 100 ether); @@ -2675,6 +2682,7 @@ contract PDPVerifierFeeTest is MockFVMTest, PieceHelper, ProofBuilderHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); vm.fee(1 gwei); listener = new TestingRecordKeeperService(); } @@ -2799,7 +2807,7 @@ contract MockStorageProviderChangedListener is PDPListener { function nextProvingPeriod(uint256, uint256, uint256, bytes calldata) external override {} } -contract PDPVerifierStorageProviderListenerTest is MockFVMTest { +contract PDPVerifierStorageProviderListenerTest is MockFVMTest, PieceHelper { PDPVerifier pdpVerifier; MockStorageProviderChangedListener listener; address public storageProvider; @@ -2813,6 +2821,7 @@ contract PDPVerifierStorageProviderListenerTest is MockFVMTest { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); listener = new MockStorageProviderChangedListener(); storageProvider = address(this); nextStorageProvider = address(0x1234); @@ -2855,6 +2864,7 @@ contract PDPVerifierCIDSearchTest is MockFVMTest, PieceHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); listener = new TestingRecordKeeperService(); setId = pdpVerifier.createDataSet{value: PDPFees.cleanupDeposit()}(address(listener), empty); diff --git a/test/PDPVerifierProofTest.t.sol b/test/PDPVerifierProofTest.t.sol index a601bf4..1c15872 100644 --- a/test/PDPVerifierProofTest.t.sol +++ b/test/PDPVerifierProofTest.t.sol @@ -27,6 +27,7 @@ contract PDPVerifierProofTest is MockFVMTest, ProofBuilderHelper, PieceHelper { bytes memory initializeData = abi.encodeWithSelector(PDPVerifier.initialize.selector); MyERC1967Proxy proxy = new MyERC1967Proxy(address(pdpVerifierImpl), initializeData); pdpVerifier = PDPVerifier(address(proxy)); + _configurePieceStorage(pdpVerifier); listener = new TestingRecordKeeperService(); vm.fee(1 wei); vm.deal(address(pdpVerifierImpl), 100 ether); diff --git a/test/PieceHelper.t.sol b/test/PieceHelper.t.sol index 34e1b1a..a10877e 100644 --- a/test/PieceHelper.t.sol +++ b/test/PieceHelper.t.sol @@ -4,8 +4,17 @@ pragma solidity ^0.8.13; import {Test, console} from "forge-std/Test.sol"; import {Cids} from "../src/Cids.sol"; import {BitOps} from "../src/BitOps.sol"; +import {PDPVerifier} from "../src/PDPVerifier.sol"; +import {LEGACY_PIECE_STORAGE_ID_LIMIT_SLOT} from "../src/PDPVerifierLayout.sol"; contract PieceHelper is Test { + function _configurePieceStorage(PDPVerifier verifier) internal { + if (vm.envOr("PDP_TEST_LEGACY_STORAGE", false)) { + vm.store(address(verifier), LEGACY_PIECE_STORAGE_ID_LIMIT_SLOT, bytes32(0)); + assertEq(verifier.legacyPieceStorageIdLimit(), 0, "legacy piece storage not enabled"); + } + } + function validateCommPv2(Cids.Cid calldata cid) external pure diff --git a/test/SimplePDPService.t.sol b/test/SimplePDPService.t.sol index 245eb73..b58afb7 100644 --- a/test/SimplePDPService.t.sol +++ b/test/SimplePDPService.t.sol @@ -124,6 +124,7 @@ contract PDPVerifierSimplePDPServiceIntegrationTest is MockFVMTest, PieceHelper ) ) ); + _configurePieceStorage(pdpVerifier); SimplePDPService serviceImplementation = new SimplePDPService(1); pdpService = SimplePDPService( From db239fc5f0773e6ff5f8508c81d79b3718378f03 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Tue, 25 Aug 2026 15:30:01 +0200 Subject: [PATCH 2/2] test: remove piece helper logging Signed-off-by: Jakub Sztandera --- test/PieceHelper.t.sol | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/PieceHelper.t.sol b/test/PieceHelper.t.sol index a10877e..6fdc9e5 100644 --- a/test/PieceHelper.t.sol +++ b/test/PieceHelper.t.sol @@ -63,10 +63,6 @@ contract PieceHelper is Test { uint256 paddingLeaves = (1 << height) - leafCount; uint256 padding = (paddingLeaves * 32 * 127 + 127) / 128; - console.log("leafCount", leafCount); - console.log("height", height); - console.log("paddingLeaves", paddingLeaves); - console.log("padding", padding); assertEq(Cids.leafCount(padding, height), leafCount, "makePiece: leaf count mismatch"); return Cids.CommPv2FromDigest(padding, height, tree[0][0]); }