Skip to content

Commit da9fd7e

Browse files
committed
Add test for random backdrop in switch backdrop block
1 parent 9edda43 commit da9fd7e

File tree

1 file changed

+81
-2
lines changed

1 file changed

+81
-2
lines changed

test/blocks/looks_blocks_test.cpp

Lines changed: 81 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1778,9 +1778,11 @@ TEST_F(LooksBlocksTest, SwitchBackdropToImpl)
17781778
static unsigned int bytecode12[] = { vm::OP_START, vm::OP_CONST, 11, vm::OP_EXEC, 0, vm::OP_HALT };
17791779
static unsigned int bytecode13[] = { vm::OP_START, vm::OP_CONST, 12, vm::OP_EXEC, 0, vm::OP_HALT };
17801780
static unsigned int bytecode14[] = { vm::OP_START, vm::OP_CONST, 13, vm::OP_EXEC, 0, vm::OP_HALT };
1781+
static unsigned int bytecode15[] = { vm::OP_START, vm::OP_CONST, 14, vm::OP_EXEC, 0, vm::OP_HALT };
17811782
static BlockFunc functions[] = { &LooksBlocks::switchBackdropTo };
17821783
static Value constValues[] = {
1783-
"backdrop2", 0, 1, 2, 3, "2", "3", Value::SpecialValue::NaN, Value::SpecialValue::Infinity, Value::SpecialValue::NegativeInfinity, "", " ", "next backdrop", "previous backdrop"
1784+
"backdrop2", 0, 1, 2, 3, "2", "3", Value::SpecialValue::NaN, Value::SpecialValue::Infinity, Value::SpecialValue::NegativeInfinity, "", " ", "next backdrop", "previous backdrop",
1785+
"random backdrop"
17841786
};
17851787

17861788
Target target;
@@ -1992,6 +1994,42 @@ TEST_F(LooksBlocksTest, SwitchBackdropToImpl)
19921994

19931995
ASSERT_EQ(vm.registerCount(), 0);
19941996
ASSERT_EQ(stage.costumeIndex(), 5);
1997+
1998+
// random backdrop
1999+
RandomGeneratorMock rng;
2000+
LooksBlocks::rng = &rng;
2001+
2002+
EXPECT_CALL(m_engineMock, stage()).Times(3).WillRepeatedly(Return(&stage));
2003+
EXPECT_CALL(m_engineMock, startBackdropScripts(stage.costumeAt(3)->broadcast()));
2004+
EXPECT_CALL(rng, randint(0, 5)).WillOnce(Return(3));
2005+
stage.setCostumeIndex(0);
2006+
vm.setBytecode(bytecode15);
2007+
vm.run();
2008+
2009+
ASSERT_EQ(vm.registerCount(), 0);
2010+
ASSERT_EQ(stage.costumeIndex(), 3);
2011+
2012+
EXPECT_CALL(m_engineMock, stage()).Times(3).WillRepeatedly(Return(&stage));
2013+
EXPECT_CALL(m_engineMock, startBackdropScripts(stage.costumeAt(5)->broadcast()));
2014+
EXPECT_CALL(rng, randint(0, 5)).WillOnce(Return(5));
2015+
vm.reset();
2016+
vm.run();
2017+
2018+
ASSERT_EQ(vm.registerCount(), 0);
2019+
ASSERT_EQ(stage.costumeIndex(), 5);
2020+
2021+
stage.addCostume(std::make_shared<Costume>("random backdrop", "b7", "svg"));
2022+
2023+
EXPECT_CALL(m_engineMock, stage()).Times(2).WillRepeatedly(Return(&stage));
2024+
EXPECT_CALL(m_engineMock, startBackdropScripts(stage.costumeAt(6)->broadcast()));
2025+
EXPECT_CALL(rng, randint).Times(0);
2026+
vm.reset();
2027+
vm.run();
2028+
2029+
ASSERT_EQ(vm.registerCount(), 0);
2030+
ASSERT_EQ(stage.costumeIndex(), 6);
2031+
2032+
LooksBlocks::rng = RandomGenerator::instance().get();
19952033
}
19962034

