mirror of https://github.com/apache/lucene.git
134 lines
5.4 KiB
Bash
134 lines
5.4 KiB
Bash
#!/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
|
|
}
|