Skip to content

Commit 1f10e23

Browse files
mw::com: fix tests for method enabled_ bool change
1 parent 44465aa commit 1f10e23

8 files changed

Lines changed: 55 additions & 77 deletions

score/mw/com/impl/bindings/lola/proxy_method_handling_test.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ const LolaServiceInstanceDeployment kLolaServiceInstanceDeploymentWithMethods{
106106
LolaServiceInstanceId{kLolaInstanceId},
107107
{},
108108
{},
109-
{{kDummyMethodName0, LolaMethodInstanceDeployment{kDummyQueueSize0}},
110-
{kDummyMethodName1, LolaMethodInstanceDeployment{kDummyQueueSize1}},
111-
{kDummyMethodName2, LolaMethodInstanceDeployment{kDummyQueueSize2}}}};
109+
{{kDummyMethodName0, LolaMethodInstanceDeployment{kDummyQueueSize0, true}},
110+
{kDummyMethodName1, LolaMethodInstanceDeployment{kDummyQueueSize1, true}},
111+
{kDummyMethodName2, LolaMethodInstanceDeployment{kDummyQueueSize2, true}}}};
112112
const LolaServiceTypeDeployment kLolaServiceTypeDeploymentWithMethods{
113113
kLolaServiceId,
114114
{},

score/mw/com/impl/bindings/lola/test/skeleton_test_resources.h

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -255,16 +255,17 @@ static const ServiceInstanceDeployment kValidInstanceDeploymentWithField{
255255

256256
static const ServiceInstanceDeployment kValidInstanceDeploymentWithMethods{
257257
kFooService,
258-
CreateLolaServiceInstanceDeployment(kDefaultLolaInstanceId,
259-
{},
260-
{},
261-
{{test::kFooMethodName, LolaMethodInstanceDeployment{kFooMethodQueueSize}},
262-
{test::kDumbMethodName, LolaMethodInstanceDeployment{kDumbMethodQueueSize}}},
263-
{kAllowedQmMethodConsumer},
264-
{},
265-
kConfiguredDeploymentShmSize,
266-
kConfiguredDeploymentControlAsilBShmSize,
267-
kConfiguredDeploymentControlQmShmSize),
258+
CreateLolaServiceInstanceDeployment(
259+
kDefaultLolaInstanceId,
260+
{},
261+
{},
262+
{{test::kFooMethodName, LolaMethodInstanceDeployment{kFooMethodQueueSize, true}},
263+
{test::kDumbMethodName, LolaMethodInstanceDeployment{kDumbMethodQueueSize, true}}},
264+
{kAllowedQmMethodConsumer},
265+
{},
266+
kConfiguredDeploymentShmSize,
267+
kConfiguredDeploymentControlAsilBShmSize,
268+
kConfiguredDeploymentControlQmShmSize),
268269
QualityType::kASIL_QM,
269270
kFooInstanceSpecifier};
270271

@@ -301,16 +302,17 @@ static const ServiceInstanceDeployment kValidAsilInstanceDeploymentWithField{
301302

302303
static const ServiceInstanceDeployment kValidAsilInstanceDeploymentWithMethods{
303304
kFooService,
304-
CreateLolaServiceInstanceDeployment(kDefaultLolaInstanceId,
305-
{},
306-
{},
307-
{{test::kFooMethodName, LolaMethodInstanceDeployment{kFooMethodQueueSize}},
308-
{test::kDumbMethodName, LolaMethodInstanceDeployment{kDumbMethodQueueSize}}},
309-
{},
310-
{kAllowedAsilBMethodConsumer},
311-
kConfiguredDeploymentShmSize,
312-
kConfiguredDeploymentControlAsilBShmSize,
313-
kConfiguredDeploymentControlQmShmSize),
305+
CreateLolaServiceInstanceDeployment(
306+
kDefaultLolaInstanceId,
307+
{},
308+
{},
309+
{{test::kFooMethodName, LolaMethodInstanceDeployment{kFooMethodQueueSize, true}},
310+
{test::kDumbMethodName, LolaMethodInstanceDeployment{kDumbMethodQueueSize, true}}},
311+
{},
312+
{kAllowedAsilBMethodConsumer},
313+
kConfiguredDeploymentShmSize,
314+
kConfiguredDeploymentControlAsilBShmSize,
315+
kConfiguredDeploymentControlQmShmSize),
314316
QualityType::kASIL_B,
315317
kFooInstanceSpecifier};
316318

score/mw/com/impl/configuration/config_parser_methods_test.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -694,8 +694,7 @@ TEST_F(ConfigParserFixture, MethodCanBeExplicitlyDisabled)
694694
const auto deployments =
695695
config.GetServiceInstances().at(InstanceSpecifier::Create(std::string{"abc/abc/TirePressurePort"}).value());
696696
const auto& lola_deployment = std::get<LolaServiceInstanceDeployment>(deployments.bindingInfo_);
697-
ASSERT_TRUE(lola_deployment.methods_.at("SetPressure").enabled_.has_value());
698-
EXPECT_FALSE(lola_deployment.methods_.at("SetPressure").enabled_.value());
697+
EXPECT_FALSE(lola_deployment.methods_.at("SetPressure").enabled_);
699698
}
700699

701700
TEST_F(ConfigParserFixture, MethodCanBeExplicitlyEnabled)
@@ -761,8 +760,7 @@ TEST_F(ConfigParserFixture, MethodCanBeExplicitlyEnabled)
761760
const auto deployments =
762761
config.GetServiceInstances().at(InstanceSpecifier::Create(std::string{"abc/abc/TirePressurePort"}).value());
763762
const auto& lola_deployment = std::get<LolaServiceInstanceDeployment>(deployments.bindingInfo_);
764-
ASSERT_TRUE(lola_deployment.methods_.at("SetPressure").enabled_.has_value());
765-
EXPECT_TRUE(lola_deployment.methods_.at("SetPressure").enabled_.value());
763+
EXPECT_TRUE(lola_deployment.methods_.at("SetPressure").enabled_);
766764
}
767765

768766
} // namespace