19972035
TEST_F(LooksBlocksTest, SwitchBackdropToAndWait)
@@ -2045,9 +2083,11 @@ TEST_F(LooksBlocksTest, SwitchBackdropToAndWaitImpl)
20452083
static unsigned int bytecode12[] = { vm::OP_START, vm::OP_CONST, 11, vm::OP_EXEC, 0, vm::OP_EXEC, 1, vm::OP_EXEC, 2, vm::OP_HALT };
20462084
static unsigned int bytecode13[] = { vm::OP_START, vm::OP_CONST, 12, vm::OP_EXEC, 0, vm::OP_EXEC, 1, vm::OP_EXEC, 2, vm::OP_HALT };
20472085
static unsigned int bytecode14[] = { vm::OP_START, vm::OP_CONST, 13, vm::OP_EXEC, 0, vm::OP_EXEC, 1, vm::OP_EXEC, 2, vm::OP_HALT };
2086+
static unsigned int bytecode15[] = { vm::OP_START, vm::OP_CONST, 14, vm::OP_EXEC, 0, vm::OP_EXEC, 1, vm::OP_EXEC, 2, vm::OP_HALT };
20482087
static BlockFunc functions[] = { &LooksBlocks::switchBackdropToAndWait, &LooksBlocks::backdropNumber, &LooksBlocks::checkBackdropScripts };
20492088
static Value constValues[] = {
2050-
"backdrop2", 0, 1, 2, 3, "2", "3", Value::SpecialValue::NaN, Value::SpecialValue::Infinity, Value::SpecialValue::NegativeInfinity, "", " ", "next backdrop", "previous backdrop"
2089+
"backdrop2", 0, 1, 2, 3, "2", "3", Value::SpecialValue::NaN, Value::SpecialValue::Infinity, Value::SpecialValue::NegativeInfinity, "", " ", "next backdrop", "previous backdrop",
2090+
"random backdrop"
20512091
};
20522092

20532093
Target target;
@@ -2315,6 +2355,45 @@ TEST_F(LooksBlocksTest, SwitchBackdropToAndWaitImpl)
23152355

23162356
ASSERT_EQ(vm.registerCount(), 0);
23172357
ASSERT_EQ(stage.costumeIndex(), 5);
2358+
2359+
// random backdrop
2360+
RandomGeneratorMock rng;
2361+
LooksBlocks::rng = &rng;
2362+
2363+
EXPECT_CALL(m_engineMock, stage()).Times(5).WillRepeatedly(Return(&stage));
2364+
EXPECT_CALL(m_engineMock, startBackdropScripts(stage.costumeAt(3)->broadcast()));
2365+
EXPECT_CALL(m_engineMock, broadcastByPtrRunning(stage.costumeAt(3)->broadcast())).WillOnce(Return(false));
2366+
EXPECT_CALL(rng, randint(0, 5)).WillOnce(Return(3));
2367+
stage.setCostumeIndex(0);
2368+
vm.setBytecode(bytecode15);
2369+
vm.run();
2370+
2371+
ASSERT_EQ(vm.registerCount(), 0);
2372+
ASSERT_EQ(stage.costumeIndex(), 3);
2373+
2374+
EXPECT_CALL(m_engineMock, stage()).Times(5).WillRepeatedly(Return(&stage));
2375+
EXPECT_CALL(m_engineMock, startBackdropScripts(stage.costumeAt(5)->broadcast()));
2376+
EXPECT_CALL(m_engineMock, broadcastByPtrRunning(stage.costumeAt(5)->broadcast())).WillOnce(Return(false));
2377+
EXPECT_CALL(rng, randint(0, 5)).WillOnce(Return(5));
2378+
vm.reset();
2379+
vm.run();
2380+
2381+
ASSERT_EQ(vm.registerCount(), 0);
2382+
ASSERT_EQ(stage.costumeIndex(), 5);
2383+
2384+
stage.addCostume(std::make_shared<Costume>("random backdrop", "b7", "svg"));
2385+
2386+
EXPECT_CALL(m_engineMock, stage()).Times(4).WillRepeatedly(Return(&stage));
2387+
EXPECT_CALL(m_engineMock, startBackdropScripts(stage.costumeAt(6)->broadcast()));
2388+
EXPECT_CALL(m_engineMock, broadcastByPtrRunning(stage.costumeAt(6)->broadcast())).WillOnce(Return(false));
2389+
EXPECT_CALL(rng, randint).Times(0);
2390+
vm.reset();
2391+
vm.run();
2392+
2393+
ASSERT_EQ(vm.registerCount(), 0);
2394+
ASSERT_EQ(stage.costumeIndex(), 6);
2395+
2396+
LooksBlocks::rng = RandomGenerator::instance().get();
23182397
}
23192398

23202399
TEST_F(LooksBlocksTest, NextBackdrop)

0 commit comments

Comments
 (0)