Skip to content

Commit 42af2e8

Browse files
committed
Guard owner_less graph changes
- Use breaking changes macro to guard new inheritance change to preserve ABI compatibility - Improve ownerless unit test to check both weak_object and normal object usage correctly - Revert changes to windows symbol dump (as no new symbols are now exported).
1 parent e8dd52f commit 42af2e8

File tree

3 files changed

+74
-42
lines changed

3 files changed

+74
-42
lines changed

sycl/include/sycl/ext/oneapi/experimental/graph.hpp

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,10 @@ class __SYCL_EXPORT dynamic_command_group {
238238
namespace detail {
239239
// Templateless modifiable command-graph base class.
240240
class __SYCL_EXPORT modifiable_command_graph
241-
: public sycl::detail::OwnerLessBase<modifiable_command_graph> {
241+
#ifdef __INTEL_PREVIEW_BREAKING_CHANGES
242+
: public sycl::detail::OwnerLessBase<modifiable_command_graph>
243+
#endif
244+
{
242245
public:
243246
/// Constructor.
244247
/// @param SyclContext Context to use for graph.
@@ -401,7 +404,10 @@ inline
401404

402405
// Templateless executable command-graph base class.
403406
class __SYCL_EXPORT executable_command_graph
404-
: public sycl::detail::OwnerLessBase<executable_command_graph> {
407+
#ifdef __INTEL_PREVIEW_BREAKING_CHANGES
408+
: public sycl::detail::OwnerLessBase<executable_command_graph>
409+
#endif
410+
{
405411
public:
406412
/// An executable command-graph is not user constructable.
407413
executable_command_graph() = delete;
@@ -459,6 +465,21 @@ class command_graph : public detail::modifiable_command_graph {
459465
const property_list &PropList = {})
460466
: modifiable_command_graph(SyclQueue, PropList) {}
461467

468+
// Temporary implementation of ext_oneapi_owner_before, shoudl be removed during
469+
// the next ABI break window.
470+
#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
471+
bool ext_oneapi_owner_before(
472+
const ext::oneapi::detail::weak_object_base<
473+
command_graph<graph_state::modifiable>> &Other) const noexcept {
474+
return this->impl.owner_before(
475+
ext::oneapi::detail::getSyclWeakObjImpl(Other));
476+
}
477+
bool ext_oneapi_owner_before(
478+
const command_graph<graph_state::modifiable> &Other) const noexcept {
479+
return this->impl.owner_before(sycl::detail::getSyclObjImpl(Other));
480+
}
481+
#endif
482+
462483
private:
463484
/// Constructor used internally by the runtime.
464485
/// @param Impl Detail implementation class to construct object with.
@@ -472,6 +493,21 @@ class command_graph : public detail::modifiable_command_graph {
472493
template <>
473494
class command_graph<graph_state::executable>
474495
: public detail::executable_command_graph {
496+
public:
497+
// Temporary implementation of ext_oneapi_owner_before, shoudl be removed during
498+
// the next ABI break window.
499+
#ifndef __INTEL_PREVIEW_BREAKING_CHANGES
500+
bool ext_oneapi_owner_before(
501+
const ext::oneapi::detail::weak_object_base<
502+
command_graph<graph_state::executable>> &Other) const noexcept {
503+
return this->impl.owner_before(
504+
ext::oneapi::detail::getSyclWeakObjImpl(Other));
505+
}
506+
bool ext_oneapi_owner_before(
507+
const command_graph<graph_state::executable> &Other) const noexcept {
508+
return this->impl.owner_before(sycl::detail::getSyclObjImpl(Other));
509+
}
510+
#endif
475511
protected:
476512
friend command_graph<graph_state::executable>
477513
detail::modifiable_command_graph::finalize(const sycl::property_list &) const;

sycl/test/abi/sycl_symbols_windows.dump

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,9 @@
280280
??0SampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@$$QEAV0123@@Z
281281
??0SampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@AEBV0123@@Z
282282
??0SampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@V?$range@$02@23@PEAXHHV?$id@$02@23@W4image_channel_type@23@W4image_channel_order@23@Uimage_sampler@23@AEBVproperty_list@23@@Z
283-
??0SubmissionInfo@detail@_V1@sycl@@QEAA@$$QEAV0123@@Z
284-
??0SubmissionInfo@detail@_V1@sycl@@QEAA@AEBV0123@@Z
285283
??0SubmissionInfo@detail@_V1@sycl@@QEAA@XZ
284+
??0SubmissionInfo@detail@_V1@sycl@@QEAA@AEBV0123@@Z
285+
??0SubmissionInfo@detail@_V1@sycl@@QEAA@$$QEAV0123@@Z
286286
??0UnsampledImageAccessorBaseHost@detail@_V1@sycl@@IEAA@AEBV?$shared_ptr@VUnsampledImageAccessorImplHost@detail@_V1@sycl@@@std@@@Z
287287
??0UnsampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@$$QEAV0123@@Z
288288
??0UnsampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@AEBV0123@@Z
@@ -328,12 +328,18 @@
328328
??0device_image_plain@detail@_V1@sycl@@QEAA@AEBV?$shared_ptr@Vdevice_image_impl@detail@_V1@sycl@@@std@@@Z
329329
??0device_selector@_V1@sycl@@QEAA@AEBV012@@Z
330330
??0device_selector@_V1@sycl@@QEAA@XZ
331-
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@$$QEAV012345@@Z
332-
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV012345@@Z
333-
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV?$command_graph@$0A@@12345@AEBV?$vector@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@V?$allocator@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@@2@@std@@@Z
334331
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@$$QEAV0123456@@Z
335332
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV0123456@@Z
336333
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@V?$command_graph@$0A@@23456@_KPEBX@Z
334+
?get_active_cgf@dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEBA_KXZ
335+
??4dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV012345@$$QEAV012345@@Z
336+
?addImpl@modifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@IEAA?AVnode@34567@AEAVdynamic_command_group@34567@AEBV?$vector@Vnode@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Vnode@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@@Z
337+
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV?$command_graph@$0A@@12345@AEBV?$vector@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@V?$allocator@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@@2@@std@@@Z
338+
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@$$QEAV012345@@Z
339+
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV012345@@Z
340+
?set_active_cgf@dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAX_K@Z
341+
??1dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
342+
??4dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV012345@AEBV012345@@Z
337343
??0event@_V1@sycl@@AEAA@V?$shared_ptr@Vevent_impl@detail@_V1@sycl@@@std@@@Z
338344
??0event@_V1@sycl@@QEAA@$$QEAV012@@Z
339345
??0event@_V1@sycl@@QEAA@AEBV012@@Z
@@ -471,7 +477,6 @@
471477
??1device@_V1@sycl@@QEAA@XZ
472478
??1device_image_plain@detail@_V1@sycl@@QEAA@XZ
473479
??1device_selector@_V1@sycl@@UEAA@XZ
474-
??1dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
475480
??1dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
476481
??1event@_V1@sycl@@QEAA@XZ
477482
??1exception@_V1@sycl@@UEAA@XZ
@@ -502,14 +507,10 @@
502507
??4?$OwnerLessBase@Vdevice@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
503508
??4?$OwnerLessBase@Vevent@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
504509
??4?$OwnerLessBase@Vevent@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
505-
??4?$OwnerLessBase@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
506-
??4?$OwnerLessBase@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
507510
??4?$OwnerLessBase@Vkernel@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
508511
??4?$OwnerLessBase@Vkernel@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
509512
??4?$OwnerLessBase@Vkernel_id@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
510513
??4?$OwnerLessBase@Vkernel_id@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
511-
??4?$OwnerLessBase@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
512-
??4?$OwnerLessBase@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
513514
??4?$OwnerLessBase@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
514515
??4?$OwnerLessBase@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
515516
??4?$OwnerLessBase@Vplatform@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
@@ -549,8 +550,6 @@
549550
??4device_image_plain@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
550551
??4device_image_plain@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
551552
??4device_selector@_V1@sycl@@QEAAAEAV012@AEBV012@@Z
552-
??4dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV012345@$$QEAV012345@@Z
553-
??4dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV012345@AEBV012345@@Z
554553
??4dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV0123456@$$QEAV0123456@@Z
555554
??4dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV0123456@AEBV0123456@@Z
556555
??4event@_V1@sycl@@QEAAAEAV012@$$QEAV012@@Z
@@ -647,8 +646,8 @@
647646
?GDBMethodsAnchor@UnsampledImageAccessorBaseHost@detail@_V1@sycl@@IEAAXXZ
648647
?GetRangeRoundingSettings@handler@_V1@sycl@@AEAAXAEA_K00@Z
649648
?HasAssociatedAccessor@handler@_V1@sycl@@AEBA_NPEAVAccessorImplHost@detail@23@W4target@access@23@@Z
650-
?PostProcessorFunc@SubmissionInfo@detail@_V1@sycl@@QEAAAEAV?$optional@V?$function@$$A6AX_N0AEAVevent@_V1@sycl@@@Z@std@@@234@XZ
651649
?PostProcessorFunc@SubmissionInfo@detail@_V1@sycl@@QEBAAEBV?$optional@V?$function@$$A6AX_N0AEAVevent@_V1@sycl@@@Z@std@@@234@XZ
650+
?PostProcessorFunc@SubmissionInfo@detail@_V1@sycl@@QEAAAEAV?$optional@V?$function@$$A6AX_N0AEAVevent@_V1@sycl@@@Z@std@@@234@XZ
652651
?PushBack@exception_list@_V1@sycl@@AEAAX$$QEAVexception_ptr@std@@@Z
653652
?PushBack@exception_list@_V1@sycl@@AEAAXAEBVexception_ptr@std@@@Z
654653
?RangeRoundingTrace@handler@_V1@sycl@@AEAA_NXZ
@@ -3700,7 +3699,6 @@
37003699
?addHostAccessorAndWait@detail@_V1@sycl@@YAXPEAVAccessorImplHost@123@@Z
37013700
?addHostSampledImageAccessorAndWait@detail@_V1@sycl@@YAXPEAVSampledImageAccessorImplHost@123@@Z
37023701
?addHostUnsampledImageAccessorAndWait@detail@_V1@sycl@@YAXPEAVUnsampledImageAccessorImplHost@123@@Z
3703-
?addImpl@modifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@IEAA?AVnode@34567@AEAVdynamic_command_group@34567@AEBV?$vector@Vnode@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Vnode@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@@Z
37043702
?addImpl@modifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@IEAA?AVnode@34567@AEBV?$vector@Vnode@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Vnode@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@@Z
37053703
?addImpl@modifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@IEAA?AVnode@34567@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@AEBV?$vector@Vnode@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Vnode@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@@Z
37063704
?addLifetimeSharedPtrStorage@handler@_V1@sycl@@AEAAXV?$shared_ptr@$$CBX@std@@@Z
@@ -3856,14 +3854,10 @@
38563854
?ext_oneapi_owner_before@?$OwnerLessBase@Vdevice@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVdevice@34@@Z
38573855
?ext_oneapi_owner_before@?$OwnerLessBase@Vevent@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vevent@_V1@sycl@@@2oneapi@ext@34@@Z
38583856
?ext_oneapi_owner_before@?$OwnerLessBase@Vevent@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVevent@34@@Z
3859-
?ext_oneapi_owner_before@?$OwnerLessBase@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@2oneapi@ext@34@@Z
3860-
?ext_oneapi_owner_before@?$OwnerLessBase@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVexecutable_command_graph@2experimental@oneapi@ext@34@@Z
38613857
?ext_oneapi_owner_before@?$OwnerLessBase@Vkernel@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vkernel@_V1@sycl@@@2oneapi@ext@34@@Z
38623858
?ext_oneapi_owner_before@?$OwnerLessBase@Vkernel@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVkernel@34@@Z
38633859
?ext_oneapi_owner_before@?$OwnerLessBase@Vkernel_id@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vkernel_id@_V1@sycl@@@2oneapi@ext@34@@Z
38643860
?ext_oneapi_owner_before@?$OwnerLessBase@Vkernel_id@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVkernel_id@34@@Z
3865-
?ext_oneapi_owner_before@?$OwnerLessBase@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@2oneapi@ext@34@@Z
3866-
?ext_oneapi_owner_before@?$OwnerLessBase@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVmodifiable_command_graph@2experimental@oneapi@ext@34@@Z
38673861
?ext_oneapi_owner_before@?$OwnerLessBase@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@2oneapi@ext@34@@Z
38683862
?ext_oneapi_owner_before@?$OwnerLessBase@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVphysical_mem@experimental@oneapi@ext@34@@Z
38693863
?ext_oneapi_owner_before@?$OwnerLessBase@Vplatform@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vplatform@_V1@sycl@@@2oneapi@ext@34@@Z
@@ -4006,7 +4000,6 @@
40064000
?getType@handler@_V1@sycl@@AEBA?AW4CGType@detail@23@XZ
40074001
?getValueFromDynamicParameter@detail@_V1@sycl@@YAPEAXAEAVdynamic_parameter_base@1experimental@oneapi@ext@23@@Z
40084002
?get_access_mode@experimental@oneapi@ext@_V1@sycl@@YA?AW4address_access_mode@12345@PEBX_KAEBVcontext@45@@Z
4009-
?get_active_cgf@dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEBA_KXZ
40104003
?get_addressing_mode@sampler@_V1@sycl@@QEBA?AW4addressing_mode@23@XZ
40114004
?get_allocator_internal@buffer_plain@detail@_V1@sycl@@IEBAAEBV?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@XZ
40124005
?get_allocator_internal@image_plain@detail@_V1@sycl@@IEBAAEBV?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@XZ
@@ -4266,7 +4259,6 @@
42664259
?setType@handler@_V1@sycl@@AEAAXW4CGType@detail@23@@Z
42674260
?setUserFacingNodeType@handler@_V1@sycl@@AEAAXW4node_type@experimental@oneapi@ext@23@@Z
42684261
?set_access_mode@experimental@oneapi@ext@_V1@sycl@@YAXPEBX_KW4address_access_mode@12345@AEBVcontext@45@@Z
4269-
?set_active_cgf@dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAX_K@Z
42704262
?set_arg@handler@_V1@sycl@@QEAAXH$$QEAVraw_kernel_arg@experimental@oneapi@ext@23@@Z
42714263
?set_final_data_internal@buffer_plain@detail@_V1@sycl@@IEAAXAEBV?$function@$$A6AXAEBV?$function@$$A6AXPEAX@Z@std@@@Z@std@@@Z
42724264
?set_final_data_internal@buffer_plain@detail@_V1@sycl@@IEAAXXZ

sycl/unittests/Extensions/CommandGraph/CommandGraph.cpp

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,24 @@
1212
using namespace sycl;
1313
using namespace sycl::ext::oneapi;
1414

15+
// Helper function for testing weak_object and owner_less for different graph
16+
// types
17+
template <typename T>
18+
void TestGraphTypeInMaps(const T &Graph1, const T &Graph2) {
19+
weak_object<T> WeakGraph1 = Graph1;
20+
weak_object<T> WeakGraph2 = Graph2;
21+
22+
// Use the graph type directly in a map
23+
std::map<T, int, owner_less<T>> GraphMap;
24+
ASSERT_NO_THROW(GraphMap.insert({Graph1, 1}));
25+
ASSERT_NO_THROW(GraphMap.insert({Graph2, 2}));
26+
27+
// Use the weak_object graph type in a map
28+
std::map<weak_object<T>, int, owner_less<T>> WeakGraphMap;
29+
ASSERT_NO_THROW(WeakGraphMap.insert({WeakGraph1, 1}));
30+
ASSERT_NO_THROW(WeakGraphMap.insert({WeakGraph2, 2}));
31+
}
32+
1533
// Test creating and using ext::oneapi::weak_object and owner_less for
1634
// command_graph class in a map
1735
TEST_F(CommandGraphTest, OwnerLessGraph) {
@@ -20,30 +38,16 @@ TEST_F(CommandGraphTest, OwnerLessGraph) {
2038
experimental::command_graph<experimental::graph_state::modifiable>;
2139
using ExecutableGraphT =
2240
experimental::command_graph<experimental::graph_state::executable>;
41+
experimental::command_graph Graph2{Queue.get_context(), Dev};
2342

24-
// Test graph objects using the default template parameter
25-
weak_object<experimental::command_graph<>> DefaultWeakGraph = Graph;
26-
std::map<weak_object<experimental::command_graph<>>, int,
27-
owner_less<experimental::command_graph<>>>
28-
DefaultGraphMap;
29-
30-
ASSERT_NO_THROW(DefaultGraphMap.insert({DefaultWeakGraph, 1}));
43+
// Test the default template parameter command_graph explicitly
44+
TestGraphTypeInMaps<experimental::command_graph<>>(Graph, Graph2);
3145

32-
// Test graph objects in the modifiable state
33-
weak_object<ModifiableGraphT> WeakGraph = Graph;
34-
std::map<weak_object<ModifiableGraphT>, int, owner_less<ModifiableGraphT>>
35-
ModifiableGraphMap;
46+
TestGraphTypeInMaps<ModifiableGraphT>(Graph, Graph2);
3647

37-
ASSERT_NO_THROW(ModifiableGraphMap.insert({WeakGraph, 1}));
38-
39-
// Test graph objects in the executable state
4048
auto ExecGraph = Graph.finalize();
41-
42-
weak_object<ExecutableGraphT> WeakGraphExec = ExecGraph;
43-
std::map<weak_object<ExecutableGraphT>, int, owner_less<ExecutableGraphT>>
44-
ExecGraphMap;
45-
46-
ASSERT_NO_THROW(ExecGraphMap.insert({WeakGraphExec, 1}));
49+
auto ExecGraph2 = Graph2.finalize();
50+
TestGraphTypeInMaps<ExecutableGraphT>(ExecGraph, ExecGraph2);
4751
}
4852

4953
TEST_F(CommandGraphTest, AddNode) {

0 commit comments

Comments
 (0)