Files
scroll/roller/store/stack_test.go
colin a78160ddad fix(roller): avoid discarding task when connection failure (#203)
Co-authored-by: colinlyguo <colinlyguo@gmail.com>
Co-authored-by: Lawliet-Chan <1576710154@qq.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-01-09 10:52:50 +08:00

70 lines
1.2 KiB
Go

package store
import (
"os"
"path/filepath"
"strconv"
"testing"
"github.com/stretchr/testify/assert"
"scroll-tech/common/message"
)
func TestStack(t *testing.T) {
// Create temp path
path, err := os.MkdirTemp("/tmp/", "stack_db_test-")
assert.NoError(t, err)
defer os.RemoveAll(path)
// Create stack db instance
s, err := NewStack(filepath.Join(path, "test-stack"))
assert.NoError(t, err)
defer s.Close()
for i := 0; i < 3; i++ {
task := &ProvingTask{
Task: &message.TaskMsg{
ID: strconv.Itoa(i),
Traces: nil,
},
Times: 0,
}
err = s.Push(task)
assert.NoError(t, err)
}
for i := 2; i >= 0; i-- {
var pop *ProvingTask
pop, err = s.Pop()
assert.NoError(t, err)
assert.Equal(t, strconv.Itoa(i), pop.Task.ID)
}
// test times
task := &ProvingTask{
Task: &message.TaskMsg{
ID: strconv.Itoa(1),
Traces: nil,
},
Times: 0,
}
err = s.Push(task)
assert.NoError(t, err)
pop, err := s.Pop()
assert.NoError(t, err)
err = s.Push(pop)
assert.NoError(t, err)
peek, err := s.Peek()
assert.NoError(t, err)
pop2, err := s.Pop()
assert.NoError(t, err)
assert.Equal(t, peek, pop2)
s.UpdateTimes(pop2, 1)
assert.NoError(t, err)
assert.Equal(t, 1, pop2.Times)
}