1#!/bin/bash 2# 3# Copyright (C) 2008 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# Stop if something fails. 18set -e 19 20# Write out files with 32768 total static string declarations, so that 21# the reference to "zorch" in the real test file will be guaranteed to 22# need a jumbo string reference (it sorts last after all the others). 23# Note: Each string reference is stored in a separate static variable, 24# and that variable's name is also represented in the strings, which 25# is why we can just have 32768 and not 65536 declarations. 26 27awk ' 28BEGIN { 29 writeFile("Zorch1", 0, 16383); 30 writeFile("Zorch2", 16384, 32767); 31} 32function writeFile(name, start, end) { 33 fileName = "src/" name ".java"; 34 printf("public class %s {\n", name) > fileName; 35 for (i = start; i <= end; i++) { 36 printf(" static public final String s%d = \"%d\";\n", 37 i, i) > fileName; 38 } 39 printf("}\n") > fileName; 40}' 41 42if [ ${USE_JACK} = "true" ]; then 43 ${JACK} --output-dex . src 44else 45 mkdir classes 46 ${JAVAC} -d classes src/*.java 47 48 ${DX} -JXmx500m --debug --dex --no-optimize --positions=none --no-locals --output=classes.dex classes 49fi 50 51zip $TEST_NAME.jar classes.dex 52