15d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao#!/bin/bash
25d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao#
35d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# Copyright (C) 2008 The Android Open Source Project
45d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao#
55d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# Licensed under the Apache License, Version 2.0 (the "License");
65d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# you may not use this file except in compliance with the License.
75d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# You may obtain a copy of the License at
85d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao#
95d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao#     http://www.apache.org/licenses/LICENSE-2.0
105d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao#
115d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# Unless required by applicable law or agreed to in writing, software
125d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# distributed under the License is distributed on an "AS IS" BASIS,
135d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# See the License for the specific language governing permissions and
155d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# limitations under the License.
165d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
175d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# Stop if something fails.
185d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaoset -e
195d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
205d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# Write out files with 32768 total static string declarations, so that
215d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# the reference to "zorch" in the real test file will be guaranteed to
225d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# need a jumbo string reference (it sorts last after all the others).
235d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# Note: Each string reference is stored in a separate static variable,
245d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# and that variable's name is also represented in the strings, which
255d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao# is why we can just have 32768 and not 65536 declarations.
265d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
275d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaoawk '
285d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaoBEGIN {
295d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    writeFile("Zorch1", 0, 16383);
305d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    writeFile("Zorch2", 16384, 32767);
315d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao}
325d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaofunction writeFile(name, start, end) {
335d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    fileName = "src/" name ".java";
345d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    printf("public class %s {\n", name) > fileName;
355d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    for (i = start; i <= end; i++) {
365d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        printf("    static public final String s%d = \"%d\";\n",
375d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            i, i) > fileName;
385d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    }
395d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    printf("}\n") > fileName;
405d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao}'
415d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
425ee9454dfee08a70dec62b0ed0fd4ad274274937Sebastien Hertzif [ ${USE_JACK} = "true" ]; then
435ee9454dfee08a70dec62b0ed0fd4ad274274937Sebastien Hertz  ${JACK} --output-dex . src
445ee9454dfee08a70dec62b0ed0fd4ad274274937Sebastien Hertzelse
455ee9454dfee08a70dec62b0ed0fd4ad274274937Sebastien Hertz  mkdir classes
465ee9454dfee08a70dec62b0ed0fd4ad274274937Sebastien Hertz  ${JAVAC} -d classes src/*.java
475ee9454dfee08a70dec62b0ed0fd4ad274274937Sebastien Hertz
485ee9454dfee08a70dec62b0ed0fd4ad274274937Sebastien Hertz  ${DX} -JXmx500m --debug --dex --no-optimize --positions=none --no-locals --output=classes.dex classes
495ee9454dfee08a70dec62b0ed0fd4ad274274937Sebastien Hertzfi
505d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
51904667a58fa38437d1be6907beb3fb76d1982e0bBrian Carlstromzip $TEST_NAME.jar classes.dex
52