mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2024-12-28 21:09:17 +02:00
6edc7a63df
Testifylint is a linter that provides best practices with the use of testify. This PR enables [expected-actual](https://github.com/Antonboom/testifylint?tab=readme-ov-file#expected-actual) rule from [testifylint](https://github.com/Antonboom/testifylint) Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
87 lines
1.8 KiB
Go
87 lines
1.8 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package log
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"go.opentelemetry.io/otel/log"
|
|
)
|
|
|
|
func verifyRing(t *testing.T, r *ring, N int, sum int) {
|
|
// Length.
|
|
assert.Equal(t, N, r.Len(), "r.Len()")
|
|
|
|
// Iteration.
|
|
var n, s int
|
|
r.Do(func(v Record) {
|
|
n++
|
|
body := v.Body()
|
|
if body.Kind() != log.KindEmpty {
|
|
s += int(body.AsInt64())
|
|
}
|
|
})
|
|
assert.Equal(t, N, n, "number of forward iterations")
|
|
if sum >= 0 {
|
|
assert.Equal(t, sum, s, "forward ring sum")
|
|
}
|
|
|
|
if r == nil {
|
|
return
|
|
}
|
|
|
|
// Connections.
|
|
if r.next != nil {
|
|
var p *ring // previous element.
|
|
for q := r; p == nil || q != r; q = q.next {
|
|
if p != nil {
|
|
assert.Equalf(t, p, q.prev, "prev = %p, expected q.prev = %p", p, q.prev)
|
|
}
|
|
p = q
|
|
}
|
|
assert.Equalf(t, p, r.prev, "prev = %p, expected r.prev = %p", p, r.prev)
|
|
}
|
|
|
|
// Next, Prev.
|
|
assert.Equal(t, r.next, r.Next(), "r.Next() != r.next")
|
|
assert.Equal(t, r.prev, r.Prev(), "r.Prev() != r.prev")
|
|
}
|
|
|
|
func TestNewRing(t *testing.T) {
|
|
for i := 0; i < 10; i++ {
|
|
// Empty value.
|
|
r := newRing(i)
|
|
verifyRing(t, r, i, -1)
|
|
}
|
|
|
|
for n := 0; n < 10; n++ {
|
|
r := newRing(n)
|
|
for i := 1; i <= n; i++ {
|
|
var rec Record
|
|
rec.SetBody(log.IntValue(i))
|
|
r.Value = rec
|
|
r = r.Next()
|
|
}
|
|
|
|
sum := (n*n + n) / 2
|
|
verifyRing(t, r, n, sum)
|
|
}
|
|
}
|
|
|
|
func TestEmptyRing(t *testing.T) {
|
|
var rNext, rPrev ring
|
|
verifyRing(t, rNext.Next(), 1, 0)
|
|
verifyRing(t, rPrev.Prev(), 1, 0)
|
|
|
|
var rLen, rDo *ring
|
|
assert.Equal(t, 0, rLen.Len(), "Len()")
|
|
rDo.Do(func(Record) { assert.Fail(t, "Do func arg called") })
|
|
}
|