@@ -2072,6 +2072,68 @@ TEST_F(LLVMCodeBuilderTest, AppendToList)
20722072 ASSERT_EQ (localList->toString (), " true false hello world" );
20732073}
20742074
2075+ TEST_F (LLVMCodeBuilderTest, InsertToList)
2076+ {
2077+ EngineMock engine;
2078+ Stage stage;
2079+ Sprite sprite;
2080+ sprite.setEngine (&engine);
2081+ EXPECT_CALL (engine, stage ()).WillRepeatedly (Return (&stage));
2082+
2083+ std::unordered_map<List *, std::string> strings;
2084+
2085+ auto globalList = std::make_shared<List>(" " , " " );
2086+ stage.addList (globalList);
2087+
2088+ auto localList = std::make_shared<List>(" " , " " );
2089+ sprite.addList (localList);
2090+
2091+ globalList->append (1 );
2092+ globalList->append (2 );
2093+ globalList->append (3 );
2094+
2095+ localList->append (" Lorem" );
2096+ localList->append (" ipsum" );
2097+ localList->append (" dolor" );
2098+ localList->append (" sit" );
2099+ strings[localList.get ()] = localList->toString ();
2100+
2101+ createBuilder (&sprite, true );
2102+
2103+ m_builder->addConstValue (2 );
2104+ m_builder->addConstValue (1 );
2105+ m_builder->createListInsert (globalList.get ());
2106+
2107+ m_builder->addConstValue (3 );
2108+ m_builder->addConstValue (" test" );
2109+ m_builder->createListInsert (globalList.get ());
2110+
2111+ m_builder->addConstValue (0 );
2112+ m_builder->addConstValue (3 );
2113+ m_builder->createListInsert (localList.get ());
2114+
2115+ m_builder->createListClear (localList.get ());
2116+
2117+ m_builder->addConstValue (0 );
2118+ m_builder->addConstValue (true );
2119+ m_builder->createListInsert (localList.get ());
2120+
2121+ m_builder->addConstValue (0 );
2122+ m_builder->addConstValue (false );
2123+ m_builder->createListInsert (localList.get ());
2124+
2125+ m_builder->addConstValue (1 );
2126+ m_builder->addConstValue (" hello world" );
2127+ m_builder->createListInsert (localList.get ());
2128+
2129+ auto code = m_builder->finalize ();
2130+ auto ctx = code->createExecutionContext (&sprite);
2131+ code->run (ctx.get ());
2132+
2133+ ASSERT_EQ (globalList->toString (), " 1 2 1 test 3" );
2134+ ASSERT_EQ (localList->toString (), " false hello world true" );
2135+ }
2136+
20752137TEST_F (LLVMCodeBuilderTest, Yield)
20762138{
20772139 auto build = [this ]() {
0 commit comments