6 #include <gtest/gtest.h>
14 TEST(JlcCommandGraphGeneratorTests, TestJlcCompiling)
34 EXPECT_EQ(commandGraph->NumNodes(), 5u);
35 auto & commandNode = commandGraph->GetExitNode().IncomingEdges().begin()->GetSource();
36 auto command =
dynamic_cast<const LlcCommand *
>(&commandNode.GetCommand());
37 EXPECT_NE(command,
nullptr);
38 EXPECT_EQ(command->OutputFile(),
"foo.o");
41 TEST(JlcCommandGraphGeneratorTests, TestJlcLinking)
56 EXPECT_EQ(commandGraph->NumNodes(), 3u);
57 auto & commandNode = commandGraph->GetExitNode().IncomingEdges().begin()->GetSource();
58 auto command =
dynamic_cast<const ClangCommand *
>(&commandNode.GetCommand());
59 EXPECT_EQ(command->InputFiles()[0],
"foo.o");
60 EXPECT_EQ(command->OutputFile(),
"foobar");
63 TEST(JlcCommandGraphGeneratorTests, TestJlmOptOptimizations)
82 auto & clangCommandNode = commandGraph->GetEntryNode().OutgoingEdges().begin()->GetSink();
83 auto & jlmOptCommandNode = clangCommandNode.OutgoingEdges().begin()->GetSink();
84 auto & jlmOptCommand = *
dynamic_cast<const JlmOptCommand *
>(&jlmOptCommandNode.GetCommand());
87 EXPECT_EQ(optimizations.size(), 2u);
92 TEST(JlcCommandGraphGeneratorTests, TestJlmOptStatistics)
98 { Statistics::Id::Aggregation, Statistics::Id::AndersenAnalysis });
101 commandLineOptions.Compilations_.push_back(
103 commandLineOptions.OutputFile_ =
FilePath(
"foobar");
104 commandLineOptions.JlmOptPassStatistics_ = expectedStatistics;
110 auto & clangCommandNode = commandGraph->GetEntryNode().OutgoingEdges().begin()->GetSink();
111 auto & jlmOptCommandNode = clangCommandNode.OutgoingEdges().begin()->GetSink();
112 auto & jlmOptCommand =
114 auto & statisticsCollectorSettings =
117 EXPECT_EQ(statisticsCollectorSettings.GetDemandedStatistics(), expectedStatistics);
TEST(JlcCommandGraphGeneratorTests, TestJlcCompiling)