1 //===- PatternMatchTest.cpp - PatternMatch unit 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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "mlir/IR/PatternMatch.h"
10 #include "gtest/gtest.h"
11 
12 #include "../../test/lib/Dialect/Test/TestDialect.h"
13 
14 using namespace mlir;
15 
16 namespace {
17 struct AnOpRewritePattern : OpRewritePattern<test::OpA> {
AnOpRewritePattern__anon8f7fb42a0111::AnOpRewritePattern18   AnOpRewritePattern(MLIRContext *context)
19       : OpRewritePattern(context, /*benefit=*/1,
20                          /*generatedNames=*/{test::OpB::getOperationName()}) {}
21 };
TEST(OpRewritePatternTest,GetGeneratedNames)22 TEST(OpRewritePatternTest, GetGeneratedNames) {
23   MLIRContext context;
24   AnOpRewritePattern pattern(&context);
25   ArrayRef<OperationName> ops = pattern.getGeneratedOps();
26 
27   ASSERT_EQ(ops.size(), 1u);
28   ASSERT_EQ(ops.front().getStringRef(), test::OpB::getOperationName());
29 }
30 } // end anonymous namespace
31