Expose logging capablities in Yoga header

Summary: Exposes a bool in the config which will help log the yoga hierarchy. Also added a test case

Reviewed By: IanChilds

Differential Revision: D9560577

fbshipit-source-id: ef4998107ed51ea374853bab7cbe09e3232caa0c
This commit is contained in:
Pritesh Nandgaonkar
2018-08-30 04:40:46 -07:00
committed by Facebook Github Bot
parent 2b52c73d70
commit f7df575746
5 changed files with 68 additions and 20 deletions

View File

@@ -1,10 +1,10 @@
/**
* Copyright (c) 2014-present, Facebook, Inc.
/*
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*
* 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 <stdarg.h>
#include <yoga/Yoga.h>
@@ -23,6 +23,46 @@ int _unmanagedLogger(const YGConfigRef config,
}
}
TEST(YogaTest, config_print_tree_enabled) {
writeBuffer[0] = '\0';
const YGConfigRef config = YGConfigNew();
YGConfigSetPrintTreeFlag(config, true);
YGConfigSetLogger(config, _unmanagedLogger);
const YGNodeRef root = YGNodeNewWithConfig(config);
const YGNodeRef child0 = YGNodeNewWithConfig(config);
const YGNodeRef child1 = YGNodeNewWithConfig(config);
YGNodeInsertChild(root, child0, 0);
YGNodeInsertChild(root, child1, 1);
YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR);
YGConfigSetLogger(config, NULL);
YGNodeFreeRecursive(root);
const char* expected =
"<div layout=\"width: 0; height: 0; top: 0; left: 0;\" style=\"\" >\n "
"<div layout=\"width: 0; height: 0; top: 0; left: 0;\" style=\"\" "
"></div>\n <div layout=\"width: 0; height: 0; top: 0; left: 0;\" "
"style=\"\" ></div>\n</div>";
ASSERT_STREQ(expected, writeBuffer);
}
TEST(YogaTest, config_print_tree_disabled) {
writeBuffer[0] = '\0';
const YGConfigRef config = YGConfigNew();
YGConfigSetPrintTreeFlag(config, false);
YGConfigSetLogger(config, _unmanagedLogger);
const YGNodeRef root = YGNodeNewWithConfig(config);
const YGNodeRef child0 = YGNodeNewWithConfig(config);
const YGNodeRef child1 = YGNodeNewWithConfig(config);
YGNodeInsertChild(root, child0, 0);
YGNodeInsertChild(root, child1, 1);
YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR);
YGConfigSetLogger(config, NULL);
YGNodeFreeRecursive(root);
const char* expected = "";
ASSERT_STREQ(expected, writeBuffer);
}
TEST(YogaTest, logger_default_node_should_print_no_style_info) {
writeBuffer[0] = '\0';
const YGConfigRef config = YGConfigNew();