#!/bin/bash
#
# Copyright 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# make us exit on a failure
set -e

count=10000
echo "LMain;" >> profile
for i in $(seq 1 "$count"); do
  echo "LOther\$Inner${i};" >> "profile"
done

# Generate the other class.
other_file="src/Other.java"
echo "class Other {" >> "${other_file}"
for i in $(seq 1 "$count"); do
  echo "  static class Inner${i} { void test(){} }" >> "${other_file}"
done
echo "}" >> "${other_file}"
