1 //===-- UUIDTest.cpp --------------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "gtest/gtest.h" 11 12 #include "lldb/Utility/UUID.h" 13 14 using namespace lldb_private; 15 16 TEST(UUIDTest, RelationalOperators) { 17 UUID empty; 18 UUID a16 = UUID::fromData("1234567890123456", 16); 19 UUID b16 = UUID::fromData("1234567890123457", 16); 20 UUID a20 = UUID::fromData("12345678901234567890", 20); 21 UUID b20 = UUID::fromData("12345678900987654321", 20); 22 23 EXPECT_EQ(empty, empty); 24 EXPECT_EQ(a16, a16); 25 EXPECT_EQ(a20, a20); 26 27 EXPECT_NE(a16, b16); 28 EXPECT_NE(a20, b20); 29 EXPECT_NE(a16, a20); 30 EXPECT_NE(empty, a16); 31 32 EXPECT_LT(empty, a16); 33 EXPECT_LT(a16, a20); 34 EXPECT_LT(a16, b16); 35 EXPECT_GT(a20, b20); 36 } 37 38 TEST(UUIDTest, Validity) { 39 UUID empty; 40 std::vector<uint8_t> zeroes(20, 0); 41 UUID a16 = UUID::fromData(zeroes.data(), 16); 42 UUID a20 = UUID::fromData(zeroes.data(), 20); 43 UUID a16_0 = UUID::fromOptionalData(zeroes.data(), 16); 44 UUID a20_0 = UUID::fromOptionalData(zeroes.data(), 20); 45 EXPECT_FALSE(empty); 46 EXPECT_TRUE(a16); 47 EXPECT_TRUE(a20); 48 EXPECT_FALSE(a16_0); 49 EXPECT_FALSE(a20_0); 50 } 51 52 TEST(UUIDTest, SetFromStringRef) { 53 UUID u; 54 EXPECT_EQ(32u, u.SetFromStringRef("404142434445464748494a4b4c4d4e4f")); 55 EXPECT_EQ(UUID::fromData("@ABCDEFGHIJKLMNO", 16), u); 56 57 EXPECT_EQ(36u, u.SetFromStringRef("40-41-42-43-4445464748494a4b4c4d4e4f")); 58 EXPECT_EQ(UUID::fromData("@ABCDEFGHIJKLMNO", 16), u); 59 60 EXPECT_EQ(45u, u.SetFromStringRef( 61 "40-41-42-43-4445464748494a4b4c4d4e4f-50515253", 20)); 62 EXPECT_EQ(UUID::fromData("@ABCDEFGHIJKLMNOPQRS", 20), u); 63 64 EXPECT_EQ(0u, u.SetFromStringRef("40-41-42-43-4445464748494a4b4c4d4e4f", 20)); 65 EXPECT_EQ(0u, u.SetFromStringRef("40xxxxx")); 66 EXPECT_EQ(0u, u.SetFromStringRef("")); 67 EXPECT_EQ(UUID::fromData("@ABCDEFGHIJKLMNOPQRS", 20), u) 68 << "uuid was changed by failed parse calls"; 69 70 EXPECT_EQ( 71 32u, u.SetFromStringRef("404142434445464748494a4b4c4d4e4f-50515253", 16)); 72 EXPECT_EQ(UUID::fromData("@ABCDEFGHIJKLMNO", 16), u); 73 } 74