mirror of
https://github.com/mikefarah/yq.git
synced 2026-07-07 22:35:37 +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 {
|
func (dec *iniDecoder) Init(reader io.Reader) error {
|
||||||
// Store the reader for use in Decode
|
// Store the reader for use in Decode
|
||||||
dec.reader = reader
|
dec.reader = reader
|
||||||
|
dec.finished = false
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ package yqlib
|
|||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/mikefarah/yq/v4/test"
|
"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))
|
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) {
|
func TestINIScenarios(t *testing.T) {
|
||||||
for _, tt := range iniScenarios {
|
for _, tt := range iniScenarios {
|
||||||
testINIScenario(t, tt)
|
testINIScenario(t, tt)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user