Marker for measure callbacks

Summary:
@public

Wraps measure callbacks with a marker.

Reviewed By: SidharthGuglani

Differential Revision: D13896745

fbshipit-source-id: d6e14fe93f666b06516be1aef7f8e1bfe45440a7
This commit is contained in:
David Aurelio
2019-02-01 03:31:12 -08:00
committed by Facebook Github Bot
parent 719fa3cca3
commit 0d026bd1a0
4 changed files with 66 additions and 12 deletions

View File

@@ -197,6 +197,20 @@ TEST_F(MarkerTest, layout_marker_has_max_measure_cache) {
(YGMarkerLayoutData{.layouts = 3, .measures = 3, .maxMeasureCache = 7}));
}
TEST_F(MarkerTest, measure_functions_get_wrapped) {
auto root = makeNode();
YGNodeSetMeasureFunc(
root.get(), [](YGNodeRef, float, YGMeasureMode, float, YGMeasureMode) {
return YGSize{};
});
calculateLayout(root);
auto& markerCookie = findLastMarker(YGMarkerMeasure);
ASSERT_EQ(markerCookie.start.marker, YGMarkerMeasure)
<< "have " << markerCookies.size() << " recorded markers";
}
void* MarkerTest::startMarker(
YGMarker marker,
YGNodeRef node,
@@ -218,6 +232,8 @@ void MarkerTest::endMarker(
case YGMarkerLayout:
cookie->end.markerData.layout = *marker::data<YGMarkerLayout>(data);
break;
case YGMarkerMeasure:
break;
};
}
@@ -245,6 +261,8 @@ const char* markerTypeName(YGMarker type) {
switch (type) {
case YGMarkerLayout:
return "YGMarkerLayout";
case YGMarkerMeasure:
return "YGMarkerMeasure";
}
}