perf stat aggregation: Add separate core member
[linux-2.6-microblaze.git] / tools / perf / tests / topology.c
index f988b31..a6e289f 100644 (file)
@@ -64,7 +64,8 @@ static int check_cpu_topology(char *path, struct perf_cpu_map *map)
                .path = path,
                .mode = PERF_DATA_MODE_READ,
        };
-       int i, id;
+       int i;
+       struct aggr_cpu_id id;
 
        session = perf_session__new(&data, false, NULL);
        TEST_ASSERT_VAL("can't get session", !IS_ERR(session));
@@ -110,40 +111,52 @@ static int check_cpu_topology(char *path, struct perf_cpu_map *map)
        for (i = 0; i < map->nr; i++) {
                id = cpu_map__get_core(map, i, NULL);
                TEST_ASSERT_VAL("Core map - Core ID doesn't match",
-                       session->header.env.cpu[map->map[i]].core_id == cpu_map__id_to_cpu(id));
+                       session->header.env.cpu[map->map[i]].core_id == id.core);
 
                TEST_ASSERT_VAL("Core map - Socket ID doesn't match",
-                       session->header.env.cpu[map->map[i]].socket_id ==
-                               cpu_map__id_to_socket(id));
+                       session->header.env.cpu[map->map[i]].socket_id == id.socket);
 
                TEST_ASSERT_VAL("Core map - Die ID doesn't match",
-                       session->header.env.cpu[map->map[i]].die_id == cpu_map__id_to_die(id));
+                       session->header.env.cpu[map->map[i]].die_id == id.die);
+               TEST_ASSERT_VAL("Core map - Node ID is set", id.node == -1);
+               TEST_ASSERT_VAL("Core map - ID is set", id.id == -1);
        }
 
        // Test that die ID contains socket and die
        for (i = 0; i < map->nr; i++) {
                id = cpu_map__get_die(map, i, NULL);
                TEST_ASSERT_VAL("Die map - Socket ID doesn't match",
-                       session->header.env.cpu[map->map[i]].socket_id ==
-                               cpu_map__id_to_socket(id << 16));
+                       session->header.env.cpu[map->map[i]].socket_id == id.socket);
 
                TEST_ASSERT_VAL("Die map - Die ID doesn't match",
-                       session->header.env.cpu[map->map[i]].die_id ==
-                               cpu_map__id_to_die(id << 16));
+                       session->header.env.cpu[map->map[i]].die_id == id.die);
+
+               TEST_ASSERT_VAL("Die map - Node ID is set", id.node == -1);
+               TEST_ASSERT_VAL("Die map - ID is set", id.id == -1);
+               TEST_ASSERT_VAL("Die map - Core is set", id.core == -1);
        }
 
        // Test that socket ID contains only socket
        for (i = 0; i < map->nr; i++) {
                id = cpu_map__get_socket(map, i, NULL);
                TEST_ASSERT_VAL("Socket map - Socket ID doesn't match",
-                       session->header.env.cpu[map->map[i]].socket_id == id);
+                       session->header.env.cpu[map->map[i]].socket_id == id.socket);
+
+               TEST_ASSERT_VAL("Socket map - Node ID is set", id.node == -1);
+               TEST_ASSERT_VAL("Socket map - Die ID is set", id.die == -1);
+               TEST_ASSERT_VAL("Socket map - ID is set", id.id == -1);
+               TEST_ASSERT_VAL("Socket map - Core is set", id.core == -1);
        }
 
        // Test that node ID contains only node
        for (i = 0; i < map->nr; i++) {
                id = cpu_map__get_node(map, i, NULL);
                TEST_ASSERT_VAL("Node map - Node ID doesn't match",
-                       cpu__get_node(map->map[i]) == id);
+                       cpu__get_node(map->map[i]) == id.node);
+               TEST_ASSERT_VAL("Node map - ID is set", id.id == -1);
+               TEST_ASSERT_VAL("Node map - Socket is set", id.socket == -1);
+               TEST_ASSERT_VAL("Node map - Die ID is set", id.die == -1);
+               TEST_ASSERT_VAL("Node map - Core is set", id.core == -1);
        }
        perf_session__delete(session);