Skip to content

Commit 3824c3b

Browse files
author
Ryan
authored
chore(share/eds): adding test utility for generating embedded test data (#1320)
1 parent 9fc44b5 commit 3824c3b

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

share/eds/eds_test.go

+37
Original file line numberDiff line numberDiff line change
@@ -230,3 +230,40 @@ func openWrittenEDS(t *testing.T) *os.File {
230230
require.NoError(t, err, "error opening file")
231231
return f
232232
}
233+
234+
/*
235+
use this function as needed to create new test data.
236+
237+
example:
238+
239+
func Test_CreateData(t *testing.T) {
240+
createTestData(t, "celestia-node/share/eds/testdata")
241+
}
242+
*/
243+
func createTestData(t *testing.T, testDir string) { //nolint:unused
244+
t.Helper()
245+
ctx, cancel := context.WithCancel(context.Background())
246+
t.Cleanup(cancel)
247+
err := os.Chdir(testDir)
248+
require.NoError(t, err, "changing to the directory")
249+
os.RemoveAll("example.car")
250+
require.NoError(t, err, "removing old file")
251+
f, err := os.OpenFile("example.car", os.O_WRONLY|os.O_CREATE, 0600)
252+
require.NoError(t, err, "opening file")
253+
254+
eds := share.RandEDS(t, 4)
255+
err = WriteEDS(ctx, eds, f)
256+
require.NoError(t, err, "writing EDS to file")
257+
f.Close()
258+
dah := da.NewDataAvailabilityHeader(eds)
259+
260+
header, err := json.MarshalIndent(dah, "", "")
261+
require.NoError(t, err, "marshaling example root")
262+
os.RemoveAll("example-root.json")
263+
require.NoError(t, err, "removing old file")
264+
f, err = os.OpenFile("example-root.json", os.O_WRONLY|os.O_CREATE, 0600)
265+
require.NoError(t, err, "opening file")
266+
_, err = f.Write(header)
267+
require.NoError(t, err, "writing example root to file")
268+
f.Close()
269+
}

share/eds/testdata/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# CARxEDS Testdata
2+
3+
This directory contains an example CARv1 file of an EDS and its matching data availability header.
4+
5+
They might need to be regenerated when modifying constants such as the default share size. This can be done by running the test utility in `eds_test.go` called `createTestData`.

0 commit comments

Comments
 (0)