Re-enable plugin and upgrade bats tests (#51565)

While the tests remained in place, the execution of these tests were
lost when creating the DistroTestPlugin. This commit restores executing
them.
This commit is contained in:
Ryan Ernst 2020-05-20 07:43:34 -07:00 committed by GitHub
parent 86f65590a0
commit e918f04747
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 41 additions and 34 deletions

16
Vagrantfile vendored
View file

@ -491,22 +491,12 @@ JAVA
rm -rf /tmp/bats rm -rf /tmp/bats
} }
cat \<\<VARS > /etc/profile.d/elasticsearch_vars.sh
export ZIP=/elasticsearch/distribution/zip/build/distributions
export TAR=/elasticsearch/distribution/tar/build/distributions
export RPM=/elasticsearch/distribution/rpm/build/distributions
export DEB=/elasticsearch/distribution/deb/build/distributions
export PACKAGING_TESTS=/project/build/packaging/tests
VARS
cat \<\<SUDOERS_VARS > /etc/sudoers.d/elasticsearch_vars cat \<\<SUDOERS_VARS > /etc/sudoers.d/elasticsearch_vars
Defaults env_keep += "ZIP"
Defaults env_keep += "TAR"
Defaults env_keep += "RPM"
Defaults env_keep += "DEB"
Defaults env_keep += "PACKAGING_ARCHIVES"
Defaults env_keep += "PACKAGING_TESTS"
Defaults env_keep += "BATS_UTILS" Defaults env_keep += "BATS_UTILS"
Defaults env_keep += "BATS_TESTS" Defaults env_keep += "BATS_TESTS"
Defaults env_keep += "BATS_PLUGINS"
Defaults env_keep += "BATS_UPGRADE"
Defaults env_keep += "PACKAGE_NAME"
Defaults env_keep += "JAVA_HOME" Defaults env_keep += "JAVA_HOME"
Defaults env_keep += "SYSTEM_JAVA_HOME" Defaults env_keep += "SYSTEM_JAVA_HOME"
SUDOERS_VARS SUDOERS_VARS

View file

@ -118,13 +118,22 @@ public class DistroTestPlugin implements Plugin<Project> {
lifecyleTasks.get(distribution.getType()).configure(t -> t.dependsOn(destructiveTask)); lifecyleTasks.get(distribution.getType()).configure(t -> t.dependsOn(destructiveTask));
} }
Map<String, TaskProvider<?>> batsTests = new HashMap<>(); TaskProvider<BatsTestTask> batsPluginsTest = configureBatsTest(
configureBatsTest(project, "plugins", distributionsDir, copyDistributionsTask, copyPluginsTask).configure( project,
t -> t.setPluginsDir(pluginsDir) "plugins",
distributionsDir,
copyDistributionsTask,
copyPluginsTask
); );
configureBatsTest(project, "upgrade", distributionsDir, copyDistributionsTask, copyUpgradeTask).configure( batsPluginsTest.configure(t -> t.setPluginsDir(pluginsDir));
t -> t.setUpgradeDir(upgradeDir) TaskProvider<BatsTestTask> batsUpgradeTest = configureBatsTest(
project,
"upgrade",
distributionsDir,
copyDistributionsTask,
copyUpgradeTask
); );
batsUpgradeTest.configure(t -> t.setUpgradeDir(upgradeDir));
project.subprojects(vmProject -> { project.subprojects(vmProject -> {
vmProject.getPluginManager().apply(VagrantBasePlugin.class); vmProject.getPluginManager().apply(VagrantBasePlugin.class);
@ -168,12 +177,15 @@ public class DistroTestPlugin implements Plugin<Project> {
} }
} }
batsTests.forEach((desc, task) -> { configureVMWrapperTask(vmProject, "bats plugins", batsPluginsTest.getName(), vmDependencies).configure(t -> {
configureVMWrapperTask(vmProject, desc, task.getName(), vmDependencies).configure(t -> { t.setProgressHandler(new BatsProgressLogger(project.getLogger()));
t.setProgressHandler(new BatsProgressLogger(project.getLogger())); t.onlyIf(spec -> isWindows(vmProject) == false); // bats doesn't run on windows
t.onlyIf(spec -> isWindows(vmProject) == false); // bats doesn't run on windows t.dependsOn(copyDistributionsTask, copyPluginsTask);
t.dependsOn(copyDistributionsTask); });
}); configureVMWrapperTask(vmProject, "bats upgrade", batsUpgradeTest.getName(), vmDependencies).configure(t -> {
t.setProgressHandler(new BatsProgressLogger(project.getLogger()));
t.onlyIf(spec -> isWindows(vmProject) == false); // bats doesn't run on windows
t.dependsOn(copyDistributionsTask, copyUpgradeTask);
}); });
}); });
} }

View file

