1#!/usr/bin/env python3 2# 3# Copyright (C) 2021 The Android Open Source Project 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17# Generate a big pile of classes with big <clinit>. 18 19def createFiles(count, array_size): 20 for i in range(count): 21 name = "src/Test{:03}.java".format(i) 22 with open(name, "wt") as fp: 23 fp.write("public class Test{:03} {{\n".format(i)) 24 fp.write(" static String[] array = new String[{}];\n".format(array_size)) 25 fp.write(" static {\n") 26 for k in range(array_size): 27 fp.write(" array[{}] = \"string_{:04}\";\n".format(k, k)) 28 fp.write(" }\n") 29 fp.write("}\n") 30 31 with open("src/MainTest.java", "wt") as fp: 32 fp.write("public class MainTest {\n") 33 fp.write(" public static void run() {\n") 34 for i in range(count): 35 fp.write(" System.out.println(\"Create new Test{:03}\");\n".format(i)) 36 fp.write(" new Test{:03}();\n".format(i)) 37 fp.write(" }\n") 38 fp.write("}\n") 39 40def main(): 41 return createFiles(40, 2000) 42 43if __name__ == '__main__': 44 main() 45