brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · f1e9eb8 Raw
40 lines · cpp
1//===- unittest/Support/RemarksStrTabParsingTest.cpp - StrTab tests -------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/Remarks/Remark.h"10#include "llvm/Remarks/RemarkParser.h"11#include "gtest/gtest.h"12 13using namespace llvm;14 15TEST(RemarksStrTab, ParsingEmpty) {16  StringRef Empty("", 0);17  remarks::ParsedStringTable StrTab(Empty);18  Expected<StringRef> Nothing = StrTab[0];19  EXPECT_FALSE(static_cast<bool>(Nothing));20  EXPECT_EQ(toString(Nothing.takeError()),21            "String with index 0 is out of bounds (size = 0).");22}23 24TEST(RemarksStrTab, ParsingGood) {25  StringRef Strings("str1\0str2\0str3\0str4", 20);26  remarks::ParsedStringTable StrTab(Strings);27  Expected<StringRef> Result = StrTab[0];28  EXPECT_TRUE(static_cast<bool>(Result));29  EXPECT_EQ(*Result, "str1");30  Result = StrTab[1];31  EXPECT_TRUE(static_cast<bool>(Result));32  EXPECT_EQ(*Result, "str2");33  Result = StrTab[2];34  EXPECT_TRUE(static_cast<bool>(Result));35  EXPECT_EQ(*Result, "str3");36  Result = StrTab[3];37  EXPECT_TRUE(static_cast<bool>(Result));38  EXPECT_EQ(*Result, "str4");39}40