mirror of
https://github.com/opentffoundation/opentf.git
synced 2025-12-20 02:09:26 -05:00
83 lines
1.9 KiB
Go
83 lines
1.9 KiB
Go
// Copyright (c) The OpenTofu Authors
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
// Copyright (c) 2023 HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
package e2etest
|
|
|
|
import (
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/opentofu/opentofu/internal/e2e"
|
|
)
|
|
|
|
func TestMultipleRunBlocks(t *testing.T) {
|
|
timeout := time.After(5 * time.Second)
|
|
type testResult struct {
|
|
stdout string
|
|
stderr string
|
|
err error
|
|
}
|
|
done := make(chan *testResult)
|
|
|
|
go func() {
|
|
fixturePath := filepath.Join("testdata", "multiple-run-blocks")
|
|
tf := e2e.NewBinary(t, tofuBin, fixturePath)
|
|
stdout, stderr, err := tf.Run("test")
|
|
done <- &testResult{
|
|
stdout: stdout,
|
|
stderr: stderr,
|
|
err: err,
|
|
}
|
|
}()
|
|
|
|
select {
|
|
case <-timeout:
|
|
t.Fatal("timed out")
|
|
case result := <-done:
|
|
if result.err != nil {
|
|
t.Errorf("unexpected error: %s", result.err)
|
|
}
|
|
|
|
if result.stderr != "" {
|
|
t.Errorf("unexpected stderr output:\n%s", result.stderr)
|
|
}
|
|
|
|
if !strings.Contains(result.stdout, "30 passed") {
|
|
t.Errorf("success message is missing from output:\n%s", result.stdout)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestMocksAndOverrides(t *testing.T) {
|
|
// This test fetches providers from registry.
|
|
skipIfCannotAccessNetwork(t)
|
|
|
|
tf := e2e.NewBinary(t, tofuBin, filepath.Join("testdata", "overrides-in-tests"))
|
|
|
|
stdout, stderr, err := tf.Run("init")
|
|
if err != nil {
|
|
t.Errorf("unexpected error on 'init': %v", err)
|
|
}
|
|
if stderr != "" {
|
|
t.Errorf("unexpected stderr output on 'init':\n%s", stderr)
|
|
}
|
|
if stdout == "" {
|
|
t.Errorf("expected some output on 'init', got nothing")
|
|
}
|
|
|
|
stdout, stderr, err = tf.Run("test")
|
|
if err != nil {
|
|
t.Errorf("unexpected error on 'test': %v", err)
|
|
}
|
|
if stderr != "" {
|
|
t.Errorf("unexpected stderr output on 'test':\n%s", stderr)
|
|
}
|
|
if !strings.Contains(stdout, "15 passed, 0 failed") {
|
|
t.Errorf("output doesn't have expected success string:\n%s", stdout)
|
|
}
|
|
}
|