Skip to content

Commit 441f66e

Browse files
author
devendrapatil
committed
Add conditional compilation of skeleton tests for typed memory usage
1 parent 0d8eb93 commit 441f66e

2 files changed

Lines changed: 39 additions & 0 deletions

File tree

‎score/mw/com/impl/bindings/lola/BUILD‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1060,6 +1060,10 @@ cc_unit_test(
10601060
features = COMPILER_WARNING_FEATURES + [
10611061
"aborts_upon_exception",
10621062
],
1063+
local_defines = select({
1064+
"@score_baselibs//score/analysis/tracing/generic_trace_library/flags:require_typed_memory": ["REQUIRE_TYPED_MEMORY"],
1065+
"//conditions:default": [],
1066+
}),
10631067
deps = [
10641068
":skeleton",
10651069
"//score/mw/com/impl/bindings/lola/test:skeleton_test_resources",

‎score/mw/com/impl/bindings/lola/skeleton_test.cpp‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@ TEST_F(SkeletonTestSharedMemoryCreationFixture, PrepareServiceOfferFailsOnShmCre
252252
skeleton_->PrepareOffer(events_, fields_, std::move(kEmptyRegisterShmObjectTraceCallback)).has_value());
253253
}
254254

255+
#ifdef REQUIRE_TYPED_MEMORY
255256
TEST_F(SkeletonTestSharedMemoryCreationFixture, PrepareServiceOfferWithTraceCallback)
256257
{
257258
RecordProperty("Verifies", "SCR-19178261, SCR-18166404");
@@ -319,6 +320,40 @@ TEST_F(SkeletonTestSharedMemoryCreationFixture, PrepareServiceOfferWithTraceCall
319320
EXPECT_TRUE(
320321
skeleton_->PrepareOffer(events_, fields_, register_shm_object_trace_callback.AsStdFunction()).has_value());
321322
}
323+
#else
324+
TEST_F(SkeletonTestSharedMemoryCreationFixture, PrepareServiceOfferWithTraceCallbackWhenTypedMemoryIsNotRequired)
325+
{
326+
RecordProperty("Verifies", "SCR-19178261, SCR-18166404");
327+
RecordProperty("Description",
328+
"Checks whether trace registration is still performed for the DATA shm-object when typed-memory "
329+
"support is not required by the build configuration.");
330+
RecordProperty("TestType", "Requirements-based test");
331+
RecordProperty("DerivationTechnique", "Analysis of requirements");
332+
333+
using namespace memory::shared;
334+
335+
MockFunction<void(std::string_view, impl::ServiceElementType, ISharedMemoryResource::FileDescriptor, void*)>
336+
register_shm_object_trace_callback{};
337+
338+
// Given a Skeleton constructed from a valid identifier referencing a QM deployment
339+
InitialiseSkeleton(GetValidInstanceIdentifier()).WithNoConnectedProxy();
340+
341+
EXPECT_CALL(*data_shared_memory_resource_mock_, IsShmInTypedMemory()).Times(0);
342+
EXPECT_CALL(*data_shared_memory_resource_mock_, GetFileDescriptor())
343+
.WillOnce(Return(kDummyShmObjectFileDescriptor));
344+
EXPECT_CALL(*data_shared_memory_resource_mock_, getBaseAddress()).WillOnce(Return(kDummyShmObjectBaseAddress));
345+
346+
EXPECT_CALL(register_shm_object_trace_callback,
347+
Call(tracing::TracingRuntime::kDummyElementNameForShmRegisterCallback,
348+
tracing::TracingRuntime::kDummyElementTypeForShmRegisterCallback,
349+
kDummyShmObjectFileDescriptor,
350+
kDummyShmObjectBaseAddress));
351+
352+
// Then PrepareOffer will succeed
353+
EXPECT_TRUE(
354+
skeleton_->PrepareOffer(events_, fields_, register_shm_object_trace_callback.AsStdFunction()).has_value());
355+
}
356+
#endif
322357

323358
using SkeletonPrepareOfferFixture = SkeletonTestMockedSharedMemoryFixture;
324359
TEST_F(SkeletonPrepareOfferFixture, PrepareOfferCreatesSharedMemoryIfOpeningAndFLockingServiceUsageMarkerFileSucceeds)

0 commit comments

Comments
 (0)