| Linux in-mum-web1499.main-hosting.eu 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64 Path : /opt/golang/1.22.0/src/cmd/go/ |
| Current File : //opt/golang/1.22.0/src/cmd/go/chdir_test.go |
// Copyright 2022 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 main
import (
"cmd/go/internal/base"
"os"
"strings"
"testing"
)
func TestChdir(t *testing.T) {
// We want -C to apply to every go subcommand.
// Test that every command either has a -C flag registered
// or has CustomFlags set. In the latter case, the command
// must be explicitly tested in TestScript/chdir.
script, err := os.ReadFile("testdata/script/chdir.txt")
if err != nil {
t.Fatal(err)
}
var walk func(string, *base.Command)
walk = func(name string, cmd *base.Command) {
if len(cmd.Commands) > 0 {
for _, sub := range cmd.Commands {
walk(name+" "+sub.Name(), sub)
}
return
}
if !cmd.Runnable() {
return
}
if cmd.CustomFlags {
if !strings.Contains(string(script), "# "+name+"\n") {
t.Errorf("%s has custom flags, not tested in testdata/script/chdir.txt", name)
}
return
}
f := cmd.Flag.Lookup("C")
if f == nil {
t.Errorf("%s has no -C flag", name)
} else if f.Usage != "AddChdirFlag" {
t.Errorf("%s has -C flag but not from AddChdirFlag", name)
}
}
walk("go", base.Go)
}