ringbuffer: migrate test away from Ginkgo (#4671)

This commit is contained in:
Marten Seemann
2024-09-12 15:26:02 +08:00
committed by GitHub
parent 4aee0c0acd
commit 06cfeb1034
2 changed files with 42 additions and 56 deletions

View File

@@ -1,13 +0,0 @@
package ringbuffer
import (
"testing"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
func TestTestdata(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "ringbuffer suite")
}

View File

@@ -1,50 +1,49 @@
package ringbuffer
import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
"testing"
"github.com/stretchr/testify/require"
)
var _ = Describe("RingBuffer", func() {
It("push, peek and pop", func() {
r := RingBuffer[int]{}
Expect(len(r.ring)).To(Equal(0))
Expect(func() { r.PopFront() }).To(Panic())
r.PushBack(1)
r.PushBack(2)
r.PushBack(3)
Expect(r.PeekFront()).To(Equal(1))
Expect(r.PeekFront()).To(Equal(1))
Expect(r.PopFront()).To(Equal(1))
Expect(r.PeekFront()).To(Equal(2))
Expect(r.PopFront()).To(Equal(2))
r.PushBack(4)
r.PushBack(5)
Expect(r.Len()).To(Equal(3))
r.PushBack(6)
Expect(r.Len()).To(Equal(4))
Expect(r.PopFront()).To(Equal(3))
Expect(r.PopFront()).To(Equal(4))
Expect(r.PopFront()).To(Equal(5))
Expect(r.PopFront()).To(Equal(6))
})
func TestPushPeekPop(t *testing.T) {
r := RingBuffer[int]{}
require.Equal(t, 0, len(r.ring))
require.Panics(t, func() { r.PopFront() })
r.PushBack(1)
r.PushBack(2)
r.PushBack(3)
require.Equal(t, 1, r.PeekFront())
require.Equal(t, 1, r.PeekFront())
require.Equal(t, 1, r.PopFront())
require.Equal(t, 2, r.PeekFront())
require.Equal(t, 2, r.PopFront())
r.PushBack(4)
r.PushBack(5)
require.Equal(t, 3, r.Len())
r.PushBack(6)
require.Equal(t, 4, r.Len())
require.Equal(t, 3, r.PopFront())
require.Equal(t, 4, r.PopFront())
require.Equal(t, 5, r.PopFront())
require.Equal(t, 6, r.PopFront())
}
It("panics when Peek or Pop are called on an empty buffer", func() {
r := RingBuffer[string]{}
Expect(r.Empty()).To(BeTrue())
Expect(r.Len()).To(BeZero())
Expect(func() { r.PeekFront() }).To(Panic())
Expect(func() { r.PopFront() }).To(Panic())
})
func TestPanicOnEmptyBuffer(t *testing.T) {
r := RingBuffer[string]{}
require.True(t, r.Empty())
require.Zero(t, r.Len())
require.Panics(t, func() { r.PeekFront() })
require.Panics(t, func() { r.PopFront() })
}
It("clearing", func() {
r := RingBuffer[int]{}
r.Init(2)
r.PushBack(1)
r.PushBack(2)
Expect(r.full).To(BeTrue())
r.Clear()
Expect(r.full).To(BeFalse())
Expect(r.Len()).To(Equal(0))
})
})
func TestClear(t *testing.T) {
r := RingBuffer[int]{}
r.Init(2)
r.PushBack(1)
r.PushBack(2)
require.True(t, r.full)
r.Clear()
require.False(t, r.full)
require.Equal(t, 0, r.Len())
}