score/mw/com/impl/configuration/config_parser_test.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,7 @@ TEST_F(ConfigParserFixture, ParseExampleJson)
129129
1);
130130
EXPECT_EQ(secondDeploymentInfo.fields_.at("CurrentTemperatureFrontLeft").use_get_if_available_, true);
131131
EXPECT_EQ(secondDeploymentInfo.fields_.at("CurrentTemperatureFrontLeft").use_set_if_available_, true);
132-
ASSERT_TRUE(secondDeploymentInfo.methods_.at("SetPressure").enabled_.has_value());
133-
EXPECT_TRUE(secondDeploymentInfo.methods_.at("SetPressure").enabled_.value());
132+
EXPECT_TRUE(secondDeploymentInfo.methods_.at("SetPressure").enabled_);
134133

135134
const auto service_deployment = config.GetServiceTypes().at(deployments.service_);
136135
const auto* const lola_service_type_deployment =

score/mw/com/impl/configuration/lola_method_instance_deployment_test.cpp

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414

1515
#include <gtest/gtest.h>
1616

17+
#include <score/assert_support.hpp>
18+
#include <score/utility.hpp>
19+
1720
#include <cstdint>
1821
#include <limits>
1922

@@ -25,8 +28,8 @@ namespace
2528
TEST(LolaMethodInstanceDeploymentTest, EqualityOperatorWithSameQueueSize)
2629
{
2730
// Given two LolaMethodInstanceDeployments with the same queue size
28-
LolaMethodInstanceDeployment unit1{50U};
29-
LolaMethodInstanceDeployment unit2{50U};
31+
LolaMethodInstanceDeployment unit1{50U, true};
32+
LolaMethodInstanceDeployment unit2{50U, true};
3033

3134
// When comparing them
3235
// Then they should be equal
@@ -36,8 +39,8 @@ TEST(LolaMethodInstanceDeploymentTest, EqualityOperatorWithSameQueueSize)
3639
TEST(LolaMethodInstanceDeploymentTest, EqualityOperatorWithDifferentQueueSize)
3740
{
3841
// Given two LolaMethodInstanceDeployments with different queue sizes
39-
LolaMethodInstanceDeployment unit1{10U};
40-
LolaMethodInstanceDeployment unit2{20U};
42+
LolaMethodInstanceDeployment unit1{10U, true};
43+
LolaMethodInstanceDeployment unit2{20U, true};
4144

4245
// When comparing them
4346
// Then they should not be equal
@@ -47,8 +50,8 @@ TEST(LolaMethodInstanceDeploymentTest, EqualityOperatorWithDifferentQueueSize)
4750
TEST(LolaMethodInstanceDeploymentTest, DefaultInstancesAreEqual)
4851
{
4952
// Given two LolaMethodInstanceDeployments constructed with std::nullopt
50-
LolaMethodInstanceDeployment unit1{std::nullopt};
51-
LolaMethodInstanceDeployment unit2{std::nullopt};
53+
LolaMethodInstanceDeployment unit1{std::nullopt, true};
54+
LolaMethodInstanceDeployment unit2{std::nullopt, true};
5255

5356
// When comparing them
5457
// Then they should be equal
@@ -58,30 +61,33 @@ TEST(LolaMethodInstanceDeploymentTest, DefaultInstancesAreEqual)
5861
TEST(LolaMethodInstanceDeploymentTest, MaxQueueSize)
5962
{
6063
// Given a LolaMethodInstanceDeployment with maximum queue size
61-
LolaMethodInstanceDeployment unit{std::numeric_limits<LolaMethodInstanceDeployment::QueueSize>::max()};
64+
LolaMethodInstanceDeployment unit{std::numeric_limits<LolaMethodInstanceDeployment::QueueSize>::max(), true};
6265

6366
// Then the queue size should match
6467
EXPECT_EQ(unit.queue_size_, std::numeric_limits<LolaMethodInstanceDeployment::QueueSize>::max());
6568
}
6669

67-
TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithQueueSize)
70+
TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithQueueSizeAndEnabledFlag)
6871
{
6972
// Given a JSON object with queueSize
7073
const LolaMethodInstanceDeployment::QueueSize queue_size{20U};
7174
score::json::Object json_object{};
7275
json_object["queueSize"] = score::json::Any{queue_size};
76+
json_object["use"] = score::json::Any{true};
7377

7478
// When creating from JSON
7579
auto unit = LolaMethodInstanceDeployment::CreateFromJson(json_object);
7680

7781
// Then the queue size should match the value from JSON
7882
EXPECT_EQ(unit.queue_size_, queue_size);
83+
EXPECT_TRUE(unit.enabled_);
7984
}
8085

8186
TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithoutQueueSizeResultsInNullopt)
8287
{
8388
// Given an empty JSON object
8489
score::json::Object json_object{};
90+
json_object["use"] = score::json::Any{true};
8591

8692
// When creating from JSON
8793
auto unit = LolaMethodInstanceDeployment::CreateFromJson(json_object);
@@ -91,19 +97,16 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithoutQueueSi
9197
EXPECT_EQ(unit.queue_size_, std::nullopt);
9298
}
9399

