43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash
 | |
| #
 | |
| # Copyright (C) 2017 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.
 | |
| 
 | |
| UNSUPPORTED_SDK_VERSION_0=26
 | |
| UNSUPPORTED_SDK_VERSION_1=27
 | |
| SUPPORTED_SDK_VERSION=28
 | |
| 
 | |
| # Expect failure with unsupported SDK version
 | |
| EXPECTED_STATUS[${UNSUPPORTED_SDK_VERSION_0}]=1
 | |
| EXPECTED_STATUS[${UNSUPPORTED_SDK_VERSION_1}]=1
 | |
| 
 | |
| # Expect success with supported SDK version
 | |
| EXPECTED_STATUS[${SUPPORTED_SDK_VERSION}]=0
 | |
| 
 | |
| DX_OUTPUT=dx.log
 | |
| rm -f ${DX_OUTPUT} 2>/dev/null
 | |
| 
 | |
| for SDK_VERSION in ${!EXPECTED_STATUS[@]}; do
 | |
|   echo Trying SDK version ${SDK_VERSION} with const-method-handle.
 | |
|   dx --min-sdk-version=${SDK_VERSION} --dex --output=constmethodhandle.dex \
 | |
|      --verbose-dump --dump-to=- --dump-width=1000 constmethodhandle.jar >>${DX_OUTPUT} 2>&1
 | |
|   STATUS=$?
 | |
|   if [[ ${STATUS} != ${EXPECTED_STATUS[$SDK_VERSION]} ]]; then
 | |
|     echo Unexpected status ${STATUS} for SDK version ${SDK_VERSION}.
 | |
|     exit 1
 | |
|   fi
 | |
| done
 | |
| 
 | |
| sed -n -e 's/.*: //g' -e 's_ *//.*__' -e '/const-method/p' -e '/dex[\\]/p' ${DX_OUTPUT}
 |