Skip to content

Commit 8354f68

Browse files
committed
add counter reset test for long
1 parent 5526cab commit 8354f68

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

pkg/genlib/generator_with_text_template_test.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,64 @@ func Test_FieldIPWithTextTemplate(t *testing.T) {
755755
}
756756
}
757757

758+
func Test_FieldLongCounterResetAfterN5WithTextTemplate(t *testing.T) {
759+
fld := Field{
760+
Name: "counter_reset_test",
761+
Type: FieldTypeLong,
762+
}
763+
764+
afterN := 5
765+
766+
template := []byte(`{{$counter_reset_test := generate "counter_reset_test"}}{"counter_reset_test":"{{$counter_reset_test}}"}`)
767+
configYaml := []byte(fmt.Sprintf(`fields:
768+
- name: counter_reset_test
769+
counter: true
770+
counter_reset:
771+
strategy: after_n
772+
reset_after_n: %d`, afterN))
773+
t.Logf("with template: %s", string(template))
774+
775+
cfg, err := config.LoadConfigFromYaml(configYaml)
776+
if err != nil {
777+
t.Fatal(err)
778+
}
779+
780+
g := makeGeneratorWithTextTemplate(t, cfg, []Field{fld}, template, 10)
781+
782+
var buf bytes.Buffer
783+
784+
nSpins := int64(10)
785+
786+
var shouldReset bool
787+
788+
for i := int64(0); i < nSpins; i++ {
789+
if err := g.Emit(&buf); err != nil {
790+
t.Fatal(err)
791+
}
792+
793+
m := unmarshalJSONT[string](t, buf.Bytes())
794+
buf.Reset()
795+
796+
if len(m) != 1 {
797+
t.Errorf("Expected map size 1, got %d", len(m))
798+
}
799+
800+
v, ok := m[fld.Name]
801+
if !ok {
802+
t.Errorf("Missing key %v", fld.Name)
803+
}
804+
805+
if i >= int64(afterN) && !shouldReset {
806+
if v != "0" {
807+
t.Errorf("Expected counter to reset to 1, got %v", v)
808+
}
809+
shouldReset = true
810+
}
811+
812+
t.Logf("counter value: %v", v)
813+
}
814+
}
815+
758816
func Test_FieldFloatsWithTextTemplate(t *testing.T) {
759817
_testNumericWithTextTemplate[float64](t, FieldTypeDouble)
760818
_testNumericWithTextTemplate[float32](t, FieldTypeFloat)

0 commit comments

Comments
 (0)