SOLR-11749: Introduce bin/solr test suite

This commit is contained in:
Jason Gerlowski 2018-03-11 10:22:40 -04:00
parent 298063eee7
commit 2ca741d36a
8 changed files with 768 additions and 0 deletions

53
solr/bin-test/README.md Normal file
View File

@ -0,0 +1,53 @@
<!--
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.
-->
# bin/solr Tests
This directory contains tests for the `bin/solr` command-line scripts. For
instructions on running these tests, run `bin-test/test -h`.
## Test Harness/Infrastructure
Where possible, these tests model themselves after the pattern well-established
by JUnit.
- JUnit's `@Test` is emulated using the function name prefix: `solr_test_`
Any bash functions starting with that prefix are identified as tests.
- JUnit's `@Before` and `@After` are imitated using the function names
`solr_unit_test_before`, and `solr_unit_test_after`. If a suite contains
these functions, they will be run before and after each test.
- JUnit's `@BeforeClass` and `@AfterClass` are imitated using the function
names: `solr_suite_before`, and `solr_suite_after`. If a suite contains
these functions, they will be run at the very beginning and end of suite
execution.
- Test success/failure is judged by the test's return value. 0 indicates
success; non-zero indicates failure. Unlike in JUnit/Java which has
exceptions, bash assertions have no way to suspend test execution on
failure. Because of this, assertions are often followed by ` || return 1`,
which ensures the test exists immediately if the assertion fails. Existing
tests provided examples of this.
## Test Helpers
A variety of assertions and general utilities are available for use in
`bin-test/utils/`.
## Limitations
1. Currently this test suite is only available for \*nix environments
2. Tests written in bash are both slow, and harder to maintain than traditional
JUnit tests. If a test _can_ be written as a JUnit test, it should be. This
suite should only be used to test things that cannot be tested by JUnit.

191
solr/bin-test/test Executable file
View File

@ -0,0 +1,191 @@
#!/bin/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.
function ensure_cwd_is_solr() {
local cwd=`pwd`
if [[ "solr" != `basename $cwd` ]]
then
echo "ERROR: Please run this script from the 'solr' directory."
exit 1
fi
}
function run_suite_before_if_present() {
if declare -f solr_suite_before > /dev/null ; then
solr_suite_before
fi
}
function run_suite_after_if_present() {
if declare -f solr_suite_after > /dev/null ; then
solr_suite_after
fi
}
function run_test_before_if_present() {
if declare -f solr_unit_test_before > /dev/null ; then
solr_unit_test_before
fi
}
function run_test_after_if_present() {
if declare -f solr_unit_test_after > /dev/null ; then
solr_unit_test_after
fi
}
function run_test_suite() {
local test_file=$1
local test_name_filter="${2:-}"
echo "Executing $test_file"
source $test_file
test_names="$(declare -F | awk '{print $3}' | grep 'solr_test')"
run_suite_before_if_present
for test_name in $test_names
do
if [[ -z "$test_name_filter" || "$test_name_filter" == "$test_name" ]]; then
run_single_test $test_name
fi
unset -f $test_name
done
run_suite_after_if_present
unset solr_suite_before
unset solr_suite_after
unset solr_unit_test_before
unset solr_unit_test_after
}
function run_single_test() {
local test_name=$1
echo -n " $test_name "
run_test_before_if_present
let NUM_TESTS+=1
output=$($test_name)
if [[ $? -ne 0 ]]; then
let NUM_FAILURES+=1
echo "FAILED"
echo "---------------------------------------------------"
echo "$output"
echo "---------------------------------------------------"
else
let NUM_SUCCESSES+=1
echo "SUCCEEDED"
fi
run_test_after_if_present
}
function ensure_param_arg_present() {
if [[ $# -lt 2 || "$2" == -* ]]; then
echo "Option '$1' requires a single argument, but none provided."
exit 1
fi
}
function print_help() {
echo "Usage: bin-test/test [-h] [-s SUITE_NAME] [-t SUITE_NAME#TEST_NAME]"
echo ""
echo " Run tests for the 'bin/solr' Solr startup/admin scripts. By default all tests are run."
echo " Tests suites or single tests can be selected by use of the options below:"
echo ""
echo " -s|--run-single-suite Runs all tests living in the specified file. Filename argument"
echo " should include the full file extension, but no path prefix."
echo " (e.g. test_help.sh works, bin-test/test_help.sh and test_help"
echo " do not)"
echo ""
echo " -t|--run-single-test Runs the specified test from the specified test suite file."
echo " Takes an argument in the form 'SUITE_NAME#TEST_NAME', where"
echo " SUITE_NAME is the filename of a test suite (see -s above), and"
echo " TEST_NAME matches the name of a bash test function present in"
echo " that file"
echo ""
echo " -h|--help You're soaking in it."
echo ""
exit 0
}
function run_all_tests() {
test_files="$(find bin-test -name "test_*.sh")"
for test_file in $test_files
do
run_test_suite $test_file
done
}
## MAIN ##
##########
ensure_cwd_is_solr
# Can be 'all', 'help', 'single-suite', or 'single-test'
MODE="all"
SUITE_NAME=""
TEST_NAME=""
NUM_TESTS=0
NUM_SUCCESSES=0
NUM_FAILURES=0
while [[ $# -gt 0 ]]
do
case $1 in
-h|--help)
MODE="help"
shift 1
;;
-s|--run-single-suite)
ensure_param_arg_present $@
MODE="single-suite"
SUITE_NAME="bin-test/$2"
shift 2
;;
-t|--run-single-test)
ensure_param_arg_present $@
MODE="single-test"
SUITE_NAME="bin-test/$(echo "$2" | cut -d "#" -f 1 | tr -d " ")"
TEST_NAME=$(echo "$2" | cut -d "#" -f 2 | tr -d " ")
shift 2
;;
*)
echo "WARNING: Unexpected argument [$1] detected, ignoring."
shift 1
;;
esac
done
case $MODE in
"help")
print_help
MAIN_RESULT=0
;;
"single-suite")
run_test_suite $SUITE_NAME
MAIN_RESULT=$?
;;
"single-test")
run_test_suite $SUITE_NAME $TEST_NAME
MAIN_RESULT=$?
;;
"all")
run_all_tests
MAIN_RESULT=$?
esac
echo "Ran $NUM_TESTS tests, with $NUM_SUCCESSES passing, and $NUM_FAILURES failures"
exit $MAIN_RESULT

