diff --git a/test/mock/galaxy-s9-us.cc b/test/mock/galaxy-s9-us.cc
index f5016c4..9ab392f 100644
--- a/test/mock/galaxy-s9-us.cc
+++ b/test/mock/galaxy-s9-us.cc
@@ -24,6 +24,25 @@
 	}
 }
 
+TEST(PROCESSORS, cluster) {
+	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
+		switch (i) {
+			case 0:
+			case 1:
+			case 2:
+			case 3:
+				ASSERT_EQ(cpuinfo_get_cluster(0), cpuinfo_get_processor(i)->cluster);
+				break;
+			case 4:
+			case 5:
+			case 6:
+			case 7:
+				ASSERT_EQ(cpuinfo_get_cluster(1), cpuinfo_get_processor(i)->cluster);
+				break;
+		}
+	}
+}
+
 TEST(PROCESSORS, package) {
 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
 		ASSERT_EQ(cpuinfo_get_package(0), cpuinfo_get_processor(i)->package);
@@ -61,28 +80,15 @@
 	}
 }
 
-TEST(PROCESSORS, l2) {
+TEST(PROCESSORS, DISABLED_l2) {
 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
-		switch (i) {
-			case 0:
-			case 1:
-			case 2:
-			case 3:
-				ASSERT_EQ(cpuinfo_get_l2_cache(0), cpuinfo_get_processor(i)->cache.l2);
-				break;
-			case 4:
-			case 5:
-			case 6:
-			case 7:
-				ASSERT_EQ(cpuinfo_get_l2_cache(1), cpuinfo_get_processor(i)->cache.l2);
-				break;
-		}
+		ASSERT_EQ(cpuinfo_get_l2_cache(i), cpuinfo_get_processor(i)->cache.l2);
 	}
 }
 
-TEST(PROCESSORS, l3) {
+TEST(PROCESSORS, DISABLED_l3) {
 	for (uint32_t i = 0; i < cpuinfo_get_processors_count(); i++) {
-		ASSERT_FALSE(cpuinfo_get_processor(i)->cache.l3);
+		ASSERT_EQ(cpuinfo_get_l3_cache(0), cpuinfo_get_processor(i)->cache.l3);
 	}
 }
 
@@ -118,6 +124,25 @@
 	}
 }
 
+TEST(CORES, cluster) {
+	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
+		switch (i) {
+			case 0:
+			case 1:
+			case 2:
+			case 3:
+				ASSERT_EQ(cpuinfo_get_cluster(0), cpuinfo_get_core(i)->cluster);
+				break;
+			case 4:
+			case 5:
+			case 6:
+			case 7:
+				ASSERT_EQ(cpuinfo_get_cluster(1), cpuinfo_get_core(i)->cluster);
+				break;
+		}
+	}
+}
+
 TEST(CORES, package) {
 	for (uint32_t i = 0; i < cpuinfo_get_cores_count(); i++) {
 		ASSERT_EQ(cpuinfo_get_package(0), cpuinfo_get_core(i)->package);
@@ -231,6 +256,18 @@
 	}
 }
 
+TEST(PACKAGES, cluster_start) {
+	for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) {
+		ASSERT_EQ(0, cpuinfo_get_package(i)->cluster_start);
+	}
+}
+
+TEST(PACKAGES, cluster_count) {
+	for (uint32_t i = 0; i < cpuinfo_get_packages_count(); i++) {
+		ASSERT_EQ(2, cpuinfo_get_package(i)->cluster_count);
+	}
+}
+
 TEST(ISA, thumb) {
 	#if CPUINFO_ARCH_ARM
 		ASSERT_TRUE(cpuinfo_has_arm_thumb());