@ -210,10 +210,10 @@ fi
} }
@test "[$GROUP] install ingest-attachment plugin" { @test "[$GROUP] install ingest-attachment plugin" {
# we specify the version on the poi-4.0.0.jar so that the test does # we specify the version on the poi-4.0.1.jar so that the test does
# not spuriously pass if the jar is missing but the other poi jars # not spuriously pass if the jar is missing but the other poi jars
# are present # are present
install_and_check_plugin ingest attachment bcprov-jdk15on-*.jar tika-core-*.jar pdfbox-*.jar poi-4.0.0.jar poi-ooxml-4.0.0.jar poi-ooxml-schemas-*.jar poi-scratchpad-*.jar install_and_check_plugin ingest attachment bcprov-jdk15on-*.jar tika-core-*.jar pdfbox-*.jar poi-4.0.1.jar poi-ooxml-4.0.1.jar poi-ooxml-schemas-*.jar poi-scratchpad-*.jar
} }
@test "[$GROUP] check ingest-common module" { @test "[$GROUP] check ingest-common module" {
@ -240,7 +240,7 @@ fi
} }
@test "[$GROUP] check lang-painless module" { @test "[$GROUP] check lang-painless module" {
check_secure_module lang-painless antlr4-runtime-*.jar asm-debug-all-*.jar check_secure_module lang-painless antlr4-runtime-*.jar asm-util-*.jar asm-tree-*.jar asm-commons-*.jar asm-analysis-*.jar
} }
@test "[$GROUP] install murmur3 mapper plugin" { @test "[$GROUP] install murmur3 mapper plugin" {
@ -408,8 +408,8 @@ fi
sudo -E -u $ESPLUGIN_COMMAND_USER "$ESHOME/bin/elasticsearch-plugin" install --batch "file://$relativePath" > /tmp/plugin-cli-output sudo -E -u $ESPLUGIN_COMMAND_USER "$ESHOME/bin/elasticsearch-plugin" install --batch "file://$relativePath" > /tmp/plugin-cli-output
# exclude progress line # exclude progress line
local loglines=$(cat /tmp/plugin-cli-output | grep -v "^[[:cntrl:]]" | wc -l) local loglines=$(cat /tmp/plugin-cli-output | grep -v "^[[:cntrl:]]" | wc -l)
[ "$loglines" -eq "2" ] || { [ "$loglines" -eq "3" ] || {
echo "Expected 2 lines excluding progress bar but the output had $loglines lines and was:" echo "Expected 3 lines excluding progress bar but the output had $loglines lines and was:"
cat /tmp/plugin-cli-output cat /tmp/plugin-cli-output
false false
} }

View file

@ -46,6 +46,8 @@ setup() {
sameVersion="false" sameVersion="false"
if [ "$(cat $BATS_UPGRADE/upgrade_from_version)" == "$(cat version)" ]; then if [ "$(cat $BATS_UPGRADE/upgrade_from_version)" == "$(cat version)" ]; then
sameVersion="true" sameVersion="true"
else
echo "BWC test version: $(cat $BATS_UPGRADE/upgrade_from_version)"
fi fi
# TODO: this needs to conditionally change based on version > 6.3.0 # TODO: this needs to conditionally change based on version > 6.3.0
if [ -f $BATS_UPGRADE/upgrade_is_oss ]; then if [ -f $BATS_UPGRADE/upgrade_is_oss ]; then

View file

@ -59,7 +59,7 @@ install_package() {
local version=$(cat version) local version=$(cat version)
local rpmCommand='-i' local rpmCommand='-i'
local dir='./' local dir='./'
while getopts ":fuv:" opt; do while getopts ":ufd:v:" opt; do
case $opt in case $opt in
u) u)
rpmCommand='-U' rpmCommand='-U'

View file

@ -185,5 +185,7 @@ install_meta_plugin() {
compare_plugins_list() { compare_plugins_list() {
cat $1 | sort > /tmp/plugins cat $1 | sort > /tmp/plugins
echo "Checking plugins from $2 (<) against expected plugins (>):" echo "Checking plugins from $2 (<) against expected plugins (>):"
diff -w /elasticsearch/qa/vagrant/build/plugins/expected /tmp/plugins # bats tests are run under build/packaging/distributions, and expected file is in build/plugins/expected
# this can't be an absolute path since it differs whether running in vagrant or GCP
diff -w ../../plugins/expected /tmp/plugins
} }

View file

@ -428,7 +428,7 @@ describe_port() {
} }
debug_collect_logs() { debug_collect_logs() {
local es_logfile="$ESLOG/elasticsearch_server.json" local es_logfile="/var/log/elasticsearch/elasticsearch.log"
local system_logfile='/var/log/messages' local system_logfile='/var/log/messages'
if [ -e "$es_logfile" ]; then if [ -e "$es_logfile" ]; then
@ -497,6 +497,7 @@ wait_for_elasticsearch_status() {
fi fi
echo $output | grep $desiredStatus || { echo $output | grep $desiredStatus || {
echo "unexpected status: '$output' wanted '$desiredStatus'" echo "unexpected status: '$output' wanted '$desiredStatus'"
debug_collect_logs
false false
} }
} }

View file

@ -58,7 +58,7 @@ tasks.dependenciesInfo.enabled = false
tasks.thirdPartyAudit.ignoreMissingClasses() tasks.thirdPartyAudit.ignoreMissingClasses()
tasks.register('destructivePackagingTest') { tasks.register('destructivePackagingTest') {
dependsOn 'destructiveDistroTest' dependsOn 'destructiveDistroTest', 'destructiveBatsTest.plugins', 'destructiveBatsTest.upgrade'
} }
processTestResources { processTestResources {
@ -67,7 +67,7 @@ processTestResources {
subprojects { Project platformProject -> subprojects { Project platformProject ->
tasks.register('packagingTest') { tasks.register('packagingTest') {
dependsOn 'distroTest' dependsOn 'distroTest', 'batsTest.plugins', 'batsTest.upgrade'
} }
vagrant { vagrant {