| /* |
| * Copyright 2013 The Android Open Source Project |
| * |
| * Generate a big pile of classes with big <clinit>. |
| */ |
| #include <stdio.h> |
| |
| /* |
| * Create N files. |
| */ |
| static int createFiles(int count, int array_size) |
| { |
| FILE* fp; |
| int i; |
| int k; |
| |
| for (i = 0; i < count; i++) { |
| char nameBuf[32]; |
| |
| snprintf(nameBuf, sizeof(nameBuf), "src/Test%03d.java", i); |
| fp = fopen(nameBuf, "w"); |
| if (fp == NULL) { |
| fprintf(stderr, "ERROR: unable to open %s\n", nameBuf); |
| return -1; |
| } |
| |
| fprintf(fp, "public class Test%03d {\n", i); |
| fprintf(fp, " static String[] array = new String[%d];\n", array_size); |
| fprintf(fp, " static {\n"); |
| for (k = 0; k < array_size; k++) { |
| fprintf(fp, " array[%d] = \"string_%04d\";\n", k, k); |
| } |
| fprintf(fp, " }\n"); |
| fprintf(fp, "}\n"); |
| fclose(fp); |
| } |
| |
| // Create test class. |
| fp = fopen("src/MainTest.java", "w"); |
| if (fp == NULL) { |
| fprintf(stderr, "ERROR: unable to open src/MainTest.java\n"); |
| return -1; |
| } |
| fprintf(fp, "public class MainTest {\n"); |
| fprintf(fp, " public static void run() {\n"); |
| for (i = 0; i < count; i++) { |
| fprintf(fp, " System.out.println(\"Create new Test%03d\");\n", i); |
| fprintf(fp, " new Test%03d();\n", i); |
| } |
| fprintf(fp, " }\n"); |
| fprintf(fp, "}\n"); |
| fclose(fp); |
| |
| return 0; |
| } |
| |
| int main() |
| { |
| int result; |
| |
| result = createFiles(40, 2000); |
| |
| return (result != 0); |
| } |