| #!/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 |