123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- #!/usr/bin/env bash
- ##
- # Licensed to the Apache Software Foundation (ASF) under one
- # or more contributor license agreements. See the NOTICE file
- # distributed with this work for additional information
- # regarding copyright ownership. The ASF licenses this file
- # to you 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.
- ##
- # Script to run unit tests for xml <-> 1 or more Configuration file verification
- # usage: ./verify-xml.sh <mode>
- #
- # Utility functions
- function find_test_output_file() {
- echo "Found test output file(s) at"
- echo ""
- if [ -n "$1" ] && [ -e "$1" ] ; then
- echo " $1"
- fi
- if [ -n "$2" ] && [ -e "$2" ] ; then
- echo " $2"
- fi
- if [ -n "$3" ] && [ -e "$3" ] ; then
- echo " $3"
- fi
- if [ -n "$4" ] && [ -e "$4" ] ; then
- echo " $4"
- fi
- echo ""
- echo "Examine the file for specific information xml/Configuration mismatches."
- echo ""
- }
- function print_test_banner() {
- local banner_text=$1
- local banner_length=${#banner_text}
- local banner
- banner=$( printf "%${banner_length}s" ' ' )
- echo ""
- echo "${banner// /=}"
- echo "${banner_text}"
- echo "${banner// /=}"
- echo ""
- }
- # Wrapper functions for running unit tests
- function run_all_xml_test() {
- mvn test -Dtest=TestCommonConfigurationFields,TestHdfsConfigFields,TestMapreduceConfigFields,TestYarnConfigurationFields
- if [ $? -ne 0 ] ; then
- print_test_banner "All Test*ConfigFields FAIL"
- else
- print_test_banner "All Test*ConfigFields SUCCESS"
- fi
- }
- function run_common_xml_test() {
- mvn test -Dtest=TestCommonConfigFields
- if [ $? -ne 0 ] ; then
- print_test_banner "TestCommonConfigurationFields FAIL"
- else
- print_test_banner "TestCommonConfigurationFields SUCCESS"
- fi
- }
- function run_hdfs_xml_test() {
- mvn test -Dtest=TestHdfsConfigFields
- if [ $? -ne 0 ] ; then
- print_test_banner "TestHdfsConfigFields FAIL"
- else
- print_test_banner "TestHdfsConfigFields SUCCESS"
- fi
- }
- function run_mapreduce_xml_test() {
- mvn test -Dtest=TestMapreduceConfigFields
- if [ $? -ne 0 ] ; then
- print_test_banner "TestMapreduceConfigFields FAIL"
- else
- print_test_banner "TestMapreduceConfigFields SUCCESS"
- fi
- }
- function run_yarn_xml_test() {
- mvn test -Dtest=TestYarnConfigurationFields
- if [ $? -ne 0 ] ; then
- print_test_banner "TestYarnConfigurationFields FAIL"
- else
- print_test_banner "TestYarnConfigurationFields SUCCESS"
- fi
- }
- # Main body
- cd -P -- "$(dirname -- "${BASH_SOURCE-$0}")/.." || exit
- dir="$(pwd -P)"
- # - Create unit test file names
- export commonOutputFile
- commonOutputFile="$(find "${dir}" -name org.apache.hadoop.conf.TestCommonConfigurationFields-output.txt)"
- export hdfsOutputFile
- hdfsOutputFile="$(find "${dir}" -name org.apache.hadoop.tools.TestHdfsConfigFields-output.txt)"
- export mrOutputFile
- mrOutputFile="$(find "${dir}" -name org.apache.hadoop.mapreduce.TestMapreduceConfigFields-output.txt)"
- export yarnOutputFile
- yarnOutputFile="$(find "${dir}" -name org.apache.hadoop.yarn.conf.TestYarnConfigurationFields-output.txt)"
- # - Determine which tests to run
- case "$1" in
- all)
- run_all_xml_test
- find_test_output_file "${commonOutputFile}" "${hdfsOutputFile}" "${mrOutputFile}" "${yarnOutputFile}"
- ;;
- common)
- run_common_xml_test
- find_test_output_file "${commonOutputFile}"
- ;;
- hdfs)
- run_hdfs_xml_test
- find_test_output_file "${hdfsOutputFile}"
- ;;
- mr)
- run_mapreduce_xml_test
- find_test_output_file "${mrOutputFile}"
- ;;
- yarn)
- run_yarn_xml_test
- find_test_output_file "${yarnOutputFile}"
- ;;
- *)
- echo "Usage: $0 <mode>"
- echo " where <mode> is one of all, common, hdfs, mr, yarn"
- exit 1
- ;;
- esac
|