Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201105173854-bc9fc8d8c4bc / cmd / getgo / path_test.go
1 // Copyright 2017 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 // +build !plan9
6
7 package main
8
9 import (
10         "io/ioutil"
11         "os"
12         "path/filepath"
13         "strings"
14         "testing"
15 )
16
17 func TestAppendPath(t *testing.T) {
18         tmpd, err := ioutil.TempDir("", "go")
19         if err != nil {
20                 t.Fatal(err)
21         }
22         defer os.RemoveAll(tmpd)
23
24         if err := os.Setenv("HOME", tmpd); err != nil {
25                 t.Fatal(err)
26         }
27
28         GOPATH := os.Getenv("GOPATH")
29         if err := appendToPATH(filepath.Join(GOPATH, "bin")); err != nil {
30                 t.Fatal(err)
31         }
32
33         shellConfig, err := shellConfigFile()
34         if err != nil {
35                 t.Fatal(err)
36         }
37         b, err := ioutil.ReadFile(shellConfig)
38         if err != nil {
39                 t.Fatal(err)
40         }
41
42         expected := "export PATH=" + pathVar + envSeparator + filepath.Join(GOPATH, "bin")
43         if strings.TrimSpace(string(b)) != expected {
44                 t.Fatalf("expected: %q, got %q", expected, strings.TrimSpace(string(b)))
45         }
46
47         // Check that appendToPATH is idempotent.
48         if err := appendToPATH(filepath.Join(GOPATH, "bin")); err != nil {
49                 t.Fatal(err)
50         }
51         b, err = ioutil.ReadFile(shellConfig)
52         if err != nil {
53                 t.Fatal(err)
54         }
55         if strings.TrimSpace(string(b)) != expected {
56                 t.Fatalf("expected: %q, got %q", expected, strings.TrimSpace(string(b)))
57         }
58 }