diff --git a/CHANGELOG.md b/CHANGELOG.md index 2477410..e083010 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ ## [1.3.2] - 2024-11-02 +### Added + +* Add empty test data check. + +## [1.3.2] - 2024-11-02 + ### Changed * Use "JSON Lines" instead of "NDJSON". diff --git a/data.go b/data.go index c10ec88..1c48e87 100644 --- a/data.go +++ b/data.go @@ -41,6 +41,16 @@ func NewData(options *Options, agentNum uint64) (*Data, error) { return nil, fmt.Errorf("failed to open test data - %s (%w)", dataFile, err) } + fileInfo, err := file.Stat() + + if err != nil { + return nil, fmt.Errorf("failed to get test data file info - %s (%w)", dataFile, err) + } + + if fileInfo.Size() == 0 { + return nil, fmt.Errorf("test data is empty - %s", dataFile) + } + if options.Random { err = util.RandSeek(file) diff --git a/data_test.go b/data_test.go index 2bb5991..d553625 100644 --- a/data_test.go +++ b/data_test.go @@ -262,3 +262,21 @@ func Test_Data_WithCommentOut(t *testing.T) { _, err = data.Next() assert.ErrorIs(err, qube.EOD) } + +func Test_Data_Empty(t *testing.T) { + assert := assert.New(t) + + f, _ := os.CreateTemp("", "") + defer os.Remove(f.Name()) + f.Sync() + + options := &qube.Options{ + DataOptions: qube.DataOptions{ + DataFiles: []string{f.Name()}, + Key: "q", + }, + } + + _, err := qube.NewData(options, 0) + assert.ErrorContains(err, "test data is empty") +}