From 21896f74afe6d7e8fe8f92d9bb9537a5b74736ce Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 19 Jan 2021 17:33:41 -0500 Subject: [PATCH] builtin provisioner e2e test --- command/e2etest/provisioner_test.go | 44 ++++++++++++++++++++ command/e2etest/testdata/provisioner/main.tf | 5 +++ 2 files changed, 49 insertions(+) create mode 100644 command/e2etest/provisioner_test.go create mode 100644 command/e2etest/testdata/provisioner/main.tf diff --git a/command/e2etest/provisioner_test.go b/command/e2etest/provisioner_test.go new file mode 100644 index 000000000..39bfa3757 --- /dev/null +++ b/command/e2etest/provisioner_test.go @@ -0,0 +1,44 @@ +package e2etest + +import ( + "strings" + "testing" + + "github.com/hashicorp/terraform/e2e" +) + +// TestProviderDevOverrides is a test that terraform can execute a 3rd party +// provisioner plugin. +func TestProvisioner(t *testing.T) { + t.Parallel() + + // This test reaches out to releases.hashicorp.com to download the + // template and null providers, so it can only run if network access is + // allowed. + skipIfCannotAccessNetwork(t) + + tf := e2e.NewBinary(terraformBin, "testdata/provisioner") + defer tf.Close() + + //// INIT + _, stderr, err := tf.Run("init") + if err != nil { + t.Fatalf("unexpected init error: %s\nstderr:\n%s", err, stderr) + } + + //// PLAN + _, stderr, err = tf.Run("plan", "-out=tfplan") + if err != nil { + t.Fatalf("unexpected plan error: %s\nstderr:\n%s", err, stderr) + } + + //// APPLY + stdout, stderr, err := tf.Run("apply", "tfplan") + if err != nil { + t.Fatalf("unexpected apply error: %s\nstderr:\n%s", err, stderr) + } + + if !strings.Contains(stdout, "HelloProvisioner") { + t.Fatalf("missing provisioner output:\n%s", stdout) + } +} diff --git a/command/e2etest/testdata/provisioner/main.tf b/command/e2etest/testdata/provisioner/main.tf new file mode 100644 index 000000000..c37ad380b --- /dev/null +++ b/command/e2etest/testdata/provisioner/main.tf @@ -0,0 +1,5 @@ +resource "null_resource" "a" { + provisioner "local-exec" { + command = "echo HelloProvisioner" + } +}