Remove yoga/internal/experiments #1195
@@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 <gtest/gtest.h>
|
|
||||||
#include <yoga/internal/experiments-inl.h>
|
|
||||||
|
|
||||||
using namespace facebook::yoga::internal;
|
|
||||||
|
|
||||||
struct YogaInternalTest : public testing::Test {
|
|
||||||
void SetUp() override;
|
|
||||||
};
|
|
||||||
|
|
||||||
TEST_F(YogaInternalTest, experiments_are_initially_disabled) {
|
|
||||||
ASSERT_EQ(isEnabled(Experiment::kDoubleMeasureCallbacks), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(YogaInternalTest, experiments_are_can_be_enabled) {
|
|
||||||
enable(Experiment::kDoubleMeasureCallbacks);
|
|
||||||
ASSERT_EQ(isEnabled(Experiment::kDoubleMeasureCallbacks), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(YogaInternalTest, experiments_are_can_be_disabled) {
|
|
||||||
enable(Experiment::kDoubleMeasureCallbacks);
|
|
||||||
disable(Experiment::kDoubleMeasureCallbacks);
|
|
||||||
|
|
||||||
ASSERT_EQ(isEnabled(Experiment::kDoubleMeasureCallbacks), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(YogaInternalTest, experiments_are_can_be_toggled_on) {
|
|
||||||
disable(Experiment::kDoubleMeasureCallbacks);
|
|
||||||
|
|
||||||
ASSERT_EQ(toggle(Experiment::kDoubleMeasureCallbacks), false);
|
|
||||||
ASSERT_EQ(isEnabled(Experiment::kDoubleMeasureCallbacks), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST_F(YogaInternalTest, experiments_are_can_be_toggled_off) {
|
|
||||||
enable(Experiment::kDoubleMeasureCallbacks);
|
|
||||||
|
|
||||||
ASSERT_EQ(toggle(Experiment::kDoubleMeasureCallbacks), true);
|
|
||||||
ASSERT_EQ(isEnabled(Experiment::kDoubleMeasureCallbacks), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void YogaInternalTest::SetUp() {
|
|
||||||
disableAllExperiments();
|
|
||||||
}
|
|
@@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "experiments.h"
|
|
||||||
|
|
||||||
#include <bitset>
|
|
||||||
|
|
||||||
namespace facebook {
|
|
||||||
namespace yoga {
|
|
||||||
namespace internal {
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
extern std::bitset<sizeof(int)> enabledExperiments;
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
inline bool isEnabled(Experiment experiment) {
|
|
||||||
return detail::enabledExperiments.test(static_cast<size_t>(experiment));
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void disableAllExperiments() {
|
|
||||||
detail::enabledExperiments = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace internal
|
|
||||||
} // namespace yoga
|
|
||||||
} // namespace facebook
|
|
@@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 "experiments.h"
|
|
||||||
#include "experiments-inl.h"
|
|
||||||
|
|
||||||
namespace facebook {
|
|
||||||
namespace yoga {
|
|
||||||
namespace internal {
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
|
|
||||||
std::bitset<sizeof(int)> enabledExperiments = 0;
|
|
||||||
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
void enable(Experiment experiment) {
|
|
||||||
detail::enabledExperiments.set(static_cast<size_t>(experiment));
|
|
||||||
}
|
|
||||||
|
|
||||||
void disable(Experiment experiment) {
|
|
||||||
detail::enabledExperiments.reset(static_cast<size_t>(experiment));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool toggle(Experiment experiment) {
|
|
||||||
auto bit = static_cast<size_t>(experiment);
|
|
||||||
auto previousState = detail::enabledExperiments.test(bit);
|
|
||||||
detail::enabledExperiments.flip(bit);
|
|
||||||
return previousState;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace internal
|
|
||||||
} // namespace yoga
|
|
||||||
} // namespace facebook
|
|
@@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <cstddef>
|
|
||||||
|
|
||||||
namespace facebook {
|
|
||||||
namespace yoga {
|
|
||||||
namespace internal {
|
|
||||||
|
|
||||||
enum struct Experiment : size_t {
|
|
||||||
kDoubleMeasureCallbacks,
|
|
||||||
};
|
|
||||||
|
|
||||||
void enable(Experiment);
|
|
||||||
void disable(Experiment);
|
|
||||||
bool toggle(Experiment);
|
|
||||||
|
|
||||||
} // namespace internal
|
|
||||||
} // namespace yoga
|
|
||||||
} // namespace facebook
|
|
Reference in New Issue
Block a user