From 2cd124d26391ffdd7c5e658bb2f5983ffce9816f Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Fri, 7 Aug 2015 13:57:30 +0200 Subject: [PATCH] Add a skeleton for QA tests. For now this just tries to install license, marvel and watcher, and then checks that these plugins are listed in the node infos. I can do shield once I figure out how to set it up for REST tests. Original commit: elastic/x-pack-elasticsearch@8549f4bc5a85b736573c521818036b8d62279bd1 --- pom.xml | 1 + qa/pom.xml | 321 ++++++++++++++++++ qa/smoke-test-plugins/integration-tests.xml | 47 +++ qa/smoke-test-plugins/pom.xml | 264 ++++++++++++++ .../test/smoke_test_plugins/10_basic.yaml | 17 + .../smoketest/SmokeTestPluginsIT.java | 27 ++ watcher/pom.xml | 2 +- 7 files changed, 678 insertions(+), 1 deletion(-) create mode 100644 qa/pom.xml create mode 100644 qa/smoke-test-plugins/integration-tests.xml create mode 100644 qa/smoke-test-plugins/pom.xml create mode 100644 qa/smoke-test-plugins/rest-api-spec/test/smoke_test_plugins/10_basic.yaml create mode 100644 qa/smoke-test-plugins/src/test/java/org/elasticsearch/smoketest/SmokeTestPluginsIT.java diff --git a/pom.xml b/pom.xml index d554b913ed4..0e3589909a9 100644 --- a/pom.xml +++ b/pom.xml @@ -208,5 +208,6 @@ shield watcher marvel + qa diff --git a/qa/pom.xml b/qa/pom.xml new file mode 100644 index 00000000000..40053a6cd0f --- /dev/null +++ b/qa/pom.xml @@ -0,0 +1,321 @@ + + + + 4.0.0 + + org.elasticsearch.plugin.qa + x-plugins-qa + 2.0.0-beta1-SNAPSHOT + pom + QA: Parent POM + 2015 + + + org.elasticsearch + elasticsearch-parent + 2.0.0-beta1-SNAPSHOT + + + + + + + + + + org.hamcrest + hamcrest-all + test + + + org.apache.lucene + lucene-test-framework + test + + + org.elasticsearch + elasticsearch + test-jar + test + + + + + org.elasticsearch + elasticsearch + provided + + + org.apache.lucene + lucene-core + provided + + + org.apache.lucene + lucene-backward-codecs + provided + + + org.apache.lucene + lucene-analyzers-common + provided + + + org.apache.lucene + lucene-queries + provided + + + org.apache.lucene + lucene-memory + provided + + + org.apache.lucene + lucene-highlighter + provided + + + org.apache.lucene + lucene-queryparser + provided + + + org.apache.lucene + lucene-suggest + provided + + + org.apache.lucene + lucene-join + provided + + + org.apache.lucene + lucene-spatial + provided + + + org.apache.lucene + lucene-expressions + provided + + + com.spatial4j + spatial4j + provided + + + com.vividsolutions + jts + provided + + + com.github.spullara.mustache.java + compiler + provided + + + com.google.guava + guava + provided + + + com.carrotsearch + hppc + provided + + + joda-time + joda-time + provided + + + org.joda + joda-convert + provided + + + com.fasterxml.jackson.core + jackson-core + provided + + + com.fasterxml.jackson.dataformat + jackson-dataformat-smile + provided + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + provided + + + com.fasterxml.jackson.dataformat + jackson-dataformat-cbor + provided + + + io.netty + netty + provided + + + com.ning + compress-lzf + provided + + + com.tdunning + t-digest + provided + + + org.apache.commons + commons-lang3 + provided + + + commons-cli + commons-cli + provided + + + org.codehaus.groovy + groovy-all + indy + provided + + + log4j + log4j + provided + + + log4j + apache-log4j-extras + provided + + + org.slf4j + slf4j-api + provided + + + net.java.dev.jna + jna + provided + + + + + + org.apache.httpcomponents + httpclient + test + + + + + + + + src/main/resources + true + + **/*.properties + + + + + + + src/test/java + + **/*.json + **/*.txt + + + + src/test/resources + + elasticsearch.yml + **/*.properties + + + + src/test/resources + true + + elasticsearch.yml + **/*.properties + + + + + ${project.basedir}/rest-api-spec + true + rest-api-spec + + api/*.json + test/**/*.yaml + + + + + ${elasticsearch.tools.directory}/rest-api-spec + rest-api-spec + + + api/info.json + api/cluster.health.json + api/cluster.state.json + + api/index.json + api/get.json + api/update.json + api/search.json + api/indices.analyze.json + api/indices.create.json + api/indices.refresh.json + api/nodes.info.json + api/count.json + + + + + ${elasticsearch.tools.directory}/shared-test-resources + false + + + + + + + com.carrotsearch.randomizedtesting + junit4-maven-plugin + + + integ-tests + + + 1 + + + 127.0.0.1:${integ.transport.port} + + + + + + + + + + + smoke-test-plugins + + diff --git a/qa/smoke-test-plugins/integration-tests.xml b/qa/smoke-test-plugins/integration-tests.xml new file mode 100644 index 00000000000..1c1e468b4ac --- /dev/null +++ b/qa/smoke-test-plugins/integration-tests.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/qa/smoke-test-plugins/pom.xml b/qa/smoke-test-plugins/pom.xml new file mode 100644 index 00000000000..88ac234b1c7 --- /dev/null +++ b/qa/smoke-test-plugins/pom.xml @@ -0,0 +1,264 @@ + + + + 4.0.0 + + + org.elasticsearch.plugin.qa + x-plugins-qa + 2.0.0-beta1-SNAPSHOT + + + + + smoke-test-x-plugins + QA: Smoke Test X-Plugins + Loads up all of our commercial and open-source plugins + + + true + ${project.basedir}/integration-tests.xml + smoke_test_plugins + false + + elasticsearch-watcher,elasticsearch-marvel,elasticsearch-license + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + integ-setup-dependencies + pre-integration-test + + copy + + + ${skip.integ.tests} + true + ${integ.deps}/plugins + + + + + org.elasticsearch.distribution.zip + elasticsearch + ${elasticsearch.version} + zip + true + ${integ.deps} + + + + + org.elasticsearch.plugin + elasticsearch-license + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-watcher + ${elasticsearch.version} + zip + true + + + + + + org.elasticsearch.plugin + elasticsearch-marvel + ${elasticsearch.version} + zip + true + + + + + org.elasticsearch.plugin + elasticsearch-analysis-kuromoji + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-analysis-smartcn + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-analysis-stempel + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-analysis-phonetic + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-analysis-icu + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-cloud-gce + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-cloud-azure + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-cloud-aws + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-delete-by-query + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-lang-python + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-lang-javascript + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-mapper-size + ${elasticsearch.version} + zip + true + + + + org.elasticsearch.plugin + elasticsearch-site-example + ${elasticsearch.version} + zip + true + + + + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + + integ-setup + pre-integration-test + + run + + + + + + + + + + ${skip.integ.tests} + + + + + integ-teardown + post-integration-test + + run + + + + + + ${skip.integ.tests} + + + + + + ant-contrib + ant-contrib + 1.0b3 + + + ant + ant + + + + + org.apache.ant + ant-nodeps + 1.8.1 + + + + + + + diff --git a/qa/smoke-test-plugins/rest-api-spec/test/smoke_test_plugins/10_basic.yaml b/qa/smoke-test-plugins/rest-api-spec/test/smoke_test_plugins/10_basic.yaml new file mode 100644 index 00000000000..abd4ae73945 --- /dev/null +++ b/qa/smoke-test-plugins/rest-api-spec/test/smoke_test_plugins/10_basic.yaml @@ -0,0 +1,17 @@ +# Integration tests for smoke testing plugins +# +"Plugins are actually installed": + - do: + cluster.state: {} + + # Get master node id + - set: { master_node: master } + + - do: + nodes.info: {} + + - match: { nodes.$master.plugins.11.name: license } + - match: { nodes.$master.plugins.13.name: marvel } +# Add shield when we figure out how to rest test it +# - match: { nodes.$master.plugins.13.name: shield } + - match: { nodes.$master.plugins.15.name: watcher } diff --git a/qa/smoke-test-plugins/src/test/java/org/elasticsearch/smoketest/SmokeTestPluginsIT.java b/qa/smoke-test-plugins/src/test/java/org/elasticsearch/smoketest/SmokeTestPluginsIT.java new file mode 100644 index 00000000000..23d3fbcb09c --- /dev/null +++ b/qa/smoke-test-plugins/src/test/java/org/elasticsearch/smoketest/SmokeTestPluginsIT.java @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +package org.elasticsearch.smoketest; + +import com.carrotsearch.randomizedtesting.annotations.Name; +import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; +import org.elasticsearch.test.rest.ESRestTestCase; +import org.elasticsearch.test.rest.RestTestCandidate; +import org.elasticsearch.test.rest.parser.RestTestParseException; + +import java.io.IOException; + +public class SmokeTestPluginsIT extends ESRestTestCase { + + public SmokeTestPluginsIT(@Name("yaml") RestTestCandidate testCandidate) { + super(testCandidate); + } + + @ParametersFactory + public static Iterable parameters() throws IOException, RestTestParseException { + return ESRestTestCase.createParameters(0, 1); + } +} + diff --git a/watcher/pom.xml b/watcher/pom.xml index e52fbc98a0a..cca4654291b 100644 --- a/watcher/pom.xml +++ b/watcher/pom.xml @@ -62,7 +62,7 @@ org.elasticsearch.plugin elasticsearch-shield ${project.version} - true + provided