@@ -89,6 +89,56 @@ TEST_F(CompilerTest, AddFunctionCall)
8989 compile (compiler, block);
9090}
9191
92+ TEST_F (CompilerTest, AddTargetFunctionCall)
93+ {
94+ Compiler compiler (&m_engine, &m_target);
95+ auto block = std::make_shared<Block>(" a" , " " );
96+ m_compareBlock = block;
97+ block->setCompileFunction ([](Compiler *compiler) -> CompilerValue * {
98+ EXPECT_EQ (compiler->block (), m_compareBlock);
99+ CompilerValue arg1 (Compiler::StaticType::Unknown);
100+ CompilerValue arg2 (Compiler::StaticType::Unknown);
101+ Compiler::ArgTypes argTypes = { Compiler::StaticType::Number, Compiler::StaticType::Bool };
102+ Compiler::Args args = { &arg1, &arg2 };
103+ EXPECT_CALL (*m_builder, addTargetFunctionCall (" test1" , Compiler::StaticType::Void, argTypes, args));
104+ compiler->addTargetFunctionCall (" test1" , Compiler::StaticType::Void, argTypes, args);
105+
106+ args = { &arg1 };
107+ argTypes = { Compiler::StaticType::String };
108+ EXPECT_CALL (*m_builder, addTargetFunctionCall (" test2" , Compiler::StaticType::Bool, argTypes, args));
109+ compiler->addTargetFunctionCall (" test2" , Compiler::StaticType::Bool, argTypes, args);
110+
111+ return nullptr ;
112+ });
113+
114+ compile (compiler, block);
115+ }
116+
117+ TEST_F (CompilerTest, AddFunctionCallWithCtx)
118+ {
119+ Compiler compiler (&m_engine, &m_target);
120+ auto block = std::make_shared<Block>(" a" , " " );
121+ m_compareBlock = block;
122+ block->setCompileFunction ([](Compiler *compiler) -> CompilerValue * {
123+ EXPECT_EQ (compiler->block (), m_compareBlock);
124+ CompilerValue arg1 (Compiler::StaticType::Unknown);
125+ CompilerValue arg2 (Compiler::StaticType::Unknown);
126+ Compiler::ArgTypes argTypes = { Compiler::StaticType::Number, Compiler::StaticType::Bool };
127+ Compiler::Args args = { &arg1, &arg2 };
128+ EXPECT_CALL (*m_builder, addFunctionCallWithCtx (" test1" , Compiler::StaticType::Void, argTypes, args));
129+ compiler->addFunctionCallWithCtx (" test1" , Compiler::StaticType::Void, argTypes, args);
130+
131+ args = { &arg1 };
132+ argTypes = { Compiler::StaticType::String };
133+ EXPECT_CALL (*m_builder, addFunctionCallWithCtx (" test2" , Compiler::StaticType::Bool, argTypes, args));
134+ compiler->addFunctionCallWithCtx (" test2" , Compiler::StaticType::Bool, argTypes, args);
135+
136+ return nullptr ;
137+ });
138+
139+ compile (compiler, block);
140+ }
141+
92142TEST_F (CompilerTest, AddConstValue)
93143{
94144 Compiler compiler (&m_engine, &m_target);
0 commit comments