+++ /dev/null
-// Copyright 2018 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 packagestest
-
-import (
- "path"
- "path/filepath"
-)
-
-// GOPATH is the exporter that produces GOPATH layouts.
-// Each "module" is put in it's own GOPATH entry to help test complex cases.
-// Given the two files
-// golang.org/repoa#a/a.go
-// golang.org/repob#b/b.go
-// You would get the directory layout
-// /sometemporarydirectory
-// ├── repoa
-// │ └── src
-// │ └── golang.org
-// │ └── repoa
-// │ └── a
-// │ └── a.go
-// └── repob
-// └── src
-// └── golang.org
-// └── repob
-// └── b
-// └── b.go
-// GOPATH would be set to
-// /sometemporarydirectory/repoa;/sometemporarydirectory/repob
-// and the working directory would be
-// /sometemporarydirectory/repoa/src
-var GOPATH = gopath{}
-
-func init() {
- All = append(All, GOPATH)
-}
-
-type gopath struct{}
-
-func (gopath) Name() string {
- return "GOPATH"
-}
-
-func (gopath) Filename(exported *Exported, module, fragment string) string {
- return filepath.Join(gopathDir(exported, module), "src", module, fragment)
-}
-
-func (gopath) Finalize(exported *Exported) error {
- exported.Config.Env = append(exported.Config.Env, "GO111MODULE=off")
- gopath := ""
- for module := range exported.written {
- if gopath != "" {
- gopath += string(filepath.ListSeparator)
- }
- dir := gopathDir(exported, module)
- gopath += dir
- if module == exported.primary {
- exported.Config.Dir = filepath.Join(dir, "src")
- }
- }
- exported.Config.Env = append(exported.Config.Env, "GOPATH="+gopath)
- return nil
-}
-
-func gopathDir(exported *Exported, module string) string {
- dir := path.Base(module)
- if versionSuffixRE.MatchString(dir) {
- dir = path.Base(path.Dir(module)) + "_" + dir
- }
- return filepath.Join(exported.temp, dir)
-}