Files
revng-revng/tests/unit/InstantiatePasses.cpp
Alessandro Di Federico 0a5d2c04a7 Rework LoadModelPass
2022-03-08 15:04:34 +01:00

47 lines
1.1 KiB
C++

/// \file InstantiatePasses.cpp
/// \brief
//
// This file is distributed under the MIT License. See LICENSE.md for details.
//
#define BOOST_TEST_MODULE InstantiatePasses
bool init_unit_test();
#include "boost/test/unit_test.hpp"
#include "llvm/IR/PassManager.h"
#include "revng/Model/LoadModelPass.h"
#include "revng/Model/SerializeModelPass.h"
template<typename T>
void instantiateModuleAnalysis(llvm::Module *M) {
llvm::ModulePassManager MPM;
llvm::ModuleAnalysisManager MAM;
MAM.registerPass([]() { return T(); });
MPM.run(*M, MAM);
}
template<typename T>
void instantiateModulePass(llvm::Module *M) {
llvm::ModulePassManager MPM;
llvm::ModuleAnalysisManager MAM;
MPM.addPass(T());
MPM.run(*M, MAM);
}
BOOST_AUTO_TEST_CASE(TestLoadModelAnalysis) {
if (false) {
llvm::FunctionPassManager FPM;
llvm::FunctionAnalysisManager FAM;
FAM.registerPass([]() { return LoadModelAnalysis::fromModule(); });
FPM.run(*static_cast<llvm::Function *>(nullptr), FAM);
}
}
BOOST_AUTO_TEST_CASE(TestSerializeModelPass) {
if (false) {
instantiateModulePass<SerializeModelPass>(nullptr);
}
}