94-
TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithoutEnabledLeavesEnabledUnset)
100+
TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithoutEnabledFlagTerminates)
95101
{
96102
// Given a JSON object without enabled
97103
const LolaMethodInstanceDeployment::QueueSize queue_size{20U};
98104
score::json::Object json_object{};
99105
json_object["queueSize"] = score::json::Any{queue_size};
100106

101107
// When creating from JSON
102-
auto unit = LolaMethodInstanceDeployment::CreateFromJson(json_object);
103-
104-
// Then the method instance should keep enabled unset
105-
EXPECT_FALSE(unit.enabled_.has_value());
106-
EXPECT_EQ(unit.enabled_, std::nullopt);
108+
// Then we terminate because the enabled flag is required.
109+
SCORE_LANGUAGE_FUTURECPP_EXPECT_CONTRACT_VIOLATED(LolaMethodInstanceDeployment::CreateFromJson(json_object));
107110
}
108111

109112
TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithEnabledFalseDisablesMethod)
@@ -116,8 +119,7 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithEnabledFal
116119
auto unit = LolaMethodInstanceDeployment::CreateFromJson(json_object);
117120

118121
// Then the method instance should be disabled
119-
ASSERT_TRUE(unit.enabled_.has_value());
120-
EXPECT_FALSE(unit.enabled_.value());
122+
EXPECT_FALSE(unit.enabled_);
121123
}
122124

123125
TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithEnabledTrueEnablesMethod)
@@ -130,8 +132,7 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, CreateFromJsonWithEnabledTru
130132
auto unit = LolaMethodInstanceDeployment::CreateFromJson(json_object);
131133

132134
// Then the method instance should be enabled
133-
ASSERT_TRUE(unit.enabled_.has_value());
134-
EXPECT_TRUE(unit.enabled_.value());
135+
EXPECT_TRUE(unit.enabled_);
135136
}
136137

137138
TEST(LolaMethodInstanceDeploymentSerializationTest, SerializeAndDeserializePreservesQueueSize)
@@ -140,6 +141,8 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, SerializeAndDeserializePrese
140141
const LolaMethodInstanceDeployment::QueueSize queue_size{100U};
141142
score::json::Object json_object{};
142143
json_object["queueSize"] = score::json::Any{queue_size};
144+
json_object["use"] = score::json::Any{true};
145+
143146
auto original_unit = LolaMethodInstanceDeployment::CreateFromJson(json_object);
144147

