38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
//===- DialectTest.cpp - Dialect unit tests -------------------------------===//
 | 
						|
//
 | 
						|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | 
						|
// See https://llvm.org/LICENSE.txt for license information.
 | 
						|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#include "mlir/IR/Dialect.h"
 | 
						|
#include "gtest/gtest.h"
 | 
						|
 | 
						|
using namespace mlir;
 | 
						|
using namespace mlir::detail;
 | 
						|
 | 
						|
namespace {
 | 
						|
struct TestDialect : public Dialect {
 | 
						|
  static StringRef getDialectNamespace() { return "test"; };
 | 
						|
  TestDialect(MLIRContext *context)
 | 
						|
      : Dialect(getDialectNamespace(), context, TypeID::get<TestDialect>()) {}
 | 
						|
};
 | 
						|
struct AnotherTestDialect : public Dialect {
 | 
						|
  static StringRef getDialectNamespace() { return "test"; };
 | 
						|
  AnotherTestDialect(MLIRContext *context)
 | 
						|
      : Dialect(getDialectNamespace(), context,
 | 
						|
                TypeID::get<AnotherTestDialect>()) {}
 | 
						|
};
 | 
						|
 | 
						|
TEST(DialectDeathTest, MultipleDialectsWithSameNamespace) {
 | 
						|
  MLIRContext context;
 | 
						|
 | 
						|
  // Registering a dialect with the same namespace twice should result in a
 | 
						|
  // failure.
 | 
						|
  context.loadDialect<TestDialect>();
 | 
						|
  ASSERT_DEATH(context.loadDialect<AnotherTestDialect>(), "");
 | 
						|
}
 | 
						|
 | 
						|
} // end namespace
 |