Skip to content

Commit 708f065

Browse files
authored
Merge pull request CleverRaven#83312 from RenechCDDA/fix_veh_turret_random_failure
Clear faults after every test shot in vehicle_turret test
2 parents 678fb5b + 15408c3 commit 708f065

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

tests/vehicle_turrets_test.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <memory>
22
#include <set>
33
#include <string>
4+
#include <utility>
45
#include <vector>
56

67
#include "cata_catch.h"
@@ -39,6 +40,14 @@ static std::vector<const vpart_info *> all_turret_types()
3940
return res;
4041
}
4142

43+
static void clear_faults_from_vp( vehicle_part &vp )
44+
{
45+
// Just some small trickery to manipulate the const reference provided by get_base().
46+
item base_copy( vp.get_base() );
47+
base_copy.faults.clear();
48+
vp.set_base( std::move( base_copy ) );
49+
}
50+
4251
// Install, reload and fire every possible vehicle turret.
4352
TEST_CASE( "vehicle_turret", "[vehicle][gun][magazine]" )
4453
{
@@ -91,8 +100,10 @@ TEST_CASE( "vehicle_turret", "[vehicle][gun][magazine]" )
91100
}
92101
const bool default_ammo_is_RECYCLED = vp.get_base().ammo_effects().count(
93102
ammo_effect_RECYCLED ) > 0;
94-
CAPTURE( default_ammo_is_RECYCLED );
95-
INFO( "RECYCLED ammo can sometimes misfire and very rarely fail this test" );
103+
if( default_ammo_is_RECYCLED ) {
104+
CAPTURE( default_ammo_is_RECYCLED );
105+
INFO( "RECYCLED ammo can sometimes misfire and very rarely fail this test" );
106+
}
96107

97108
turret_data qry = veh->turret_query( vp );
98109
REQUIRE( qry );
@@ -105,6 +116,7 @@ TEST_CASE( "vehicle_turret", "[vehicle][gun][magazine]" )
105116
for( int attempt = 0; shots_fired == 0 && attempt < 3; attempt++ ) {
106117
shots_fired += qry.fire( player_character, &here, player_character.pos_bub() + point( qry.range(),
107118
0 ) );
119+
clear_faults_from_vp( vp );
108120
}
109121
CHECK( shots_fired > 0 );
110122

0 commit comments

Comments
 (0)