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