Skip to content

Commit ccba1d9

Browse files
author
Andrea Spacca
authored
Clean code (#66)
* calculate total emitted events * clean code * apply in tests
1 parent ef902c6 commit ccba1d9

File tree

8 files changed

+521
-283
lines changed

8 files changed

+521
-283
lines changed

internal/corpus/generator.go

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"errors"
1111
"fmt"
1212
"github.com/dustin/go-humanize"
13+
"io"
1314
"os"
1415
"path"
1516
"strings"
@@ -111,12 +112,12 @@ func (gc GeneratorCorpus) eventsPayloadFromFields(template []byte, fields Fields
111112
var evgen genlib.Generator
112113
var err error
113114
if len(template) == 0 {
114-
evgen, err = genlib.NewGenerator(gc.config, fields)
115+
evgen, err = genlib.NewGenerator(gc.config, fields, totSize)
115116
} else {
116117
if gc.templateType == templateTypeCustom {
117-
evgen, err = genlib.NewGeneratorWithCustomTemplate(template, gc.config, fields)
118+
evgen, err = genlib.NewGeneratorWithCustomTemplate(template, gc.config, fields, totSize)
118119
} else if gc.templateType == templateTypeGoText {
119-
evgen, err = genlib.NewGeneratorWithTextTemplate(template, gc.config, fields)
120+
evgen, err = genlib.NewGeneratorWithTextTemplate(template, gc.config, fields, totSize)
120121
} else {
121122
return ErrNotValidTemplate
122123
}
@@ -136,24 +137,29 @@ func (gc GeneratorCorpus) eventsPayloadFromFields(template []byte, fields Fields
136137
buf = bytes.NewBufferString("")
137138
}
138139

139-
var currentSize uint64
140-
for currentSize < totSize {
140+
defer func() {
141+
_ = evgen.Close()
142+
}()
143+
144+
for {
141145
buf.Truncate(len(createPayload))
146+
err := evgen.Emit(state, buf)
147+
if err == nil {
148+
buf.WriteByte('\n')
142149

143-
if err := evgen.Emit(state, buf); err != nil {
144-
return err
150+
if _, err = f.Write(buf.Bytes()); err != nil {
151+
return err
152+
}
145153
}
146154

147-
buf.WriteByte('\n')
155+
if err == io.EOF {
156+
return nil
157+
}
148158

149-
if _, err = f.Write(buf.Bytes()); err != nil {
159+
if err != nil {
150160
return err
151161
}
152-
153-
currentSize += uint64(buf.Len())
154162
}
155-
156-
return evgen.Close()
157163
}
158164

159165
// Generate generates a bulk request corpus and persist it to file.

pkg/genlib/generator.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@ func generateTemplateFromField(cfg Config, fields Fields, templateEngine int) ([
162162
return templateBuffer.Bytes(), objectKeysField
163163
}
164164

165-
func NewGenerator(cfg Config, flds Fields) (Generator, error) {
165+
func NewGenerator(cfg Config, flds Fields, totSize uint64) (Generator, error) {
166166
template, objectKeysField := generateCustomTemplateFromField(cfg, flds)
167167
flds = append(flds, objectKeysField...)
168168

169-
return NewGeneratorWithCustomTemplate(template, cfg, flds)
169+
return NewGeneratorWithCustomTemplate(template, cfg, flds, totSize)
170170
}

0 commit comments

Comments
 (0)