Files
scroll/prover/store/stack_test.go
georgehao 1dfca3b7c0 feat(coordinator): prover task record unique (#845)
Co-authored-by: georgehao <georgehao@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-08-28 10:51:01 +08:00

72 lines
1.4 KiB
Go

package store
import (
"os"
"path/filepath"
"strconv"
"testing"
"github.com/google/uuid"
"github.com/stretchr/testify/assert"
"scroll-tech/common/types/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++ {
taskUUID, uuidErr := uuid.NewRandom()
assert.NoError(t, uuidErr)
task := &ProvingTask{
Task: &message.TaskMsg{
UUID: taskUUID.String(),
ID: strconv.Itoa(i),
},
Times: 0,
}
err = s.Push(task)
assert.NoError(t, err)
}
for i := 2; i >= 0; i-- {
var peek *ProvingTask
peek, err = s.Peek()
assert.NoError(t, err)
assert.Equal(t, strconv.Itoa(i), peek.Task.ID)
err = s.Delete(strconv.Itoa(i))
assert.NoError(t, err)
}
// test times
taskUUID, uuidErr := uuid.NewRandom()
assert.NoError(t, uuidErr)
task := &ProvingTask{
Task: &message.TaskMsg{
UUID: taskUUID.String(),
ID: strconv.Itoa(1),
},
Times: 0,
}
err = s.Push(task)
assert.NoError(t, err)
peek, err := s.Peek()
assert.NoError(t, err)
assert.Equal(t, 0, peek.Times)
err = s.UpdateTimes(peek, 3)
assert.NoError(t, err)
peek2, err := s.Peek()
assert.NoError(t, err)
assert.Equal(t, 3, peek2.Times)
}