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" 12*5a9a438aSRiver 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 28*5a9a438aSRiver Riddle SourceMgr SrcMgr; 29*5a9a438aSRiver Riddle SrcMgr.AddNewSourceBuffer( 30*5a9a438aSRiver Riddle MemoryBuffer::getMemBuffer(SimpleTdSource, "test_buffer"), SMLoc()); 31*5a9a438aSRiver Riddle 32*5a9a438aSRiver Riddle RecordKeeper Records; 33*5a9a438aSRiver Riddle bool ProcessResult = TableGenParseFile(SrcMgr, Records); 34*5a9a438aSRiver Riddle EXPECT_FALSE(ProcessResult); 35*5a9a438aSRiver Riddle 36e865fa75SRiver Riddle Record *Foo = Records.getDef("Foo"); 37e865fa75SRiver Riddle Optional<StringRef> Field = Foo->getValueAsOptionalString("strField"); 38e865fa75SRiver Riddle EXPECT_TRUE(Field.hasValue()); 39e865fa75SRiver Riddle EXPECT_EQ(Field.getValue(), "value"); 40e865fa75SRiver Riddle } 41