Something went wrong. Try again.
forked from tailscale/tailscale
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374// Copyright (c) Tailscale Inc & contributors// SPDX-License-Identifier: BSD-3-Clause
package version_test
import ( "bytes" "os" "path" "runtime/debug" "testing"
ts "tailscale.com" "tailscale.com/version")
func TestAlpineTag(t *testing.T) { if tag := readAlpineTag(t, "../Dockerfile.base"); tag == "" { t.Fatal(`"FROM alpine:" not found in Dockerfile.base`) } else if tag != ts.AlpineDockerTag { t.Errorf("alpine version mismatch: Dockerfile.base has %q; ALPINE.txt has %q", tag, ts.AlpineDockerTag) } if tag := readAlpineTag(t, "../Dockerfile"); tag == "" { t.Fatal(`"FROM alpine:" not found in Dockerfile`) } else if tag != ts.AlpineDockerTag { t.Errorf("alpine version mismatch: Dockerfile has %q; ALPINE.txt has %q", tag, ts.AlpineDockerTag) }}
func readAlpineTag(t *testing.T, file string) string { f, err := os.ReadFile(file) if err != nil { t.Fatal(err) } for line := range bytes.SplitSeq(f, []byte{'\n'}) { line = bytes.TrimSpace(line) _, suf, ok := bytes.Cut(line, []byte("FROM alpine:")) if !ok { continue } // Drop anything after the tag, such as an "AS stage-name" suffix. tag, _, _ := bytes.Cut(suf, []byte(" ")) return string(tag) } return ""}
func TestShortAllocs(t *testing.T) { allocs := int(testing.AllocsPerRun(10000, func() { _ = version.Short() })) if allocs > 0 { t.Errorf("allocs = %v; want 0", allocs) }}
func BenchmarkCmdName(b *testing.B) { b.ReportAllocs() for b.Loop() { _ = version.CmdName() }}
func BenchmarkReadBuildInfo(b *testing.B) { b.ReportAllocs() for b.Loop() { info, ok := debug.ReadBuildInfo() if !ok { b.Fatal("ReadBuildInfo failed") } _ = path.Base(info.Path) }}