@@ -377,8 +377,6 @@ TEST(EngineTest, WhenKeyPressed)
377
377
Project p (" when_key_pressed.sb3" );
378
378
ASSERT_TRUE (p.load ());
379
379
380
- p.run ();
381
-
382
380
auto engine = p.engine ();
383
381
384
382
Stage *stage = engine->stage ();
@@ -400,12 +398,12 @@ TEST(EngineTest, WhenKeyPressed)
400
398
401
399
// space
402
400
engine->setKeyState (" space" , true );
403
- p. run ();
401
+ engine-> step ();
404
402
405
403
ASSERT_VAR (stage, " space_pressed" );
406
404
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
407
405
engine->setKeyState (" space" , false );
408
- p. run ();
406
+ engine-> step ();
409
407
410
408
ASSERT_VAR (stage, " space_pressed" );
411
409
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
@@ -422,12 +420,12 @@ TEST(EngineTest, WhenKeyPressed)
422
420
423
421
// right arrow
424
422
engine->setKeyState (" right arrow" , true );
425
- p. run ();
423
+ engine-> step ();
426
424
427
425
ASSERT_VAR (stage, " right_arrow_pressed" );
428
426
ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 1 );
429
427
engine->setKeyState (" right arrow" , false );
430
- p. run ();
428
+ engine-> step ();
431
429
432
430
ASSERT_VAR (stage, " space_pressed" );
433
431
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
@@ -444,12 +442,12 @@ TEST(EngineTest, WhenKeyPressed)
444
442
445
443
// right arrow - key object
446
444
engine->setKeyState (KeyEvent (" right arrow" ), true );
447
- p. run ();
445
+ engine-> step ();
448
446
449
447
ASSERT_VAR (stage, " right_arrow_pressed" );
450
448
ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 2 );
451
449
engine->setKeyState (" right arrow" , false );
452
- p. run ();
450
+ engine-> step ();
453
451
454
452
ASSERT_VAR (stage, " space_pressed" );
455
453
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
@@ -466,12 +464,12 @@ TEST(EngineTest, WhenKeyPressed)
466
464
467
465
// any key
468
466
engine->setAnyKeyPressed (true );
469
- p. run ();
467
+ engine-> step ();
470
468
471
469
ASSERT_VAR (stage, " any_key_pressed" );
472
470
ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 4 );
473
471
engine->setAnyKeyPressed (false );
474
- p. run ();
472
+ engine-> step ();
475
473
476
474
ASSERT_VAR (stage, " space_pressed" );
477
475
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
@@ -488,12 +486,12 @@ TEST(EngineTest, WhenKeyPressed)
488
486
489
487
// a
490
488
engine->setKeyState (" a" , true );
491
- p. run ();
489
+ engine-> step ();
492
490
493
491
ASSERT_VAR (stage, " a_pressed" );
494
492
ASSERT_EQ (GET_VAR (stage, " a_pressed" )->value ().toInt (), 1 );
495
493
engine->setKeyState (" a" , false );
496
- p. run ();
494
+ engine-> step ();
497
495
498
496
ASSERT_VAR (stage, " space_pressed" );
499
497
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
@@ -510,12 +508,12 @@ TEST(EngineTest, WhenKeyPressed)
510
508
511
509
// x
512
510
engine->setKeyState (" x" , true );
513
- p. run ();
511
+ engine-> step ();
514
512
515
513
ASSERT_VAR (stage, " x_pressed" );
516
514
ASSERT_EQ (GET_VAR (stage, " x_pressed" )->value ().toInt (), 1 );
517
515
engine->setKeyState (" x" , false );
518
- p. run ();
516
+ engine-> step ();
519
517
520
518
ASSERT_VAR (stage, " space_pressed" );
521
519
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
@@ -532,12 +530,12 @@ TEST(EngineTest, WhenKeyPressed)
532
530
533
531
// 4
534
532
engine->setKeyState (" 4" , true );
535
- p. run ();
533
+ engine-> step ();
536
534
537
535
ASSERT_VAR (stage, " 4_pressed" );
538
536
ASSERT_EQ (GET_VAR (stage, " 4_pressed" )->value ().toInt (), 1 );
539
537
engine->setKeyState (" 4" , false );
540
- p. run ();
538
+ engine-> step ();
541
539
542
540
ASSERT_VAR (stage, " space_pressed" );
543
541
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
@@ -555,15 +553,15 @@ TEST(EngineTest, WhenKeyPressed)
555
553
// multiple
556
554
engine->setKeyState (" space" , true );
557
555
engine->setKeyState (" x" , true );
558
- p. run ();
556
+ engine-> step ();
559
557
560
558
ASSERT_VAR (stage, " space_pressed" );
561
559
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 2 );
562
560
ASSERT_VAR (stage, " x_pressed" );
563
561
ASSERT_EQ (GET_VAR (stage, " x_pressed" )->value ().toInt (), 2 );
564
562
engine->setKeyState (" space" , false );
565
563
engine->setKeyState (" x" , false );
566
- p. run ();
564
+ engine-> step ();
567
565
568
566
ASSERT_VAR (stage, " space_pressed" );
569
567
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 2 );
@@ -1392,17 +1390,42 @@ TEST(EngineTest, ResetRunningHats)
1392
1390
engine->setKeyState (KeyEvent (KeyEvent::Type::Space), false );
1393
1391
engine->setKeyState (KeyEvent (KeyEvent::Type::Space), true );
1394
1392
engine->setKeyState (KeyEvent (KeyEvent::Type::Space), false );
1395
- engine->run ();
1393
+ engine->step ();
1396
1394
1397
1395
ASSERT_VAR (stage, " test" );
1398
1396
ASSERT_EQ (GET_VAR (stage, " test" )->value ().toInt (), 1 );
1399
1397
1400
- engine->run ();
1398
+ engine->step ();
1401
1399
ASSERT_EQ (GET_VAR (stage, " test" )->value ().toInt (), 1 );
1402
1400
1403
1401
engine->setKeyState (KeyEvent (KeyEvent::Type::Space), true );
1404
1402
engine->setKeyState (KeyEvent (KeyEvent::Type::Space), false );
1405
- engine->run ();
1403
+ engine->step ();
1406
1404
1407
1405
ASSERT_EQ (GET_VAR (stage, " test" )->value ().toInt (), 2 );
1408
1406
}
1407
+
1408
+ TEST (EngineTest, StopBeforeStarting)
1409
+ {
1410
+ // Regtest for #394
1411
+ Project p (" regtest_projects/394_stop_before_starting.sb3" );
1412
+ ASSERT_TRUE (p.load ());
1413
+
1414
+ auto engine = p.engine ();
1415
+
1416
+ Stage *stage = engine->stage ();
1417
+ ASSERT_TRUE (stage);
1418
+
1419
+ engine->broadcast (0 );
1420
+ engine->step ();
1421
+
1422
+ ASSERT_VAR (stage, " test" );
1423
+ ASSERT_FALSE (GET_VAR (stage, " test" )->value ().toBool ());
1424
+
1425
+ GET_VAR (stage, " test" )->setValue (true );
1426
+ engine->broadcast (0 );
1427
+ engine->start ();
1428
+ engine->step ();
1429
+ ASSERT_VAR (stage, " test" );
1430
+ ASSERT_TRUE (GET_VAR (stage, " test" )->value ().toBool ());
1431
+ }
0 commit comments