Covered rjreader to 100%

This commit is contained in:
porosnicuadrian
2020-11-19 12:29:29 +02:00
committed by Dan Christian Bogos
parent 6d20bd182d
commit e04ba8e618
2 changed files with 48 additions and 45 deletions

View File

@@ -317,10 +317,7 @@ func (rjr *rjReader) getJSONOffsetLine(offset int64) (line, character int64) {
return nil
}
readLineComment := func() error {
for i < offset {
if rjr.isEndOfFile() {
return io.EOF
}
for !rjr.isEndOfFile() {
b := rjr.buf[rjr.indx]
rjr.indx++
if isNewLine(b) {
@@ -330,14 +327,11 @@ func (rjr *rjReader) getJSONOffsetLine(offset int64) (line, character int64) {
}
character++
}
return nil
return io.EOF
}
readComment := func() error {
for i < offset {
if rjr.isEndOfFile() {
return io.EOF
}
for !rjr.isEndOfFile() {
b := rjr.buf[rjr.indx]
rjr.indx++
if isNewLine(b) {
@@ -361,9 +355,8 @@ func (rjr *rjReader) getJSONOffsetLine(offset int64) (line, character int64) {
rjr.UnreadByte()
}
}
return nil
return io.EOF
}
for i < offset { // handle the parsing
if rjr.isEndOfFile() {
return

View File

@@ -483,65 +483,65 @@ func TestGetErrorLine2(t *testing.T) {
func TestGetJSONOffsetLineFuncError(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte("{}"))
rjr.indx = 7
var eLine, eCharachter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(3)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(3)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
func TestGetJSONOffsetLineReadStringEOF(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte(`{","}`))
rjr.indx = 3
var eLine, eCharachter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
func TestGetJSONOffsetLineReadString1(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte(`{,}, {val1, val2}`))
rjr.indx = 0
var eLine, eCharachter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
func TestGetJSONOffsetLineReadStringNilError1(t *testing.T) {
func TestGetJSONOffsetLineReadStringNilError(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte(`"
", {,}, {val1, val2}`))
rjr.indx = 0
var eLine, eCharachter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(3)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(3)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
func TestGetJSONOffsetLineReadLineCommentEOF(t *testing.T) {
func TestGetJSONOffsetLineReadLineCommentEOFInvalid(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte(`random/`))
rjr.indx = 6
var eLine, eCharachter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
func TestGetJSONOffsetLineReadLineCommentEOF1(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte(`random//`))
rjr.indx = 6
var eLine, eCharachter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
func TestGetJSONOffsetLineReadCommentEOF(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte(`random/*`))
rjr.indx = 5
var eLine, eCharachter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 1, 0
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
@@ -550,27 +550,37 @@ func TestGetJSONOffsetLineReadCommentInvalidEnding(t *testing.T) {
**`))
rjr.indx = 5
var eLine, eCharachter int64 = 3, 2
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 3, 2
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
func TestGetJSONOffsetLineReadComment1(t *testing.T) {
func TestGetJSONOffsetLineReadComment(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte(`/*
**`))
rjr.indx = 0
var eLine, eCharachter int64 = 3, 2
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 3, 2
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
func TestGetJSONOffsetLineInvalidComment2(t *testing.T) {
func TestGetJSONOffsetLineInvalidComment(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte(`/noComm`))
rjr.indx = 0
var eLine, eCharachter int64 = 1, 5
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharachter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharachter, line, character)
var eLine, eCharacter int64 = 1, 5
if line, character := rjr.getJSONOffsetLine(int64(5)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}
func TestGetJSONOffsetLineReadCommentOffset(t *testing.T) {
rjr := NewRjReaderFromBytes([]byte(`//noCOmment`))
rjr.indx = 0
var eLine, eCharacter int64 = 1, 5
if line, character := rjr.getJSONOffsetLine(int64(3)); line != eLine && character != eCharacter {
fmt.Printf("Expected %+v and %+v, received %+v and %+v", eLine, eCharacter, line, character)
}
}