Merge pull request #15 from rickeylev:fix-bazel-5-exec-info

PiperOrigin-RevId: 513882714
diff --git a/tests/truth_tests.bzl b/tests/truth_tests.bzl
index aa31d0a..4534192 100644
--- a/tests/truth_tests.bzl
+++ b/tests/truth_tests.bzl
@@ -18,6 +18,10 @@
 load("//lib:truth.bzl", "matching", "subjects", "truth")
 load("//lib:analysis_test.bzl", "analysis_test", "test_suite")
 
+# Bazel 5 has a bug where every access of testing.ExecutionInfo is a new
+# object that isn't equal to itself. This is fixed in Bazel 6.
+_IS_BAZEL_6_OR_HIGHER = (testing.ExecutionInfo == testing.ExecutionInfo)
+
 _suite = []
 
 def _fake_env(env):
@@ -760,7 +764,8 @@
     subject = truth.expect(fake_env).that_target(target).provider(testing.ExecutionInfo)
     subject.requirements().contains_exactly({"EIKEY1": "EIVALUE1"})
     _assert_no_failures(fake_env, env = env)
-    subject.exec_group().equals("THE_EXEC_GROUP")
+    if _IS_BAZEL_6_OR_HIGHER:
+        subject.exec_group().equals("THE_EXEC_GROUP")
     _assert_no_failures(fake_env, env = env)
     _end(env, fake_env)
 
@@ -1305,6 +1310,11 @@
         ],
         mnemonic = "Action1",
     )
+    if _IS_BAZEL_6_OR_HIGHER:
+        exec_info_bazel_6_kwargs = {"exec_group": "THE_EXEC_GROUP"}
+    else:
+        exec_info_bazel_6_kwargs = {}
+
     return [
         DefaultInfo(
             default_runfiles = ctx.runfiles(
@@ -1318,7 +1328,7 @@
             environment = {"EKEY1": "EVALUE1", "EKEY2": "EVALUE2"},
             inherited_environment = ["INHERIT1", "INHERIT2"],
         ),
-        testing.ExecutionInfo({"EIKEY1": "EIVALUE1"}, exec_group = "THE_EXEC_GROUP"),
+        testing.ExecutionInfo({"EIKEY1": "EIVALUE1"}, **exec_info_bazel_6_kwargs),
         OutputGroupInfo(
             some_group = depset([_empty_file(ctx, "output_group_file.txt")]),
         ),