diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunctionTest.java
index f09d1b0..634667d 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunctionTest.java
@@ -212,14 +212,21 @@
 
     new EqualsTester()
         .addEqualityGroup(
+            // Two platforms registered.
             RegisteredExecutionPlatformsValue.create(
                 ImmutableList.of(executionPlatformKey1, executionPlatformKey2)),
             RegisteredExecutionPlatformsValue.create(
                 ImmutableList.of(executionPlatformKey1, executionPlatformKey2)))
         .addEqualityGroup(
-            RegisteredExecutionPlatformsValue.create(ImmutableList.of(executionPlatformKey1)),
-            RegisteredExecutionPlatformsValue.create(ImmutableList.of(executionPlatformKey2)),
+            // A single platform registered.
+            RegisteredExecutionPlatformsValue.create(ImmutableList.of(executionPlatformKey1)))
+        .addEqualityGroup(
+            // A single, different, platform registered.
+            RegisteredExecutionPlatformsValue.create(ImmutableList.of(executionPlatformKey2)))
+        .addEqualityGroup(
+            // The same as the first group, but the order is different.
             RegisteredExecutionPlatformsValue.create(
-                ImmutableList.of(executionPlatformKey2, executionPlatformKey1)));
+                ImmutableList.of(executionPlatformKey2, executionPlatformKey1)))
+        .testEquals();
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunctionTest.java
index 4ade87d..d8593d13 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunctionTest.java
@@ -256,9 +256,10 @@
         .addEqualityGroup(
             RegisteredToolchainsValue.create(ImmutableList.of(toolchain1, toolchain2)),
             RegisteredToolchainsValue.create(ImmutableList.of(toolchain1, toolchain2)))
+        .addEqualityGroup(RegisteredToolchainsValue.create(ImmutableList.of(toolchain1)))
+        .addEqualityGroup(RegisteredToolchainsValue.create(ImmutableList.of(toolchain2)))
         .addEqualityGroup(
-            RegisteredToolchainsValue.create(ImmutableList.of(toolchain1)),
-            RegisteredToolchainsValue.create(ImmutableList.of(toolchain2)),
-            RegisteredToolchainsValue.create(ImmutableList.of(toolchain2, toolchain1)));
+            RegisteredToolchainsValue.create(ImmutableList.of(toolchain2, toolchain1)))
+        .testEquals();
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java
index 78a9530..f0d3eb5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java
@@ -203,6 +203,7 @@
             RepositoryMappingValue.withMapping(
                 ImmutableMap.of(RepositoryName.create("@fizz"), RepositoryName.create("@buzz"))),
             RepositoryMappingValue.withMapping(
-                ImmutableMap.of(RepositoryName.create("@fizz"), RepositoryName.create("@buzz"))));
+                ImmutableMap.of(RepositoryName.create("@fizz"), RepositoryName.create("@buzz"))))
+        .testEquals();
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java
index 5e7f349..fb33c02 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunctionTest.java
@@ -175,6 +175,7 @@
                 ImmutableMap.<ConfiguredTargetKey, Label>builder()
                     .put(LINUX_CTKEY, makeLabel("//test:toolchain_impl_1"))
                     .put(MAC_CTKEY, makeLabel("//test:toolchain_impl_1"))
-                    .build()));
+                    .build()))
+        .testEquals();
   }
 }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java
index ec17377..b290e8d 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java
@@ -77,13 +77,10 @@
   }
 
   @Test
-  public void testEqualsAndHashCode(){
+  public void testEqualsAndHashCode() {
     new EqualsTester()
-        .addEqualityGroup(
-            WorkspaceNameValue.withName("foo"),
-            WorkspaceNameValue.withName("foo"))
-        .addEqualityGroup(
-            WorkspaceNameValue.withName("bar"),
-            WorkspaceNameValue.withName("bar"));
+        .addEqualityGroup(WorkspaceNameValue.withName("foo"), WorkspaceNameValue.withName("foo"))
+        .addEqualityGroup(WorkspaceNameValue.withName("bar"), WorkspaceNameValue.withName("bar"))
+        .testEquals();
   }
 }
