| 15 | using namespace mgb; |
| 16 | |
| 17 | TEST(TestCompNode, Parse) { |
| 18 | using L = CompNode::Locator; |
| 19 | using D = CompNode::DeviceType; |
| 20 | auto make_lc = [](D t, int dev, int s) -> L { return {t, dev, {s}}; }; |
| 21 | |
| 22 | ASSERT_EQ(L::parse("xpux"), make_lc(D::UNSPEC, -1, 0)); |
| 23 | ASSERT_EQ(L::parse("xpux:23"), make_lc(D::UNSPEC, -1, 23)); |
| 24 | ASSERT_EQ(L::parse("xpu2:23"), make_lc(D::UNSPEC, 2, 23)); |
| 25 | ASSERT_EQ(L::parse("xpu21:23"), make_lc(D::UNSPEC, 21, 23)); |
| 26 | |
| 27 | ASSERT_EQ(L::parse("cpux"), make_lc(D::CPU, -1, 0)); |
| 28 | ASSERT_EQ(L::parse("cpux:23"), make_lc(D::CPU, -1, 23)); |
| 29 | ASSERT_EQ(L::parse("cpu2:23"), make_lc(D::CPU, 2, 23)); |
| 30 | ASSERT_EQ(L::parse("cpu21:23"), make_lc(D::CPU, 21, 23)); |
| 31 | |
| 32 | ASSERT_EQ(L::parse("rocmx"), make_lc(D::ROCM, -1, 0)); |
| 33 | ASSERT_EQ(L::parse("rocm2"), make_lc(D::ROCM, 2, 0)); |
| 34 | ASSERT_EQ(L::parse("rocm2:3"), make_lc(D::ROCM, 2, 3)); |
| 35 | ASSERT_EQ(L::parse("cambriconx"), make_lc(D::CAMBRICON, -1, 0)); |
| 36 | ASSERT_EQ(L::parse("cambricon2"), make_lc(D::CAMBRICON, 2, 0)); |
| 37 | ASSERT_EQ(L::parse("cambricon2:3"), make_lc(D::CAMBRICON, 2, 3)); |
| 38 | |
| 39 | ASSERT_EQ(L::parse("atlasx"), make_lc(D::ATLAS, -1, 0)); |
| 40 | ASSERT_EQ(L::parse("atlas2"), make_lc(D::ATLAS, 2, 0)); |
| 41 | ASSERT_EQ(L::parse("atlas2:3"), make_lc(D::ATLAS, 2, 3)); |
| 42 | ASSERT_EQ(L::parse("xpu"), make_lc(D::UNSPEC, -1, 0)); |
| 43 | ASSERT_EQ(L::parse("xpux"), make_lc(D::UNSPEC, -1, 0)); |
| 44 | ASSERT_EQ(L::parse("xpu23"), make_lc(D::UNSPEC, 23, 0)); |
| 45 | ASSERT_EQ(L::parse("xpu23:1"), make_lc(D::UNSPEC, 23, 1)); |
| 46 | |
| 47 | ASSERT_EQ(L::parse("cpu:default"), make_lc(D::CPU, L::DEVICE_CPU_DEFAULT, 0)); |
| 48 | ASSERT_EQ(L::parse("multithread2:0"), make_lc(D::MULTITHREAD, 0, 2)); |
| 49 | ASSERT_EQ(L::parse("multithread1:3"), make_lc(D::MULTITHREAD, 3, 1)); |
| 50 | ASSERT_EQ( |
| 51 | L::parse("multithread:default:2"), |
| 52 | make_lc(D::MULTITHREAD, L::DEVICE_MULTITHREAD_DEFAULT, 2)); |
| 53 | |
| 54 | ASSERT_THROW(L::parse("apu"), MegBrainError); |
| 55 | ASSERT_THROW(L::parse("fpgbx"), MegBrainError); |
| 56 | ASSERT_THROW(L::parse("cab0"), MegBrainError); |
| 57 | ASSERT_THROW(L::parse("cpu"), MegBrainError); |
| 58 | ASSERT_THROW(L::parse("cpu-1"), MegBrainError); |
| 59 | ASSERT_THROW(L::parse("cpu0:"), MegBrainError); |
| 60 | ASSERT_THROW(L::parse("cpu0:x"), MegBrainError); |
| 61 | ASSERT_THROW(L::parse("cpu2:23x"), MegBrainError); |
| 62 | ASSERT_THROW(L::parse("rcom0"), MegBrainError); |
| 63 | ASSERT_THROW(L::parse("cmabricon0"), MegBrainError); |
| 64 | ASSERT_THROW(L::parse("atlast0"), MegBrainError); |
| 65 | ASSERT_THROW(L::parse("multithread"), MegBrainError); |
| 66 | ASSERT_THROW(L::parse("multithread1:"), MegBrainError); |
| 67 | ASSERT_THROW(L::parse("multithread1:default"), MegBrainError); |
| 68 | ASSERT_THROW(L::parse("multithread1:default:0"), MegBrainError); |
| 69 | } |
| 70 | |
| 71 | TEST(TestCompNode, SetDefaultDev) { |
| 72 | REQUIRE_GPU(3); |
nothing calls this directly
no test coverage detected