Skip to content

Commit

Permalink
improve test coverage corner cases
Browse files Browse the repository at this point in the history
  • Loading branch information
didil committed Feb 14, 2019
1 parent 6f094a3 commit 51b5c07
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 1 deletion.
6 changes: 6 additions & 0 deletions pkg/blero/backend_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ func TestBlero_StartNoDBPath(t *testing.T) {
assert.EqualError(t, err, "DBPath is required")
}

func TestBlero_StartDBPathDoesntExist(t *testing.T) {
bl := New("/tmp/12354/56547/45459/blero/dbx/")
err := bl.Start()
assert.EqualError(t, err, "Error Creating Dir: \"/tmp/12354/56547/45459/blero/dbx/\": mkdir /tmp/12354/56547/45459/blero/dbx/: no such file or directory")
}

func BenchmarkEnqueue(b *testing.B) {
bl := New(testDBPath)
err := bl.Start()
Expand Down
20 changes: 19 additions & 1 deletion pkg/blero/queue.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@ func (q *queue) start() error {
badgerOpts.Logger = &badgerLogger{}
badgerOpts.SyncWrites = true

// test logger
badgerOpts.Logger.Infof("[badgerLogger]TEST Infof")
badgerOpts.Logger.Warningf("[badgerLogger]TEST Warningf")
badgerOpts.Logger.Errorf("[badgerLogger]TEST Errorf")

db, err := badger.Open(badgerOpts)
if err != nil {
return err
Expand Down Expand Up @@ -90,9 +95,22 @@ func (q *queue) stop() error {
return nil
}

func getNextSeq(seq *badger.Sequence) (num uint64, err error) {
defer func() {
r := recover()
if r != nil {
// recover from panic and send err instead
err = r.(error)
}
}()

num, err = seq.Next()
return num, err
}

// enqueueJob enqueues a new Job to the Pending queue
func (q *queue) enqueueJob(name string, data []byte) (uint64, error) {
num, err := q.seq.Next()
num, err := getNextSeq(q.seq)
if err != nil {
return 0, err
}
Expand Down
37 changes: 37 additions & 0 deletions pkg/blero/queue_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,19 @@ func deleteDBFolder(dbPath string) {
}
}

func TestBlero_StopQueueAlreadyStopped(t *testing.T) {
bl := New(testDBPath)
err := bl.Start()
assert.NoError(t, err)

// delete folder
defer deleteDBFolder(testDBPath)
bl.Stop()

err = bl.queue.stop()
assert.EqualError(t, err, "Writes are blocked, possibly due to DropAll or Close")
}

func TestBlero_EnqueueJob(t *testing.T) {
bl := New(testDBPath)
err := bl.Start()
Expand Down Expand Up @@ -87,6 +100,19 @@ func TestBlero_EnqueueJob_Concurrent(t *testing.T) {
assert.ElementsMatch(t, []uint64{1, 2}, []uint64{id1, id2})
}

func TestBlero_EnqueueJobQueueStopped(t *testing.T) {
bl := New(testDBPath)
err := bl.Start()
assert.NoError(t, err)

// delete folder
defer deleteDBFolder(testDBPath)
bl.Stop()

_, err = bl.EnqueueJob("TestJob", nil)
assert.EqualError(t, err, "runtime error: invalid memory address or nil pointer dereference")
}

func TestBlero_DequeueJob(t *testing.T) {
bl := New(testDBPath)
err := bl.Start()
Expand Down Expand Up @@ -246,3 +272,14 @@ func TestBlero_MarkJobDone(t *testing.T) {
err = q.markJobDone(j2ID, jobPending)
assert.EqualError(t, err, "Can only move to Complete or Failed Status")
}

func TestBlero_moveItemErr(t *testing.T) {
txn := &badger.Txn{}
err := moveItem(txn, nil, nil, nil)
assert.EqualError(t, err, "No sets or deletes are allowed in a read-only transaction")
}

func TestBlero_decodeJobErr(t *testing.T) {
_, err := decodeJob(nil)
assert.EqualError(t, err, "EOF")
}

0 comments on commit 51b5c07

Please sign in to comment.