Files
upstream-golang-migrate/source/migration_test.go
upstream-mirror 9f3bffc2d3
Some checks failed
CI / test (1.26.x) (push) Failing after 5s
CI / Check coverage (push) Has been skipped
CI / lint (push) Failing after 41s
CI / test (1.25.x) (push) Failing after 54s
CI / Release a new version (push) Has been skipped
snapshot of https://github.com/golang-migrate/migrate.git (master, 2026-09-15; blobs > 131072B omitted)
2026-09-15 21:52:57 +05:00

124 lines
2.9 KiB
Go

package source
import (
"testing"
)
func TestNewMigrations(t *testing.T) {
// TODO
}
func TestAppend(t *testing.T) {
// TODO
}
func TestInterleavedAppendReads(t *testing.T) {
m := NewMigrations()
if !m.Append(&Migration{Version: 10, Direction: Up}) {
t.Fatal("expected append version 10 up to succeed")
}
if !m.Append(&Migration{Version: 10, Direction: Down}) {
t.Fatal("expected append version 10 down to succeed")
}
if !m.Append(&Migration{Version: 30, Direction: Up}) {
t.Fatal("expected append version 30 up to succeed")
}
if v, ok := m.First(); !ok || v != 10 {
t.Fatalf("expected first version 10, got %v, %v", v, ok)
}
if v, ok := m.Next(10); !ok || v != 30 {
t.Fatalf("expected next version after 10 to be 30, got %v, %v", v, ok)
}
if v, ok := m.Prev(30); !ok || v != 10 {
t.Fatalf("expected previous version before 30 to be 10, got %v, %v", v, ok)
}
if !m.Append(&Migration{Version: 20, Direction: Up}) {
t.Fatal("expected append version 20 up to succeed")
}
if !m.Append(&Migration{Version: 20, Direction: Down}) {
t.Fatal("expected append version 20 down to succeed")
}
if !m.Append(&Migration{Version: 5, Direction: Up}) {
t.Fatal("expected append version 5 up to succeed")
}
if v, ok := m.First(); !ok || v != 5 {
t.Fatalf("expected first version 5, got %v, %v", v, ok)
}
if v, ok := m.Next(10); !ok || v != 20 {
t.Fatalf("expected next version after 10 to be 20, got %v, %v", v, ok)
}
if v, ok := m.Next(20); !ok || v != 30 {
t.Fatalf("expected next version after 20 to be 30, got %v, %v", v, ok)
}
if v, ok := m.Prev(20); !ok || v != 10 {
t.Fatalf("expected previous version before 20 to be 10, got %v, %v", v, ok)
}
}
func TestBuildIndex(t *testing.T) {
// TODO
}
func TestFirst(t *testing.T) {
// TODO
}
func TestPrev(t *testing.T) {
// TODO
}
func TestUp(t *testing.T) {
// TODO
}
func TestDown(t *testing.T) {
// TODO
}
func TestFindPos(t *testing.T) {
m := Migrations{index: uintSlice{1, 2, 3}}
if p := m.findPos(0); p != -1 {
t.Errorf("expected -1, got %v", p)
}
if p := m.findPos(1); p != 0 {
t.Errorf("expected 0, got %v", p)
}
if p := m.findPos(3); p != 2 {
t.Errorf("expected 2, got %v", p)
}
}
func BenchmarkAppend100(b *testing.B) {
benchmarkAppend(b, 100)
}
func BenchmarkAppend1000(b *testing.B) {
benchmarkAppend(b, 1000)
}
func BenchmarkAppend5000(b *testing.B) {
benchmarkAppend(b, 5000)
}
func benchmarkAppend(b *testing.B, n int) {
for i := 0; i < b.N; i++ {
m := NewMigrations()
for version := 1; version <= n; version++ {
v := uint(version)
if !m.Append(&Migration{Version: v, Direction: Up}) {
b.Fatalf("expected append version %d up to succeed", version)
}
if !m.Append(&Migration{Version: v, Direction: Down}) {
b.Fatalf("expected append version %d down to succeed", version)
}
}
if _, ok := m.First(); !ok {
b.Fatal("expected first version")
}
}
}