View File

@ -0,0 +1,133 @@
#!/bin/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.
source bin-test/utils/assert.sh
source bin-test/utils/cleanup.sh
# All tests should start with solr_test
function solr_suite_before() {
bin/solr stop -all > /dev/null 2>&1
bin/solr start -c > /dev/null 2>&1
local source_configset_dir="server/solr/configsets/sample_techproducts_configs"
TMP_CONFIGSET_DIR="/tmp/test_config"
rm -rf $TMP_CONFIGSET_DIR; cp -r $source_configset_dir $TMP_CONFIGSET_DIR
}
function solr_suite_after() {
bin/solr stop -all > /dev/null 2>&1
rm -rf $TMP_CONFIGSET_DIR
}
function solr_unit_test_before() {
delete_all_collections > /dev/null 2>&1
}
function solr_unit_test_after() {
delete_all_collections > /dev/null 2>&1
}
function solr_test_can_create_collection() {
local create_cmd="bin/solr create_collection -c COLL_NAME"
local expected_output="Created collection 'COLL_NAME'"
local actual_output; actual_output=$($create_cmd)
assert_cmd_succeeded "$create_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
}
function solr_test_rejects_d_option_with_invalid_config_dir() {
local create_cmd="bin/solr create_collection -c COLL_NAME -d /asdf"
local expected_output="Specified configuration directory /asdf not found!"
local actual_output; actual_output=$($create_cmd)
assert_cmd_failed "$create_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
}
function solr_test_accepts_d_option_with_explicit_builtin_config() {
local create_cmd="bin/solr create_collection -c COLL_NAME -d sample_techproducts_configs"
local expected_output="Created collection 'COLL_NAME'"
local actual_output; actual_output=$($create_cmd)
assert_cmd_succeeded "$create_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
}
function solr_test_accepts_d_option_with_explicit_path_to_config() {
local create_cmd="bin/solr create_collection -c COLL_NAME -d $TMP_CONFIGSET_DIR"
local expected_output="Created collection 'COLL_NAME'"
local actual_output; actual_output=$($create_cmd)
assert_cmd_succeeded "$create_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
}
function solr_test_accepts_n_option_as_config_name() {
local create_cmd="bin/solr create_collection -c COLL_NAME -n other_conf_name"
local expected_name_output="Created collection 'COLL_NAME'"
local expected_config_name_output="config-set 'other_conf_name'"
local actual_output; actual_output=$($create_cmd)
# Expect to fail, change to success
assert_cmd_succeeded "$create_cmd" || return 1
assert_output_contains "$actual_output" "$expected_name_output" || return 1
assert_output_contains "$actual_output" "$expected_config_name_output" || return 1
}
function solr_test_allows_config_reuse_when_n_option_specifies_same_config() {
local create_cmd1="bin/solr create_collection -c COLL_NAME_1 -n shared_config"
local expected_coll_name_output1="Created collection 'COLL_NAME_1'"
local create_cmd2="bin/solr create_collection -c COLL_NAME_2 -n shared_config"
local expected_coll_name_output2="Created collection 'COLL_NAME_2'"
local expected_config_name_output="config-set 'shared_config'"
local actual_output1; actual_output1=$($create_cmd1)
assert_cmd_succeeded "$create_cmd1" || return 1
assert_output_contains "$actual_output1" "$expected_coll_name_output1" || return 1
assert_output_contains "$actual_output1" "$expected_config_name_output" || return 1
local actual_output2; actual_output2=$($create_cmd2)
assert_cmd_succeeded "$create_cmd2" || return 1
assert_output_contains "$actual_output2" "$expected_coll_name_output2" || return 1
assert_output_contains "$actual_output2" "$expected_config_name_output" || return 1
}
function solr_test_create_multisharded_collections_when_s_provided() {
local create_cmd="bin/solr create_collection -c COLL_NAME -s 2"
local expected_coll_name_output="Created collection 'COLL_NAME'"
local expected_shards_output="2 shard(s)"
local actual_output; actual_output=$($create_cmd)
assert_cmd_succeeded "$create_cmd" || return 1
assert_output_contains "$actual_output" "$expected_coll_name_output" || return 1
assert_output_contains "$actual_output" "$expected_shards_output" || return 1
}
function solr_test_creates_replicated_collections_when_r_provided() {
local create_cmd="bin/solr create_collection -c COLL_NAME -rf 2"
local expected_coll_name_output="Created collection 'COLL_NAME'"
local expected_rf_output="2 replica(s)"
local actual_output; actual_output=$($create_cmd)
assert_cmd_succeeded "$create_cmd" || return 1
assert_output_contains "$actual_output" "$expected_coll_name_output" || return 1
assert_output_contains "$actual_output" "$expected_rf_output" || return 1
}