145148
// When serializing and deserializing
@@ -157,6 +160,8 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, SerializeIncludesQueueSize)
157160
const LolaMethodInstanceDeployment::QueueSize queue_size{42U};
158161
score::json::Object json_object{};
159162
json_object["queueSize"] = score::json::Any{queue_size};
163+
json_object["use"] = score::json::Any{true};
164+
160165
auto unit = LolaMethodInstanceDeployment::CreateFromJson(json_object);
161166

162167
// When serializing
@@ -180,8 +185,7 @@ TEST(LolaMethodInstanceDeploymentSerializationTest, SerializeAndDeserializePrese
180185
auto reconstructed_unit = LolaMethodInstanceDeployment::CreateFromJson(serialized);
181186

182187
// Then the use state should be preserved
183-
ASSERT_TRUE(reconstructed_unit.enabled_.has_value());
184-
EXPECT_FALSE(reconstructed_unit.enabled_.value());
188+
EXPECT_FALSE(reconstructed_unit.enabled_);
185189
EXPECT_EQ(reconstructed_unit, original_unit);
186190
}
187191

score/mw/com/impl/configuration/test/configuration_test_resources.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,13 @@ LolaFieldInstanceDeployment MakeLolaFieldInstanceDeployment(
6161

6262
LolaMethodInstanceDeployment MakeDefaultLolaMethodInstanceDeployment() noexcept
6363
{
64-
return LolaMethodInstanceDeployment{std::nullopt};
64+
return LolaMethodInstanceDeployment{std::nullopt, true};
6565
}
6666

6767
LolaMethodInstanceDeployment MakeLolaMethodInstanceDeployment(
6868
const std::optional<LolaMethodInstanceDeployment::QueueSize> queue_size) noexcept
6969
{
70-
const LolaMethodInstanceDeployment unit{queue_size};
70+
const LolaMethodInstanceDeployment unit{queue_size, true};
7171
return unit;
7272
}
7373

score/mw/com/impl/plumbing/proxy_method_binding_factory_test.cpp

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -136,31 +136,6 @@ TYPED_TEST(ProxyMethodFactoryTypedFixture, ConstructingLolaMethodBindingWhichIsD
136136
EXPECT_EQ(proxy_method.value(), nullptr);
137137
}
138138

139-
TYPED_TEST(ProxyMethodFactoryTypedFixture, ConstructingLolaMethodBindingWithEmptyEnabledFieldTerminates)
140-
{
141-
// Given a handle to a valid lola deployment which contains a method with empty Enabled field
142-
const LolaServiceInstanceDeployment lola_service_instance_deployment_with_empty_enabled_method{
143-
LolaServiceInstanceId{kInstanceId},
144-
{},
145-
{},
146-
{{kDummyMethodName, LolaMethodInstanceDeployment{kQueueSize, std::nullopt}}}};
147-
ConfigurationStore config_store_with_empty_enabled_method{
148-
kInstanceSpecifier,
149-
make_ServiceIdentifierType("/a/service/somewhere/out/there", 13U, 37U),
150-
kQualityType,
151-
kLolaServiceTypeDeployment,
152-
lola_service_instance_deployment_with_empty_enabled_method};
153-
const auto handle = config_store_with_empty_enabled_method.GetHandle();
154-
this->InitialiseProxyWithConstructor(handle.GetInstanceIdentifier());
155-
156-
// when creating a ProxyMethod using MethodBindingFactory
157-
// Then the program terminates
158-
using MethodSignature = TypeParam;
159-
EXPECT_DEATH(score::cpp::ignore = ProxyMethodBindingFactory<MethodSignature>::Create(
160-
handle, *this->proxy_, kDummyMethodName, MethodType::kMethod),
161-
".*");
162-
}
163-
164139
TYPED_TEST(ProxyMethodFactoryTypedFixture, ConstructingLolaMethodBindingWithInstanceDeploymentWithoutMethodTerminates)
165140
{
166141
// Given a handle to a valid lola deployment which does not contain the method

score/mw/com/impl/plumbing/skeleton_method_binding_factory_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const LolaServiceInstanceDeployment kLolaServiceInstanceDeployment{
4444
LolaServiceInstanceId{kInstanceId},
4545
{},
4646
{},
47-
{{kDummyMethodName, LolaMethodInstanceDeployment{kQueueSize}}}};
47+
{{kDummyMethodName, LolaMethodInstanceDeployment{kQueueSize, true}}}};
4848

4949
const LolaServiceTypeDeployment kLolaServiceTypeDeployment{kServiceId, {}, {}, {{kDummyMethodName, kDummyMethodId}}};
5050

0 commit comments

Comments
 (0)