Files
yoga/tests/util/TestUtil.cpp
Nick Gerleman 660edcec20 C++ 17 style nested namespaces (#1326)
Summary:
X-link: https://github.com/facebook/react-native/pull/38304

Pull Request resolved: https://github.com/facebook/yoga/pull/1326

For better readability

Reviewed By: christophpurrer

Differential Revision: D47384926

fbshipit-source-id: 2f60d50a185331b3624d45d1fc45f98d504b3034
2023-07-12 09:38:40 -07:00

63 lines
1.2 KiB
C++

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#include "TestUtil.h"
#include <yoga/YGNode.h>
#include <yoga/event/event.h>
namespace facebook::yoga::test {
int nodeInstanceCount = 0;
namespace {
void yogaEventSubscriber(
const YGNode& /*node*/,
Event::Type eventType,
const Event::Data& /*eventData*/) {
switch (eventType) {
case Event::NodeAllocation:
nodeInstanceCount++;
break;
case Event::NodeDeallocation:
nodeInstanceCount--;
break;
default:
break;
}
}
} // namespace
void TestUtil::startCountingNodes() {
nodeInstanceCount = 0;
Event::subscribe(yogaEventSubscriber);
}
int TestUtil::nodeCount() {
return nodeInstanceCount;
}
int TestUtil::stopCountingNodes() {
Event::reset();
auto prev = nodeInstanceCount;
nodeInstanceCount = 0;
return prev;
}
ScopedEventSubscription::ScopedEventSubscription(
std::function<Event::Subscriber>&& s) {
Event::subscribe(std::move(s));
}
ScopedEventSubscription::~ScopedEventSubscription() {
Event::reset();
}
} // namespace facebook::yoga::test