]>
git.proxmox.com Git - ceph.git/blob - ceph/src/test/common/test_numa.cc
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #include "gtest/gtest.h"
5 #include "common/numa.h"
7 TEST(cpu_set
, parse_list
) {
11 ASSERT_EQ(0, parse_cpu_set_list("0-3", &size
, &cpu_set
));
13 for (unsigned i
= 0; i
< size
; ++i
) {
14 ASSERT_TRUE(CPU_ISSET(i
, &cpu_set
));
17 ASSERT_EQ(0, parse_cpu_set_list("0-3,6-7", &size
, &cpu_set
));
19 for (unsigned i
= 0; i
< 4; ++i
) {
20 ASSERT_TRUE(CPU_ISSET(i
, &cpu_set
));
22 for (unsigned i
= 4; i
< 6; ++i
) {
23 ASSERT_FALSE(CPU_ISSET(i
, &cpu_set
));
25 for (unsigned i
= 6; i
< 8; ++i
) {
26 ASSERT_TRUE(CPU_ISSET(i
, &cpu_set
));
29 ASSERT_EQ(0, parse_cpu_set_list("0-31", &size
, &cpu_set
));
31 for (unsigned i
= 0; i
< size
; ++i
) {
32 ASSERT_TRUE(CPU_ISSET(i
, &cpu_set
));
36 TEST(cpu_set
, to_str_list
) {
40 ASSERT_EQ(std::string("0"), cpu_set_to_str_list(8, &cpu_set
));
44 ASSERT_EQ(std::string("0-3"), cpu_set_to_str_list(8, &cpu_set
));
46 ASSERT_EQ(std::string("0-3,5"), cpu_set_to_str_list(8, &cpu_set
));
49 ASSERT_EQ(std::string("0-3,5-7"), cpu_set_to_str_list(8, &cpu_set
));
52 TEST(cpu_set
, round_trip_list
)
54 for (unsigned i
= 0; i
< 100; ++i
) {
58 for (unsigned i
= 0; i
< 32; ++i
) {
63 std::string v
= cpu_set_to_str_list(size
, &cpu_set
);
66 ASSERT_EQ(0, parse_cpu_set_list(v
.c_str(), &size2
, &cpu_set_2
));
67 for (unsigned i
= 0; i
< 32; ++i
) {
68 ASSERT_TRUE(CPU_ISSET(i
, &cpu_set
) == CPU_ISSET(i
, &cpu_set_2
));