hadoop/hadoop-common-project/hadoop-common/src/test/scripts/hadoop_subcommands.bats
Allen Wittenauer 730bc746f9 HADOOP-12930. Dynamic subcommands for hadoop shell scripts (aw)
This commit contains the following JIRA issues:

    HADOOP-12931. bin/hadoop work for dynamic subcommands
    HADOOP-12932. bin/yarn work for dynamic subcommands
    HADOOP-12933. bin/hdfs work for dynamic subcommands
    HADOOP-12934. bin/mapred work for dynamic subcommands
    HADOOP-12935. API documentation for dynamic subcommands
    HADOOP-12936. modify hadoop-tools to take advantage of dynamic subcommands
    HADOOP-13086. enable daemonization of dynamic commands
    HADOOP-13087. env var doc update for dynamic commands
    HADOOP-13088. fix shellprofiles in hadoop-tools to allow replacement
    HADOOP-13089. hadoop distcp adds client opts twice when dynamic
    HADOOP-13094. hadoop-common unit tests for dynamic commands
    HADOOP-13095. hadoop-hdfs unit tests for dynamic commands
    HADOOP-13107. clean up how rumen is executed
    HADOOP-13108. dynamic subcommands need a way to manipulate arguments
    HADOOP-13110. add a streaming subcommand to mapred
    HADOOP-13111. convert hadoop gridmix to be dynamic
    HADOOP-13115. dynamic subcommand docs should talk about exit vs. continue program flow
    HADOOP-13117. clarify daemonization and security vars for dynamic commands
    HADOOP-13120. add a --debug message when dynamic commands have been used
    HADOOP-13121. rename sub-project shellprofiles to match the rest of Hadoop
    HADOOP-13129. fix typo in dynamic subcommand docs
    HADOOP-13151. Underscores should be escaped in dynamic subcommands document
    HADOOP-13153. fix typo in debug statement for dynamic subcommands
2016-05-16 17:54:45 -07:00

79 lines
2.1 KiB
Bash
Executable File

# 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.
load hadoop-functions_test_helper
# the loading of shell profiles are tested elseswhere
# this only tests the specific subcommand parts
subcommandsetup () {
export HADOOP_LIBEXEC_DIR="${TMP}/libexec"
export HADOOP_CONF_DIR="${TMP}/conf"
mkdir -p "${HADOOP_LIBEXEC_DIR}"
echo ". \"${BATS_TEST_DIRNAME}/../../main/bin/hadoop-functions.sh\"" > "${HADOOP_LIBEXEC_DIR}/hadoop-config.sh"
cat <<-'TOKEN' >> "${HADOOP_LIBEXEC_DIR}/hadoop-config.sh"
hadoop_subcommand_sub () {
echo "unittest"
exit 0
}
hadoop_subcommand_conftest ()
{
echo conftest
exit 0
}
hadoop_subcommand_envcheck ()
{
echo ${HADOOP_SHELL_EXECNAME}
exit 0
}
hadoop_subcommand_multi ()
{
echo $2
exit 0
}
TOKEN
chmod a+rx "${HADOOP_LIBEXEC_DIR}/hadoop-config.sh"
}
@test "hadoop_subcommand (addition)" {
subcommandsetup
run "${BATS_TEST_DIRNAME}/../../main/bin/hadoop" sub
echo ">${output}<"
[ "${output}" = unittest ]
}
@test "hadoop_subcommand (substitute)" {
subcommandsetup
run "${BATS_TEST_DIRNAME}/../../main/bin/hadoop" conftest
echo ">${output}<"
[ "${output}" = conftest ]
}
@test "hadoop_subcommand (envcheck)" {
subcommandsetup
run "${BATS_TEST_DIRNAME}/../../main/bin/hadoop" envcheck
[ "${output}" = hadoop ]
}
@test "hadoop_subcommand (multiparams)" {
subcommandsetup
run "${BATS_TEST_DIRNAME}/../../main/bin/hadoop" multi 1 2
[ "${output}" = 2 ]
}