1*b9df5ad1SAndroid Build Coastguard Worker#!/bin/bash 2*b9df5ad1SAndroid Build Coastguard Worker 3*b9df5ad1SAndroid Build Coastguard Worker# 4*b9df5ad1SAndroid Build Coastguard Worker# Copyright (C) 2012 The Android Open Source Project 5*b9df5ad1SAndroid Build Coastguard Worker# 6*b9df5ad1SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 7*b9df5ad1SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 8*b9df5ad1SAndroid Build Coastguard Worker# You may obtain a copy of the License at 9*b9df5ad1SAndroid Build Coastguard Worker# 10*b9df5ad1SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 11*b9df5ad1SAndroid Build Coastguard Worker# 12*b9df5ad1SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 13*b9df5ad1SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 14*b9df5ad1SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15*b9df5ad1SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 16*b9df5ad1SAndroid Build Coastguard Worker# limitations under the License. 17*b9df5ad1SAndroid Build Coastguard Worker# 18*b9df5ad1SAndroid Build Coastguard Worker 19*b9df5ad1SAndroid Build Coastguard Worker# 20*b9df5ad1SAndroid Build Coastguard Worker# Validate the XML parser by making sure it's generating the same data 21*b9df5ad1SAndroid Build Coastguard Worker# as the original parsed data. 22*b9df5ad1SAndroid Build Coastguard Worker# 23*b9df5ad1SAndroid Build Coastguard Worker 24*b9df5ad1SAndroid Build Coastguard Workerthisdir=$(cd "$(dirname "$0")"; pwd) 25*b9df5ad1SAndroid Build Coastguard Worker 26*b9df5ad1SAndroid Build Coastguard Worker$thisdir/metadata-check-dependencies || exit 1 27*b9df5ad1SAndroid Build Coastguard Worker 28*b9df5ad1SAndroid Build Coastguard Workertmp_out=$(mktemp -t tmp.XXXXXXXXXX) 29*b9df5ad1SAndroid Build Coastguard Workertmp_tidy1=$(mktemp -t tmp.XXXXXXXXXX) 30*b9df5ad1SAndroid Build Coastguard Workertmp_tidy2=$(mktemp -t tmp.XXXXXXXXXX) 31*b9df5ad1SAndroid Build Coastguard Worker 32*b9df5ad1SAndroid Build Coastguard Workerfunction check_test 33*b9df5ad1SAndroid Build Coastguard Worker{ 34*b9df5ad1SAndroid Build Coastguard Worker local file="$1" 35*b9df5ad1SAndroid Build Coastguard Worker local results 36*b9df5ad1SAndroid Build Coastguard Worker results="$(python3 "$file" 2>&1)" 37*b9df5ad1SAndroid Build Coastguard Worker local retval=$? 38*b9df5ad1SAndroid Build Coastguard Worker if [[ $retval -ne 0 ]] 39*b9df5ad1SAndroid Build Coastguard Worker then 40*b9df5ad1SAndroid Build Coastguard Worker echo "$results" >& 2 41*b9df5ad1SAndroid Build Coastguard Worker echo "FAILED: Unit tests $file" 42*b9df5ad1SAndroid Build Coastguard Worker else 43*b9df5ad1SAndroid Build Coastguard Worker echo "SUCCESS: Unit tests $file" 44*b9df5ad1SAndroid Build Coastguard Worker fi 45*b9df5ad1SAndroid Build Coastguard Worker return $retval 46*b9df5ad1SAndroid Build Coastguard Worker} 47*b9df5ad1SAndroid Build Coastguard Worker 48*b9df5ad1SAndroid Build Coastguard Workercheck_test "$thisdir/metadata_model_test.py" || exit 1 49*b9df5ad1SAndroid Build Coastguard Workercheck_test "$thisdir/metadata_helpers_test.py" || exit 1 50*b9df5ad1SAndroid Build Coastguard Workerpython3 $thisdir/metadata_parser_xml.py $thisdir/metadata_definitions.xml $thisdir/metadata_template.mako $tmp_out || exit 1 51*b9df5ad1SAndroid Build Coastguard Workertidy -indent -xml -quiet $thisdir/metadata_definitions.xml > $tmp_tidy1 52*b9df5ad1SAndroid Build Coastguard Workertidy -indent -xml -quiet $tmp_out > $tmp_tidy2 53*b9df5ad1SAndroid Build Coastguard Worker 54*b9df5ad1SAndroid Build Coastguard Workerdiff $tmp_tidy1 $tmp_tidy2 55*b9df5ad1SAndroid Build Coastguard Workerexit_code=$? 56*b9df5ad1SAndroid Build Coastguard Workerrm $tmp_out $tmp_tidy1 $tmp_tidy2 57*b9df5ad1SAndroid Build Coastguard Worker 58*b9df5ad1SAndroid Build Coastguard Workerif [[ $exit_code -ne 0 ]] 59*b9df5ad1SAndroid Build Coastguard Workerthen 60*b9df5ad1SAndroid Build Coastguard Worker echo "ERROR: Files differ, please check parser logic" 1>&2 61*b9df5ad1SAndroid Build Coastguard Workerelse 62*b9df5ad1SAndroid Build Coastguard Worker echo "SUCCESS: Files are the same!" 1>&2 63*b9df5ad1SAndroid Build Coastguard Workerfi 64*b9df5ad1SAndroid Build Coastguard Worker 65*b9df5ad1SAndroid Build Coastguard Workerexit $exit_code 66