View File

@ -0,0 +1,70 @@
#!/bin/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.
source bin-test/utils/assert.sh
source bin-test/utils/cleanup.sh
# All tests should start with solr_test
function solr_suite_before() {
bin/solr stop -all > /dev/null 2>&1
bin/solr start -c > /dev/null 2>&1
}
function solr_suite_after() {
bin/solr stop -all > /dev/null 2>&1
}
function solr_unit_test_before() {
delete_all_collections
}
function solr_unit_test_after() {
delete_all_collections
}
function solr_test_can_delete_collection() {
bin/solr create_collection -c COLL_NAME
assert_collection_exists "COLL_NAME" || return 1
bin/solr delete -c "COLL_NAME"
assert_collection_doesnt_exist "COLL_NAME" || return 1
}
function solr_test_deletes_accompanying_zk_config_by_default() {
bin/solr create_collection -c "COLL_NAME"
assert_config_exists "COLL_NAME" || return 1
bin/solr delete -c "COLL_NAME"
assert_config_doesnt_exist "COLL_NAME" || return 1
}
function solr_test_deletes_accompanying_zk_config_with_nondefault_name() {
bin/solr create_collection -c "COLL_NAME" -n "NONDEFAULT_CONFIG_NAME"
assert_config_exists "NONDEFAULT_CONFIG_NAME" || return 1
bin/solr delete -c "COLL_NAME"
assert_config_doesnt_exist "NONDEFAULT_CONFIG_NAME"
}
function solr_test_deleteConfig_option_can_opt_to_leave_config_in_zk() {
bin/solr create_collection -c "COLL_NAME"
assert_config_exists "COLL_NAME"
bin/solr delete -c "COLL_NAME" -deleteConfig false
assert_config_exists "COLL_NAME"
}

134
solr/bin-test/test_help.sh Normal file
View File

