56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #!/bin/bash
 | |
| #
 | |
| # Copyright (C) 2013 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.
 | |
| 
 | |
| # Stop if something fails.
 | |
| set -e
 | |
| 
 | |
| # Write out classes
 | |
| mkdir src
 | |
| awk '
 | |
| BEGIN {
 | |
|     for (c = 1; c <= 500; c++) {
 | |
|         writeClass(c);
 | |
|     }
 | |
| }
 | |
| function writeClass(name) {
 | |
|     fileName = "src/Clazz" name ".java";
 | |
|     printf("public class Clazz%s {\n", name) > fileName;
 | |
|     for (i = 1; i <= 100; i++) {
 | |
|         printf("    int field%d;\n", i) > fileName;
 | |
|     }
 | |
|     for (i = 1; i <= 100; i++) {
 | |
|         printf("    void method%d(int param) { }\n", i) > fileName;
 | |
|     }
 | |
|     printf("}\n") > fileName;
 | |
| }'
 | |
| 
 | |
| 
 | |
| mkdir classes
 | |
| ${JAVAC} -source 1.8 -target 1.8 -d classes `find src -name '*.java'`
 | |
| 
 | |
| mkdir out
 | |
| dx -JXmx4g -JXms4g --dex --no-optimize --output=out classes
 | |
| 
 | |
| mkdir out-multi
 | |
| dx -JXmx4g -JXms4g --dex --no-optimize --num-threads=4 --output=out-multi classes
 | |
| 
 | |
| diff -r out out-multi > unit-out.txt
 | |
| if [ "$?" = "0" ]; then
 | |
|     echo "Yay!"
 | |
| else
 | |
|     cat unit-out.txt
 | |
| fi
 |