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)
+		}
+	})
+}