@ -0,0 +1,134 @@
#!/bin/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.
source bin-test/utils/assert.sh
function solr_test_start_help_flag_prints_help() {
local help_cmd="bin/solr start -help"
local expected_output="Usage: solr start"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_stop_help_flag_prints_help() {
local help_cmd="bin/solr stop -help"
local expected_output="Usage: solr stop"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_restart_help_flag_prints_help() {
local help_cmd="bin/solr restart -help"
local expected_output="Usage: solr restart"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_status_help_flag_prints_help() {
#TODO Currently the status flag doesn't return nice help text!
return 0
}
function solr_test_healthcheck_help_flag_prints_help() {
local help_cmd="bin/solr healthcheck -help"
local expected_output="Usage: solr healthcheck"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_create_help_flag_prints_help() {
local help_cmd="bin/solr create -help"
local expected_output="Usage: solr create"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_create_core_help_flag_prints_help() {
local help_cmd="bin/solr create_core -help"
local expected_output="Usage: solr create_core"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_create_collection_help_flag_prints_help() {
local help_cmd="bin/solr create_collection -help"
local expected_output="Usage: solr create_collection"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_delete_help_flag_prints_help() {
local help_cmd="bin/solr delete -help"
local expected_output="Usage: solr delete"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_version_help_flag_prints_help() {
#TODO Currently the version -help flag doesn't return nice help text!
return 0
}
function solr_test_zk_help_flag_prints_help() {
local help_cmd="bin/solr zk -help"
local expected_output="Usage: solr zk"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_auth_help_flag_prints_help() {
local help_cmd="bin/solr auth -help"
local expected_output="Usage: solr auth"
local actual_output; actual_output=$($help_cmd)
assert_cmd_succeeded "$help_cmd" || return 1
assert_output_contains "$actual_output" "$expected_output" || return 1
assert_output_not_contains "$actual_output" "ERROR" || return 1
}
function solr_test_assert_help_flag_prints_help() {
#TODO Currently the assert -help flag doesn't return nice help text!
# It returns autogenerated SolrCLI help, which is similar but not _quite_
# the same thing.
return 0
}

View File

@ -0,0 +1,39 @@
#!/bin/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.
# All tests should start with solr_test
function solr_suite_before() {
bin/solr stop -all > /dev/null 2>&1
}
function solr_suite_after() {
bin/solr stop -all > /dev/null 2>&1
}
function solr_test_11740_checks_f() {
# SOLR-11740
bin/solr start
bin/solr start -p 7574
bin/solr stop -all 2>&1 | grep -i "forcefully killing"
rcode=$?
if [[ $rcode -eq 0 ]]
then
echo "Unexpected forceful kill - please check."
return 2
fi
}

View File

@ -0,0 +1,123 @@
#!/bin/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.
ASSERT_SUCCEEDED=1
ASSERT_FAILURE=0
function assert_cmd_succeeded() {
retval=$?
if [[ $? -ne 0 ]]; then
echo "Expected command $1 to succeed, but exited with $retval"
return $ASSERT_FAILURE
fi
return $ASSERT_SUCCESS
}
function assert_cmd_failed() {
retval=$?
if [[ $? -eq 0 ]]; then
echo "Expected command $1 to fail, but exited with $retval"
return $ASSERT_FAILURE
fi
return $ASSERT_SUCCESS
}
function assert_output_contains() {
local actual_output="$1"
local needle="$2"
if echo "$actual_output" | grep -q "$needle"; then
return $ASSERT_SUCCESS
fi
echo "Expected to find "$needle" in output [$actual_output]"
return $ASSERT_FAILURE
}
function assert_output_not_contains() {
local actual_output="$1"
local needle="$2"
if echo "$actual_output" | grep -q "$needle"; then
echo "Didn't expect to find "$needle" in output [$actual_output]"
return $ASSERT_FAILURE
fi
return $ASSERT_SUCCESS
}
function assert_collection_exists() {
local coll_name=$1
local coll_list=$(bin/solr zk ls /collections -z localhost:9983)
for coll in "$coll_list";
do
if [[ $(echo $coll | tr -d " ") -eq $coll_name ]]; then
return $ASSERT_SUCCESS
fi
done
echo "Expected to find collection named [$coll_name], but could only find: $coll_list"
return $ASSERT_FAILURE
}
function assert_collection_doesnt_exist() {
local coll_name=$1
local coll_list=$(bin/solr zk ls /collections -z localhost:9983)
for coll in "$coll_list";
do
if [[ $(echo $coll | tr -d " ") -eq $coll_name ]]; then
echo "Expected not to find collection [$coll_name], but it exists"
return $ASSERT_FAILURE
fi
done
return $ASSERT_SUCCESS
}
function assert_config_exists() {
local config_name=$1
local config_list=$(bin/solr zk ls /configs -z localhost:9983)
for config in "$config_list";
do
if [[ $(echo $config | tr -d " ") -eq $config_name ]]; then
return $ASSERT_SUCCESS
fi
done
echo "Expected to find config named [$config_name], but could only find: $config_list"
return $ASSERT_FAILURE
}
function assert_config_doesnt_exist() {
local config_name=$1
local config_list=$(bin/solr zk ls /configs -z localhost:9983)
for config in "$config_list";
do
if [[ $(echo $config | tr -d " ") -eq $config_name ]]; then
echo "Expected not to find config [$config_name], but it exists"
return $ASSERT_FAILURE
fi
done
return $ASSERT_SUCCESS
}

View File

@ -0,0 +1,25 @@
#!/bin/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.
function delete_all_collections() {
local collection_list="$(bin/solr zk ls /collections -z localhost:9983)"
for collection in $collection_list;
do
if [[ -n $collection ]]; then
bin/solr delete -c $collection
fi
done
}