mirror of
https://blitiri.com.ar/repos/chasquid
synced 2026-10-29 15:02:30 +00:00
8b19760f4e
Many of our tests rely on helpers that predate features which are now available in the standard library. This patch replaces them with the standard equivalents: - MustTempDir/RemoveIfOk -> t.ArtifactDir() or t.TempDir() (depending on whether it is useful to keep the data on request). - GetFreePort + waitForServer -> opening the listeners before starting the servers. To support this, localrpc.Server gains a Serve method. We may re-introduce these in the future if more use cases appear. - WaitFor and real-time timing checks -> testing/synctest. - context.Background() -> t.Context(). - Benchmark b.N loops -> b.Loop(). - reflect.DeepEqual -> cmp.Diff, and proto.Equal for protobufs.
68 lines
1.5 KiB
Go
68 lines
1.5 KiB
Go
package dkim
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net"
|
|
"testing"
|
|
)
|
|
|
|
func TestTraceNoCtx(t *testing.T) {
|
|
// Call trace() on a context without a trace function, to check it doesn't
|
|
// panic.
|
|
ctx := t.Context()
|
|
trace(ctx, "test")
|
|
}
|
|
|
|
func TestTrace(t *testing.T) {
|
|
s := ""
|
|
traceF := func(f string, a ...any) {
|
|
s = fmt.Sprintf(f, a...)
|
|
}
|
|
ctx := WithTraceFunc(t.Context(), traceF)
|
|
trace(ctx, "test %d", 1)
|
|
if s != "test 1" {
|
|
t.Errorf("trace function not called")
|
|
}
|
|
}
|
|
|
|
func TestLookupTXTNoCtx(t *testing.T) {
|
|
// Call lookupTXT() on a context without an override, to check it calls
|
|
// the real function.
|
|
// We just check there is a reasonable error.
|
|
// We don't specifically check that it's NXDOMAIN because if we don't have
|
|
// internet access, the error may be different.
|
|
ctx := t.Context()
|
|
_, err := lookupTXT(ctx, "does.not.exist.example.com")
|
|
if _, ok := err.(*net.DNSError); !ok {
|
|
t.Fatalf("expected *net.DNSError, got %T", err)
|
|
}
|
|
}
|
|
|
|
func TestLookupTXT(t *testing.T) {
|
|
called := false
|
|
lookupTXTF := func(ctx context.Context, name string) ([]string, error) {
|
|
called = true
|
|
return nil, nil
|
|
}
|
|
ctx := WithLookupTXTFunc(t.Context(), lookupTXTF)
|
|
lookupTXT(ctx, "example.com")
|
|
if !called {
|
|
t.Errorf("lookupTXT function not called")
|
|
}
|
|
}
|
|
|
|
func TestMaxHeaders(t *testing.T) {
|
|
// First without an override, check we return the default.
|
|
ctx := t.Context()
|
|
if m := maxHeaders(ctx); m != 5 {
|
|
t.Errorf("expected 5, got %d", m)
|
|
}
|
|
|
|
// Now with an override.
|
|
ctx = WithMaxHeaders(ctx, 10)
|
|
if m := maxHeaders(ctx); m != 10 {
|
|
t.Errorf("expected 10, got %d", m)
|
|
}
|
|
}
|