Skip to content

Commit 11f10f0

Browse files
committed
Add clean target stubs for read/write lock integration
1 parent 0e417c9 commit 11f10f0

File tree

4 files changed

+88
-10
lines changed

4 files changed

+88
-10
lines changed

vm/tests/src/test/java/com/codename1/tools/translator/FileClassIntegrationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ private String fileTestAppSource() {
133133

134134
private void replaceLibraryWithExecutableTarget(Path cmakeLists, String sourceDirName) throws IOException {
135135
String content = new String(Files.readAllBytes(cmakeLists), StandardCharsets.UTF_8);
136+
content = content.replaceAll("LANGUAGES\\s+C\\s+OBJC", "LANGUAGES C");
137+
content = content.replaceAll("(?m)^enable_language\\(OBJC OPTIONAL\\)\\s*$\\n?", "");
136138
String replacement = content.replace(
137139
"add_library(${PROJECT_NAME} ${TRANSLATOR_SOURCES} ${TRANSLATOR_HEADERS})",
138140
"add_executable(${PROJECT_NAME} ${TRANSLATOR_SOURCES} ${TRANSLATOR_HEADERS})\ntarget_link_libraries(${PROJECT_NAME} m)"

vm/tests/src/test/java/com/codename1/tools/translator/FileStreamsIntegrationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ private String fileStreamAppSource() {
140140

141141
private void replaceLibraryWithExecutableTarget(Path cmakeLists) throws IOException {
142142
String content = new String(Files.readAllBytes(cmakeLists), StandardCharsets.UTF_8);
143+
content = content.replaceAll("LANGUAGES\\s+C\\s+OBJC", "LANGUAGES C");
144+
content = content.replaceAll("(?m)^enable_language\\(OBJC OPTIONAL\\)\\s*$\\n?", "");
143145
String replacement = content.replace(
144146
"add_library(${PROJECT_NAME} ${TRANSLATOR_SOURCES} ${TRANSLATOR_HEADERS})",
145147
"add_executable(${PROJECT_NAME} ${TRANSLATOR_SOURCES} ${TRANSLATOR_HEADERS})\ntarget_link_libraries(${PROJECT_NAME} m)"

vm/tests/src/test/java/com/codename1/tools/translator/LockIntegrationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,8 @@ static void replaceLibraryWithExecutableTarget(Path cmakeLists, String sourceDir
330330
String globWithObjc = String.format("file(GLOB TRANSLATOR_SOURCES \"%s/*.c\" \"%s/*.m\")", sourceDirName, sourceDirName);
331331
String globCOnly = String.format("file(GLOB TRANSLATOR_SOURCES \"%s/*.c\")", sourceDirName);
332332
content = content.replace(globWithObjc, globCOnly);
333+
content = content.replaceAll("LANGUAGES\\s+C\\s+OBJC", "LANGUAGES C");
334+
content = content.replaceAll("(?m)^enable_language\\(OBJC OPTIONAL\\)\\s*$\\n?", "");
333335
String replacement = content.replace(
334336
"add_library(${PROJECT_NAME} ${TRANSLATOR_SOURCES} ${TRANSLATOR_HEADERS})",
335337
"add_executable(${PROJECT_NAME} ${TRANSLATOR_SOURCES} ${TRANSLATOR_HEADERS})\ntarget_link_libraries(${PROJECT_NAME} m pthread)"

vm/tests/src/test/java/com/codename1/tools/translator/ReadWriteLockIntegrationTest.java

Lines changed: 82 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,19 @@ private void writeMockJavaClasses(Path sourceDir) throws Exception {
199199
// java.lang.StringBuilder
200200
Files.write(lang.resolve("StringBuilder.java"), ("package java.lang;\n" +
201201
"public class StringBuilder {\n" +
202+
" char[] value = new char[16];\n" +
203+
" int count = 0;\n" +
202204
" public StringBuilder() {}\n" +
203205
" public StringBuilder(String str) {}\n" +
204206
" public StringBuilder(int cap) {}\n" +
207+
" void appendNull() {\n" +
208+
" append(\"null\");\n" +
209+
" }\n" +
210+
" void enlargeBuffer(int newCap) {\n" +
211+
" if (newCap > value.length) {\n" +
212+
" value = new char[newCap];\n" +
213+
" }\n" +
214+
" }\n" +
205215
" public StringBuilder append(String s) { return this; }\n" +
206216
" public StringBuilder append(Object o) { return this; }\n" +
207217
" public StringBuilder append(int i) { return this; }\n" +
@@ -632,6 +642,8 @@ static void replaceLibraryWithExecutableTarget(Path cmakeLists, String sourceDir
632642
String globWithObjc = String.format("file(GLOB TRANSLATOR_SOURCES \"%s/*.c\" \"%s/*.m\")", sourceDirName, sourceDirName);
633643
String globCOnly = String.format("file(GLOB TRANSLATOR_SOURCES \"%s/*.c\")", sourceDirName);
634644
content = content.replace(globWithObjc, globCOnly);
645+
content = content.replaceAll("LANGUAGES\\s+C\\s+OBJC", "LANGUAGES C");
646+
content = content.replaceAll("(?m)^enable_language\\(OBJC OPTIONAL\\)\\s*$\\n?", "");
635647
String replacement = content.replace(
636648
"add_library(${PROJECT_NAME} ${TRANSLATOR_SOURCES} ${TRANSLATOR_HEADERS})",
637649
"add_executable(${PROJECT_NAME} ${TRANSLATOR_SOURCES} ${TRANSLATOR_HEADERS})\ntarget_link_libraries(${PROJECT_NAME} m pthread)"
@@ -884,27 +896,87 @@ private void patchHashMapNativeSupport(Path srcRoot) throws java.io.IOException
884896
}
885897

886898
Path entryHeader = srcRoot.resolve("java_util_HashMap_Entry.h");
887-
if (!Files.exists(entryHeader)) {
888-
String entryContent = "#ifndef __JAVA_UTIL_HASHMAP_ENTRY__\n" +
889-
"#define __JAVA_UTIL_HASHMAP_ENTRY__\n\n" +
899+
String entryContent = "#ifndef __JAVA_UTIL_HASHMAP_ENTRY__\n" +
900+
"#define __JAVA_UTIL_HASHMAP_ENTRY__\n\n" +
901+
"#include \"cn1_globals.h\"\n" +
902+
"#include \"java_lang_Object.h\"\n\n" +
903+
"extern struct clazz class__java_util_HashMap_Entry;\n\n" +
904+
"struct obj__java_util_HashMap_Entry {\n" +
905+
" DEBUG_GC_VARIABLES\n" +
906+
" struct clazz *__codenameOneParentClsReference;\n" +
907+
" int __codenameOneReferenceCount;\n" +
908+
" void* __codenameOneThreadData;\n" +
909+
" int __codenameOneGcMark;\n" +
910+
" void* __ownerThread;\n" +
911+
" int __heapPosition;\n" +
912+
" JAVA_OBJECT java_util_MapEntry_key;\n" +
913+
" JAVA_OBJECT java_util_MapEntry_value;\n" +
914+
" JAVA_INT java_util_HashMap_Entry_origKeyHash;\n" +
915+
" JAVA_OBJECT java_util_HashMap_Entry_next;\n" +
916+
"};\n\n" +
917+
"#endif\n";
918+
Files.write(entryHeader, entryContent.getBytes(StandardCharsets.UTF_8));
919+
920+
Path dateHeader = srcRoot.resolve("java_util_Date.h");
921+
if (!Files.exists(dateHeader)) {
922+
String dateContent = "#ifndef __JAVA_UTIL_DATE__\n" +
923+
"#define __JAVA_UTIL_DATE__\n\n" +
924+
"#include \"cn1_globals.h\"\n" +
925+
"#include \"java_lang_Object.h\"\n\n" +
926+
"extern struct clazz class__java_util_Date;\n\n" +
927+
"struct obj__java_util_Date {\n" +
928+
" DEBUG_GC_VARIABLES\n" +
929+
" struct clazz *__codenameOneParentClsReference;\n" +
930+
" int __codenameOneReferenceCount;\n" +
931+
" void* __codenameOneThreadData;\n" +
932+
" int __codenameOneGcMark;\n" +
933+
" void* __ownerThread;\n" +
934+
" int __heapPosition;\n" +
935+
" JAVA_LONG java_util_Date_date;\n" +
936+
"};\n\n" +
937+
"#endif\n";
938+
Files.write(dateHeader, dateContent.getBytes(StandardCharsets.UTF_8));
939+
}
940+
941+
Path dateFormatHeader = srcRoot.resolve("java_text_DateFormat.h");
942+
if (!Files.exists(dateFormatHeader)) {
943+
String dateFormatContent = "#ifndef __JAVA_TEXT_DATEFORMAT__\n" +
944+
"#define __JAVA_TEXT_DATEFORMAT__\n\n" +
945+
"#include \"cn1_globals.h\"\n" +
946+
"#include \"java_lang_Object.h\"\n\n" +
947+
"extern struct clazz class__java_text_DateFormat;\n\n" +
948+
"struct obj__java_text_DateFormat {\n" +
949+
" DEBUG_GC_VARIABLES\n" +
950+
" struct clazz *__codenameOneParentClsReference;\n" +
951+
" int __codenameOneReferenceCount;\n" +
952+
" void* __codenameOneThreadData;\n" +
953+
" int __codenameOneGcMark;\n" +
954+
" void* __ownerThread;\n" +
955+
" int __heapPosition;\n" +
956+
" JAVA_INT java_text_DateFormat_dateStyle;\n" +
957+
"};\n\n" +
958+
"#endif\n";
959+
Files.write(dateFormatHeader, dateFormatContent.getBytes(StandardCharsets.UTF_8));
960+
}
961+
962+
Path stringToRealHeader = srcRoot.resolve("java_lang_StringToReal.h");
963+
if (!Files.exists(stringToRealHeader)) {
964+
String strContent = "#ifndef __JAVA_LANG_STRINGTOREAL__\n" +
965+
"#define __JAVA_LANG_STRINGTOREAL__\n\n" +
890966
"#include \"cn1_globals.h\"\n" +
891967
"#include \"java_lang_Object.h\"\n\n" +
892-
"extern struct clazz class__java_util_HashMap_Entry;\n\n" +
893-
"struct obj__java_util_HashMap_Entry {\n" +
968+
"extern struct clazz class__java_lang_StringToReal;\n\n" +
969+
"struct obj__java_lang_StringToReal {\n" +
894970
" DEBUG_GC_VARIABLES\n" +
895971
" struct clazz *__codenameOneParentClsReference;\n" +
896972
" int __codenameOneReferenceCount;\n" +
897973
" void* __codenameOneThreadData;\n" +
898974
" int __codenameOneGcMark;\n" +
899975
" void* __ownerThread;\n" +
900976
" int __heapPosition;\n" +
901-
" JAVA_OBJECT java_util_MapEntry_key;\n" +
902-
" JAVA_OBJECT java_util_MapEntry_value;\n" +
903-
" JAVA_INT java_util_HashMap_Entry_origKeyHash;\n" +
904-
" JAVA_OBJECT java_util_HashMap_Entry_next;\n" +
905977
"};\n\n" +
906978
"#endif\n";
907-
Files.write(entryHeader, entryContent.getBytes(StandardCharsets.UTF_8));
979+
Files.write(stringToRealHeader, strContent.getBytes(StandardCharsets.UTF_8));
908980
}
909981
}
910982
}

0 commit comments

Comments
 (0)