17ef7a92eSJonas Devlieghere //===-- ChecksumTest.cpp --------------------------------------------------===//
27ef7a92eSJonas Devlieghere //
37ef7a92eSJonas Devlieghere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
47ef7a92eSJonas Devlieghere // See https://llvm.org/LICENSE.txt for license information.
57ef7a92eSJonas Devlieghere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
67ef7a92eSJonas Devlieghere //
77ef7a92eSJonas Devlieghere //===----------------------------------------------------------------------===//
87ef7a92eSJonas Devlieghere
97ef7a92eSJonas Devlieghere #include "gtest/gtest.h"
107ef7a92eSJonas Devlieghere
117ef7a92eSJonas Devlieghere #include "lldb/Utility/Checksum.h"
127ef7a92eSJonas Devlieghere
137ef7a92eSJonas Devlieghere using namespace lldb_private;
147ef7a92eSJonas Devlieghere
15*dddb9d1eSDavid Spickett static llvm::MD5::MD5Result hash1 = {
16*dddb9d1eSDavid Spickett {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}};
177ef7a92eSJonas Devlieghere
18*dddb9d1eSDavid Spickett static llvm::MD5::MD5Result hash2 = {
19*dddb9d1eSDavid Spickett {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}};
207ef7a92eSJonas Devlieghere
21*dddb9d1eSDavid Spickett static llvm::MD5::MD5Result hash3 = {
22*dddb9d1eSDavid Spickett {8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7}};
237ef7a92eSJonas Devlieghere
TEST(ChecksumTest,TestConstructor)247ef7a92eSJonas Devlieghere TEST(ChecksumTest, TestConstructor) {
257ef7a92eSJonas Devlieghere Checksum checksum1;
267ef7a92eSJonas Devlieghere EXPECT_FALSE(static_cast<bool>(checksum1));
277ef7a92eSJonas Devlieghere EXPECT_EQ(checksum1, Checksum());
287ef7a92eSJonas Devlieghere
297ef7a92eSJonas Devlieghere Checksum checksum2 = Checksum(hash1);
307ef7a92eSJonas Devlieghere EXPECT_EQ(checksum2, Checksum(hash1));
317ef7a92eSJonas Devlieghere
327ef7a92eSJonas Devlieghere Checksum checksum3(checksum2);
337ef7a92eSJonas Devlieghere EXPECT_EQ(checksum3, Checksum(hash1));
347ef7a92eSJonas Devlieghere }
357ef7a92eSJonas Devlieghere
TEST(ChecksumTest,TestCopyConstructor)367ef7a92eSJonas Devlieghere TEST(ChecksumTest, TestCopyConstructor) {
377ef7a92eSJonas Devlieghere Checksum checksum1;
387ef7a92eSJonas Devlieghere EXPECT_FALSE(static_cast<bool>(checksum1));
397ef7a92eSJonas Devlieghere EXPECT_EQ(checksum1, Checksum());
407ef7a92eSJonas Devlieghere
417ef7a92eSJonas Devlieghere Checksum checksum2 = checksum1;
427ef7a92eSJonas Devlieghere EXPECT_EQ(checksum2, checksum1);
437ef7a92eSJonas Devlieghere
447ef7a92eSJonas Devlieghere Checksum checksum3(checksum1);
457ef7a92eSJonas Devlieghere EXPECT_EQ(checksum3, checksum1);
467ef7a92eSJonas Devlieghere }
477ef7a92eSJonas Devlieghere
TEST(ChecksumTest,TestMD5)487ef7a92eSJonas Devlieghere TEST(ChecksumTest, TestMD5) {
497ef7a92eSJonas Devlieghere Checksum checksum1(hash1);
507ef7a92eSJonas Devlieghere EXPECT_TRUE(static_cast<bool>(checksum1));
517ef7a92eSJonas Devlieghere
527ef7a92eSJonas Devlieghere // Make sure two checksums with the same underlying hashes are the same.
537ef7a92eSJonas Devlieghere EXPECT_EQ(Checksum(hash1), Checksum(hash2));
547ef7a92eSJonas Devlieghere
557ef7a92eSJonas Devlieghere // Make sure two checksums with different underlying hashes are different.
567ef7a92eSJonas Devlieghere EXPECT_NE(Checksum(hash1), Checksum(hash3));
577ef7a92eSJonas Devlieghere }
58