| #!/bin/bash | 
 | # | 
 | # Copyright (C) 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. | 
 | # | 
 |  | 
 | function _log() | 
 | { | 
 |     echo -e "$*" >&2 | 
 | } | 
 |  | 
 | function _eval() | 
 | { | 
 |     local label="$1" | 
 |     local cmd="$2" | 
 |     local red="\e[31m" | 
 |     local green="\e[32m" | 
 |     local reset="\e[0m" | 
 |     local output | 
 |  | 
 |     _log "${green}[ RUN      ]${reset} ${label}" | 
 |     output="$(eval "$cmd" 2>&1)" | 
 |     if [[ $? -eq 0 ]]; then | 
 |         _log "${green}[       OK ]${reset} ${label}" | 
 |         return 0 | 
 |     else | 
 |         echo "${output}" | 
 |         _log "${red}[  FAILED  ]${reset} ${label}" | 
 |         errors=$((errors + 1)) | 
 |         return 1 | 
 |     fi | 
 | } | 
 |  | 
 | errors=0 | 
 | script="$(readlink -f "$BASH_SOURCE")" | 
 | prefix="$(dirname "$script")" | 
 | target_path="${prefix}/tests/data/target/target.apk" | 
 | overlay_path="${prefix}/tests/data/overlay/overlay.apk" | 
 | idmap_path="/tmp/a.idmap" | 
 | valgrind="valgrind --error-exitcode=1 -q --track-origins=yes --leak-check=full" | 
 |  | 
 | _eval "idmap2 create" "$valgrind idmap2 create --policy public --target-apk-path $target_path --overlay-apk-path $overlay_path --idmap-path $idmap_path" | 
 | _eval "idmap2 dump" "$valgrind idmap2 dump --idmap-path $idmap_path" | 
 | _eval "idmap2 lookup" "$valgrind idmap2 lookup --idmap-path $idmap_path --config '' --resid test.target:string/str1" | 
 | _eval "idmap2_tests" "$valgrind $ANDROID_HOST_OUT/nativetest64/idmap2_tests/idmap2_tests" | 
 | exit $errors |