Autogenerate enum defenitions for all languages

Summary: Keeping enums in sync between all the different bindings is tedious and error prone. Getting one of the values in the incorrect order could lead to many hours of debugging as they are passed as ints to C. This diff adds a simple python script to generate these enums for all languages. This also makes it much easier to add support for more languages in the future

Reviewed By: gkassabli

Differential Revision: D4174263

fbshipit-source-id: 478961a8f683e196704d3c6ea1505a05c85fcb10
This commit is contained in:
Emil Sjolander
2016-11-15 08:42:33 -08:00
committed by Facebook Github Bot
parent ac4d0ab2a1
commit d1c555fede
34 changed files with 699 additions and 166 deletions

View File

@@ -40,35 +40,35 @@ public class CSSNodeTest {
assertEquals(100, (int) node.getLayoutHeight());
}
private int mLogLevel;
private CSSLogLevel mLogLevel;
private String mLogMessage;
@Test
public void testLogger() {
CSSNode.setLogger(new CSSLogger() {
public void log(int level, String message) {
public void log(CSSLogLevel level, String message) {
mLogLevel = level;
mLogMessage = message;
}
});
CSSNode.jni_CSSLog(CSSLogger.LOG_LEVEL_DEBUG, "Hello");
assertEquals(CSSLogger.LOG_LEVEL_DEBUG, mLogLevel);
CSSNode.jni_CSSLog(CSSLogLevel.DEBUG.intValue(), "Hello");
assertEquals(CSSLogLevel.DEBUG, mLogLevel);
assertEquals("Hello", mLogMessage);
}
@Test
public void testUpdateLogger() {
CSSNode.setLogger(new CSSLogger() {
public void log(int level, String message) {}
public void log(CSSLogLevel level, String message) {}
});
CSSNode.setLogger(new CSSLogger() {
public void log(int level, String message) {
public void log(CSSLogLevel level, String message) {
mLogLevel = level;
mLogMessage = message;
}
});
CSSNode.jni_CSSLog(CSSLogger.LOG_LEVEL_VERBOSE, "Flexbox");
assertEquals(CSSLogger.LOG_LEVEL_VERBOSE, mLogLevel);
CSSNode.jni_CSSLog(CSSLogLevel.VERBOSE.intValue(), "Flexbox");
assertEquals(CSSLogLevel.VERBOSE, mLogLevel);
assertEquals("Flexbox", mLogMessage);
}
}