Skip to content

Commit 59b670d

Browse files
committed
test: --profile=test-cid-v1-2025-v35 and UnixFSFileMaxLinks
1 parent c402af5 commit 59b670d

File tree

1 file changed

+73
-26
lines changed

1 file changed

+73
-26
lines changed

test/cli/add_test.go

Lines changed: 73 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -107,24 +107,33 @@ func TestAdd(t *testing.T) {
107107
require.Equal(t, shortStringCidV0, cidStr)
108108
})
109109

110-
t.Run("ipfs init --profile=legacy-cid-v0 applies UnixFSChunker=size-262144 and UnixFSFileMaxLinks=174", func(t *testing.T) {
110+
t.Run("ipfs init --profile=legacy-cid-v0 applies UnixFSChunker=size-262144 and UnixFSFileMaxLinks", func(t *testing.T) {
111111
t.Parallel()
112112
node := harness.NewT(t).NewNode().Init("--profile=legacy-cid-v0")
113113
node.StartDaemon()
114114
defer node.StopDaemon()
115+
seed := "v0-seed"
116+
117+
t.Run("under UnixFSFileMaxLinks=174", func(t *testing.T) {
118+
// Add 44544KiB file:
119+
// 174 * 256KiB should fit in single DAG layer
120+
cidStr := node.IPFSAddFromSeed("44544KiB", seed)
121+
root, err := node.InspectPBNode(cidStr)
122+
assert.NoError(t, err)
123+
require.Equal(t, 174, len(root.Links))
124+
// expect same CID every time
125+
require.Equal(t, "QmUbBALi174SnogsUzLpYbD4xPiBSFANF4iztWCsHbMKh2", cidStr)
126+
})
115127

116-
// Add 44544KiB file:
117-
// 174 * 256KiB should fit in single DAG layer
118-
cidStr := node.IPFSAddFromSeed("44544KiB", "v0-seed")
119-
root, err := node.InspectPBNode(cidStr)
120-
assert.NoError(t, err)
121-
require.Equal(t, 174, len(root.Links))
122-
123-
// add 256KiB (one more block), it should force rebalancing DAG and moving most to second layer
124-
cidStr = node.IPFSAddFromSeed("44800KiB", "v0-seed")
125-
root, err = node.InspectPBNode(cidStr)
126-
assert.NoError(t, err)
127-
require.Equal(t, 2, len(root.Links))
128+
t.Run("above UnixFSFileMaxLinks=174", func(t *testing.T) {
129+
// add 256KiB (one more block), it should force rebalancing DAG and moving most to second layer
130+
cidStr := node.IPFSAddFromSeed("44800KiB", seed)
131+
root, err := node.InspectPBNode(cidStr)
132+
assert.NoError(t, err)
133+
require.Equal(t, 2, len(root.Links))
134+
// expect same CID every time
135+
require.Equal(t, "QmepeWtdmS1hHXx1oZXsPUv6bMrfRRKfZcoPPU4eEfjnbf", cidStr)
136+
})
128137
})
129138

130139
t.Run("ipfs init --profile=legacy-cid-v1 produces CIDv1 with raw leaves", func(t *testing.T) {
@@ -137,23 +146,61 @@ func TestAdd(t *testing.T) {
137146
require.Equal(t, shortStringCidV1, cidStr) // raw leaf
138147
})
139148

140-
t.Run("ipfs init --profile=legacy-cid-v1 applies UnixFSChunker=size-1048576 and UnixFSFileMaxLinks=174", func(t *testing.T) {
149+
t.Run("ipfs init --profile=legacy-cid-v1 applies UnixFSChunker=size-1048576 and UnixFSFileMaxLinks", func(t *testing.T) {
141150
t.Parallel()
142151
node := harness.NewT(t).NewNode().Init("--profile=legacy-cid-v1")
143152
node.StartDaemon()
144153
defer node.StopDaemon()
154+
seed := "v1-seed"
155+
156+
t.Run("under UnixFSFileMaxLinks=174", func(t *testing.T) {
157+
// Add 174MiB file:
158+
// 174 * 1MiB should fit in single layer
159+
cidStr := node.IPFSAddFromSeed("174MiB", seed)
160+
root, err := node.InspectPBNode(cidStr)
161+
assert.NoError(t, err)
162+
require.Equal(t, 174, len(root.Links))
163+
// expect same CID every time
164+
require.Equal(t, "bafybeigwduxcf2aawppv3isnfeshnimkyplvw3hthxjhr2bdeje4tdaicu", cidStr)
165+
})
166+
167+
t.Run("above UnixFSFileMaxLinks=174", func(t *testing.T) {
168+
// add +1MiB (one more block), it should force rebalancing DAG and moving most to second layer
169+
cidStr := node.IPFSAddFromSeed("175MiB", seed)
170+
root, err := node.InspectPBNode(cidStr)
171+
assert.NoError(t, err)
172+
require.Equal(t, 2, len(root.Links))
173+
// expect same CID every time
174+
require.Equal(t, "bafybeidhd7lo2n2v7lta5yamob3xwhbxcczmmtmhquwhjesi35jntf7mpu", cidStr)
175+
})
176+
})
177+
178+
t.Run("ipfs init --profile=test-cid-v1-2025-v35 applies UnixFSChunker=size-1048576 and UnixFSFileMaxLinks", func(t *testing.T) {
179+
t.Parallel()
180+
node := harness.NewT(t).NewNode().Init("--profile=test-cid-v1-2025-v35")
181+
node.StartDaemon()
182+
defer node.StopDaemon()
183+
seed := "v1-seed-1024"
184+
185+
t.Run("under UnixFSFileMaxLinks=1024", func(t *testing.T) {
186+
// Add 174MiB file:
187+
// 1024 * 1MiB should fit in single layer
188+
cidStr := node.IPFSAddFromSeed("1024MiB", seed)
189+
root, err := node.InspectPBNode(cidStr)
190+
assert.NoError(t, err)
191+
require.Equal(t, 1024, len(root.Links))
192+
// expect same CID every time
193+
require.Equal(t, "bafybeiej5w63ir64oxgkr5htqmlerh5k2rqflurn2howimexrlkae64xru", cidStr)
194+
})
145195

146-
// Add 174MiB file:
147-
// 174 * 1MiB should fit in single layer
148-
cidStr := node.IPFSAddFromSeed("174MiB", "v1-seed")
149-
root, err := node.InspectPBNode(cidStr)
150-
assert.NoError(t, err)
151-
require.Equal(t, 174, len(root.Links))
152-
153-
// add +1MiB (one more block), it should force rebalancing DAG and moving most to second layer
154-
cidStr = node.IPFSAddFromSeed("175MiB", "v1-seed")
155-
root, err = node.InspectPBNode(cidStr)
156-
assert.NoError(t, err)
157-
require.Equal(t, 2, len(root.Links))
196+
t.Run("above UnixFSFileMaxLinks=1024", func(t *testing.T) {
197+
// add +1MiB (one more block), it should force rebalancing DAG and moving most to second layer
198+
cidStr := node.IPFSAddFromSeed("1025MiB", seed)
199+
root, err := node.InspectPBNode(cidStr)
200+
assert.NoError(t, err)
201+
require.Equal(t, 2, len(root.Links))
202+
// expect same CID every time
203+
require.Equal(t, "bafybeieilp2qx24pe76hxrxe6bpef5meuxto3kj5dd6mhb5kplfeglskdm", cidStr)
204+
})
158205
})
159206
}

0 commit comments

Comments
 (0)