Home | History | Annotate | Download | only in 303-verification-stress
      1 /*
      2  * Copyright 2013 The Android Open Source Project
      3  *
      4  * Generate a big pile of classes with big <clinit>.
      5  */
      6 #include <stdio.h>
      7 
      8 /*
      9  * Create N files.
     10  */
     11 static int createFiles(int count, int array_size)
     12 {
     13     FILE* fp;
     14     int i;
     15     int k;
     16 
     17     for (i = 0; i < count; i++) {
     18         char nameBuf[32];
     19 
     20         snprintf(nameBuf, sizeof(nameBuf), "src/Test%03d.java", i);
     21         fp = fopen(nameBuf, "w");
     22         if (fp == NULL) {
     23             fprintf(stderr, "ERROR: unable to open %s\n", nameBuf);
     24             return -1;
     25         }
     26 
     27         fprintf(fp, "public class Test%03d {\n", i);
     28         fprintf(fp, "    static String[] array = new String[%d];\n", array_size);
     29         fprintf(fp, "    static {\n");
     30         for (k = 0; k < array_size; k++) {
     31             fprintf(fp, "        array[%d] = \"string_%04d\";\n", k, k);
     32         }
     33         fprintf(fp, "    }\n");
     34         fprintf(fp, "}\n");
     35         fclose(fp);
     36     }
     37 
     38     // Create test class.
     39     fp = fopen("src/MainTest.java", "w");
     40     if (fp == NULL) {
     41         fprintf(stderr, "ERROR: unable to open src/MainTest.java\n");
     42         return -1;
     43     }
     44     fprintf(fp, "public class MainTest {\n");
     45     fprintf(fp, "    public static void run() {\n");
     46     for (i = 0; i < count; i++) {
     47         fprintf(fp, "        System.out.println(\"Create new Test%03d\");\n", i);
     48         fprintf(fp, "        new Test%03d();\n", i);
     49     }
     50     fprintf(fp, "    }\n");
     51     fprintf(fp, "}\n");
     52     fclose(fp);
     53 
     54     return 0;
     55 }
     56 
     57 int main()
     58 {
     59     int result;
     60 
     61     result = createFiles(40, 2000);
     62 
     63     return (result != 0);
     64 }
     65