mirror of
https://github.com/mikefarah/yq.git
synced 2026-07-04 19:35:38 +00:00
fix: reset INI decoder state on init (#2719)
This commit is contained in:
parent
6f9201a0ca
commit
7620a727b5
@ -25,6 +25,7 @@ func NewINIDecoder(prefs INIPreferences) Decoder {
|
||||
func (dec *iniDecoder) Init(reader io.Reader) error {
|
||||
// Store the reader for use in Decode
|
||||
dec.reader = reader
|
||||
dec.finished = false
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ package yqlib
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/mikefarah/yq/v4/test"
|
||||
@ -201,6 +202,21 @@ func documentDecodeErrorINIScenario(w *bufio.Writer, s formatScenario) {
|
||||
writeOrPanic(w, fmt.Sprintf("```\n%v\n```\n\n", s.expectedError))
|
||||
}
|
||||
|
||||
func TestINIDecoderInitResetsFinished(t *testing.T) {
|
||||
decoder := NewINIDecoder()
|
||||
firstDocuments, err := readDocuments(strings.NewReader("[first]\nkey = value\n"), "first.ini", 0, decoder)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
test.AssertResult(t, 1, firstDocuments.Len())
|
||||
|
||||
secondDocuments, err := readDocuments(strings.NewReader("[second]\nkey = value\n"), "second.ini", 1, decoder)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
test.AssertResult(t, 1, secondDocuments.Len())
|
||||
}
|
||||
|
||||
func TestINIScenarios(t *testing.T) {
|
||||
for _, tt := range iniScenarios {
|
||||
testINIScenario(t, tt)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user