Change log implementation to return the custom error.

This commit is contained in:
Mariano Uvalle 2021-08-09 13:51:10 -05:00
parent 4ec590a7cf
commit d480067e8a
2 changed files with 3 additions and 3 deletions

View file

@ -1,7 +1,6 @@
package log package log
import ( import (
"fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"os" "os"
@ -118,7 +117,7 @@ func (l *Log) Read(off uint64) (*api.Record, error) {
// The condition after the of shouldn't matter because we check for this in the for. // The condition after the of shouldn't matter because we check for this in the for.
// The code comes from the book. // The code comes from the book.
if s == nil || s.nextOffset <= off { if s == nil || s.nextOffset <= off {
return nil, fmt.Errorf("offset out of range: %d", off) return nil, api.ErrOffsetOutOfRange{Offset: off}
} }
return s.Read(off) return s.Read(off)
} }

View file

@ -53,7 +53,8 @@ func testAppendRead(t *testing.T, log *Log) {
func testOutOfRangeErr(t *testing.T, log *Log) { func testOutOfRangeErr(t *testing.T, log *Log) {
read, err := log.Read(1) read, err := log.Read(1)
require.Nil(t, read) require.Nil(t, read)
require.Error(t, err) apiErr := err.(api.ErrOffsetOutOfRange)
require.Equal(t, uint64(1), apiErr.Offset)
} }
func testInitExisting(t *testing.T, o *Log) { func testInitExisting(t *testing.T, o *Log) {