1e865fa75SRiver Riddle //===- unittest/TableGen/ParserEntryPointTest.cpp - Parser tests ----------===// 2e865fa75SRiver Riddle // 3e865fa75SRiver Riddle // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e865fa75SRiver Riddle // See https://llvm.org/LICENSE.txt for license information. 5e865fa75SRiver Riddle // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e865fa75SRiver Riddle // 7e865fa75SRiver Riddle //===----------------------------------------------------------------------===// 8e865fa75SRiver Riddle 9e865fa75SRiver Riddle #include "llvm/ADT/ArrayRef.h" 10e865fa75SRiver Riddle #include "llvm/ADT/STLExtras.h" 11e865fa75SRiver Riddle #include "llvm/Support/MemoryBuffer.h" 125a9a438aSRiver Riddle #include "llvm/Support/SourceMgr.h" 13e865fa75SRiver Riddle #include "llvm/TableGen/Parser.h" 14e865fa75SRiver Riddle #include "llvm/TableGen/Record.h" 15e865fa75SRiver Riddle #include "gmock/gmock.h" 16e865fa75SRiver Riddle #include "gtest/gtest.h" 17e865fa75SRiver Riddle 18e865fa75SRiver Riddle using namespace llvm; 19e865fa75SRiver Riddle 20e865fa75SRiver Riddle TEST(Parser, SanityTest) { 21e865fa75SRiver Riddle // Simple TableGen source file with a single record. 22e865fa75SRiver Riddle const char *SimpleTdSource = R"td( 23e865fa75SRiver Riddle def Foo { 24e865fa75SRiver Riddle string strField = "value"; 25e865fa75SRiver Riddle } 26e865fa75SRiver Riddle )td"; 27e865fa75SRiver Riddle 285a9a438aSRiver Riddle SourceMgr SrcMgr; 295a9a438aSRiver Riddle SrcMgr.AddNewSourceBuffer( 305a9a438aSRiver Riddle MemoryBuffer::getMemBuffer(SimpleTdSource, "test_buffer"), SMLoc()); 315a9a438aSRiver Riddle 325a9a438aSRiver Riddle RecordKeeper Records; 335a9a438aSRiver Riddle bool ProcessResult = TableGenParseFile(SrcMgr, Records); 345a9a438aSRiver Riddle EXPECT_FALSE(ProcessResult); 355a9a438aSRiver Riddle 36*667815ccSRahul Joshi const Record *Foo = Records.getDef("Foo"); 373cfe412eSFangrui Song std::optional<StringRef> Field = Foo->getValueAsOptionalString("strField"); 383361a364SKazu Hirata EXPECT_TRUE(Field.has_value()); 3967ba5c50SFangrui Song EXPECT_EQ(*Field, "value"); 40e865fa75SRiver Riddle } 41