add basic e2e tests for state push/pull
diff --git a/tfexec/internal/e2etest/state_pull_test.go b/tfexec/internal/e2etest/state_pull_test.go
new file mode 100644
index 0000000..032173f
--- /dev/null
+++ b/tfexec/internal/e2etest/state_pull_test.go
@@ -0,0 +1,28 @@
+package e2etest
+
+import (
+	"context"
+	"testing"
+
+	"github.com/hashicorp/go-version"
+
+	"github.com/hashicorp/terraform-exec/tfexec"
+)
+
+func TestStatePull(t *testing.T) {
+	runTest(t, "basic_with_state", func(t *testing.T, tfv *version.Version, tf *tfexec.Terraform) {
+		if tfv.LessThan(providerAddressMinVersion) {
+			t.Skip("state file provider FQNs not compatible with this Terraform version")
+		}
+
+		err := tf.Init(context.Background())
+		if err != nil {
+			t.Fatalf("error running Init in test directory: %s", err)
+		}
+
+		_, err = tf.StatePull(context.Background())
+		if err != nil {
+			t.Fatalf("error running StatePull: %s", err)
+		}
+	})
+}
diff --git a/tfexec/internal/e2etest/state_push_test.go b/tfexec/internal/e2etest/state_push_test.go
new file mode 100644
index 0000000..749b409
--- /dev/null
+++ b/tfexec/internal/e2etest/state_push_test.go
@@ -0,0 +1,28 @@
+package e2etest
+
+import (
+	"context"
+	"testing"
+
+	"github.com/hashicorp/go-version"
+
+	"github.com/hashicorp/terraform-exec/tfexec"
+)
+
+func TestStatePush(t *testing.T) {
+	runTest(t, "basic_with_state", func(t *testing.T, tfv *version.Version, tf *tfexec.Terraform) {
+		if tfv.LessThan(providerAddressMinVersion) {
+			t.Skip("state file provider FQNs not compatible with this Terraform version")
+		}
+
+		err := tf.Init(context.Background())
+		if err != nil {
+			t.Fatalf("error running Init in test directory: %s", err)
+		}
+
+		err = tf.StatePush(context.Background(), "terraform.tfstate")
+		if err != nil {
+			t.Fatalf("error running StatePush: %s", err)
+		}
+	})
+}