|
7 | 7 | "os"
|
8 | 8 | "os/exec"
|
9 | 9 | "path/filepath"
|
| 10 | + "strings" |
10 | 11 | "testing"
|
11 | 12 | )
|
12 | 13 |
|
@@ -140,6 +141,17 @@ func buildTestCommand(t *testing.T, args ...string) *exec.Cmd {
|
140 | 141 | return exec.Command(bin, args...)
|
141 | 142 | }
|
142 | 143 |
|
| 144 | +func envVarsWithoutGopath() []string { |
| 145 | + var env []string |
| 146 | + for _, def := range os.Environ() { |
| 147 | + if strings.Index(def, "GOPATH=") == 0 { |
| 148 | + continue |
| 149 | + } |
| 150 | + env = append(env, def) |
| 151 | + } |
| 152 | + return env |
| 153 | +} |
| 154 | + |
143 | 155 | func TestGodogBuildWithSourceNotInGoPath(t *testing.T) {
|
144 | 156 | dir := filepath.Join(os.TempDir(), "godogs")
|
145 | 157 | err := buildTestPackage(dir, map[string]string{
|
@@ -298,8 +310,8 @@ func TestGodogBuildWithinGopath(t *testing.T) {
|
298 | 310 | }
|
299 | 311 | }
|
300 | 312 |
|
301 |
| -func TestGodogBuildWithVendoredGodog(t *testing.T) { |
302 |
| - gopath := filepath.Join(os.TempDir(), "_gp") |
| 313 | +func TestGodogBuildWithVendoredGodogAndMod(t *testing.T) { |
| 314 | + gopath := filepath.Join(os.TempDir(), "_gpc") |
303 | 315 | dir := filepath.Join(gopath, "src", "godogs")
|
304 | 316 | err := buildTestPackage(dir, map[string]string{
|
305 | 317 | "godogs.feature": builderFeatureFile,
|
@@ -338,8 +350,53 @@ func TestGodogBuildWithVendoredGodog(t *testing.T) {
|
338 | 350 | var stdout, stderr bytes.Buffer
|
339 | 351 | cmd.Stdout = &stdout
|
340 | 352 | cmd.Stderr = &stderr
|
341 |
| - cmd.Env = os.Environ() |
342 |
| - cmd.Env = append(cmd.Env, "GOPATH="+gopath) |
| 353 | + cmd.Env = append(envVarsWithoutGopath(), "GOPATH="+gopath) |
| 354 | + |
| 355 | + if err := cmd.Run(); err != nil { |
| 356 | + t.Log(stdout.String()) |
| 357 | + t.Log(stderr.String()) |
| 358 | + t.Fatal(err) |
| 359 | + } |
| 360 | +} |
| 361 | + |
| 362 | +func TestGodogBuildWithVendoredGodogWithoutModule(t *testing.T) { |
| 363 | + gopath := filepath.Join(os.TempDir(), "_gp") |
| 364 | + dir := filepath.Join(gopath, "src", "godogs") |
| 365 | + err := buildTestPackage(dir, map[string]string{ |
| 366 | + "godogs.feature": builderFeatureFile, |
| 367 | + }) |
| 368 | + if err != nil { |
| 369 | + os.RemoveAll(gopath) |
| 370 | + t.Fatal(err) |
| 371 | + } |
| 372 | + defer os.RemoveAll(gopath) |
| 373 | + |
| 374 | + pkg := filepath.Join(dir, "vendor", "github.com", "DATA-DOG") |
| 375 | + if err := os.MkdirAll(pkg, 0755); err != nil { |
| 376 | + t.Fatal(err) |
| 377 | + } |
| 378 | + |
| 379 | + prevDir, err := os.Getwd() |
| 380 | + if err != nil { |
| 381 | + t.Fatal(err) |
| 382 | + } |
| 383 | + |
| 384 | + // symlink godog package |
| 385 | + if err := os.Symlink(prevDir, filepath.Join(pkg, "godog")); err != nil { |
| 386 | + t.Fatal(err) |
| 387 | + } |
| 388 | + |
| 389 | + if err := os.Chdir(dir); err != nil { |
| 390 | + t.Fatal(err) |
| 391 | + } |
| 392 | + defer os.Chdir(prevDir) |
| 393 | + |
| 394 | + cmd := buildTestCommand(t, "godogs.feature") |
| 395 | + |
| 396 | + var stdout, stderr bytes.Buffer |
| 397 | + cmd.Stdout = &stdout |
| 398 | + cmd.Stderr = &stderr |
| 399 | + cmd.Env = append(envVarsWithoutGopath(), "GOPATH="+gopath) |
343 | 400 |
|
344 | 401 | if err := cmd.Run(); err != nil {
|
345 | 402 | t.Log(stdout.String())
|
|
0 commit comments