| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // Copyright (c) Tailscale Inc & AUTHORS
- // SPDX-License-Identifier: BSD-3-Clause
- package version_test
- import (
- "flag"
- "os/exec"
- "path/filepath"
- "runtime"
- "strings"
- "testing"
- "tailscale.com/version"
- )
- var (
- findModuleInfo = version.ExportFindModuleInfo
- cmdName = version.ExportCmdName
- )
- func TestFindModuleInfo(t *testing.T) {
- dir := t.TempDir()
- name := filepath.Join(dir, "tailscaled-version-test")
- out, err := exec.Command("go", "build", "-o", name, "tailscale.com/cmd/tailscaled").CombinedOutput()
- if err != nil {
- t.Fatalf("failed to build tailscaled: %v\n%s", err, out)
- }
- modinfo, err := findModuleInfo(name)
- if err != nil {
- t.Fatal(err)
- }
- prefix := "path\ttailscale.com/cmd/tailscaled\nmod\ttailscale.com"
- if !strings.HasPrefix(modinfo, prefix) {
- t.Errorf("unexpected modinfo contents %q", modinfo)
- }
- }
- func exe() string {
- if runtime.GOOS == "windows" {
- return ".exe"
- }
- return ""
- }
- var findModuleInfoName = flag.String("module-info-file", "", "if non-empty, test findModuleInfo against this filename")
- func TestFindModuleInfoManual(t *testing.T) {
- exe := *findModuleInfoName
- if exe == "" {
- t.Skip("skipping without --module-info-file filename")
- }
- cmd := cmdName(exe)
- mod, err := findModuleInfo(exe)
- if err != nil {
- t.Fatal(err)
- }
- t.Logf("Got %q from: %s", cmd, mod)
- }
|