mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
Summary: As GoogleTest `TEST` macro is non-compliant with it as well as `DEFINE_DISPATCH` All changes but the ones to `.clang-tidy` are generated using following script: ``` for i in `find . -type f -iname "*.c*" -or -iname "*.h"|xargs grep cppcoreguidelines-avoid-non-const-global-variables|cut -f1 -d:|sort|uniq`; do sed -i "/\/\/ NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)/d" $i; done ``` Pull Request resolved: https://github.com/pytorch/pytorch/pull/62008 Reviewed By: driazati, r-barnes Differential Revision: D29838584 Pulled By: malfet fbshipit-source-id: 1b2f8602c945bd4ce50a9bfdd204755556e31d13
58 lines
1.5 KiB
C++
58 lines
1.5 KiB
C++
#include "caffe2/core/common.h"
|
|
#include "caffe2/opt/converter.h"
|
|
#include "caffe2/opt/passes.h"
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
TEST(DeadCodeElim, BasicElim) {
|
|
caffe2::NetDef net;
|
|
{
|
|
caffe2::OperatorDef* def = net.add_op();
|
|
def->set_type("Fake");
|
|
def->add_input("X");
|
|
def->add_output("Y");
|
|
}
|
|
|
|
auto nn = caffe2::convertToNNModule(net);
|
|
auto pass = caffe2::OptimizationPassRegistry()->Create("DeadCodeElim", &nn);
|
|
pass->run();
|
|
auto optimized_net = caffe2::convertToCaffe2Proto(nn, net);
|
|
EXPECT_EQ(optimized_net.op().size(), 0);
|
|
}
|
|
|
|
TEST(DeadCodeElim, BasicNoElim) {
|
|
caffe2::NetDef net;
|
|
{
|
|
caffe2::OperatorDef* def = net.add_op();
|
|
def->set_type("Fake");
|
|
def->add_input("X");
|
|
def->add_output("Y");
|
|
}
|
|
net.add_external_output("Y");
|
|
|
|
auto nn = caffe2::convertToNNModule(net);
|
|
auto pass = caffe2::OptimizationPassRegistry()->Create("DeadCodeElim", &nn);
|
|
pass->run();
|
|
auto optimized_net = caffe2::convertToCaffe2Proto(nn, net);
|
|
EXPECT_EQ(optimized_net.op().size(), 1);
|
|
}
|
|
|
|
TEST(DeadCodeElim, PartiallyUsedNoElim) {
|
|
caffe2::NetDef net;
|
|
{
|
|
caffe2::OperatorDef* def = net.add_op();
|
|
def->set_type("Fake");
|
|
def->add_input("X");
|
|
def->add_output("Y");
|
|
def->add_output("Z");
|
|
}
|
|
net.add_external_output("Y");
|
|
// Z is unused, but we should keep Fake because Y is
|
|
|
|
auto nn = caffe2::convertToNNModule(net);
|
|
auto pass = caffe2::OptimizationPassRegistry()->Create("DeadCodeElim", &nn);
|
|
pass->run();
|
|
auto optimized_net = caffe2::convertToCaffe2Proto(nn, net);
|
|
EXPECT_EQ(optimized_net.op().size(), 1);
|
|
}
|