This commit migrates the simple test of the cron eval tool from bats to java packaging tests. relates #46005
This commit is contained in:
parent
4ff314a9d5
commit
6ee1baf2ed
|
@ -114,7 +114,6 @@ public class DistroTestPlugin implements Plugin<Project> {
|
||||||
}
|
}
|
||||||
Map<String, TaskProvider<?>> batsTests = new HashMap<>();
|
Map<String, TaskProvider<?>> batsTests = new HashMap<>();
|
||||||
batsTests.put("bats oss", configureBatsTest(project, "oss", distributionsDir, copyDistributionsTask));
|
batsTests.put("bats oss", configureBatsTest(project, "oss", distributionsDir, copyDistributionsTask));
|
||||||
batsTests.put("bats default", configureBatsTest(project, "default", distributionsDir, copyDistributionsTask));
|
|
||||||
configureBatsTest(project, "plugins", distributionsDir, copyDistributionsTask, copyPluginsTask).configure(
|
configureBatsTest(project, "plugins", distributionsDir, copyDistributionsTask, copyPluginsTask).configure(
|
||||||
t -> t.setPluginsDir(pluginsDir)
|
t -> t.setPluginsDir(pluginsDir)
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
#!/usr/bin/env bats
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
# This file is used to test the X-Pack package.
|
|
||||||
|
|
||||||
# WARNING: This testing file must be executed as root and can
|
|
||||||
# dramatically change your system. It removes the 'elasticsearch'
|
|
||||||
# user/group and also many directories. Do not execute this file
|
|
||||||
# unless you know exactly what you are doing.
|
|
||||||
|
|
||||||
load $BATS_UTILS/utils.bash
|
|
||||||
load $BATS_UTILS/tar.bash
|
|
||||||
load $BATS_UTILS/plugins.bash
|
|
||||||
load $BATS_UTILS/xpack.bash
|
|
||||||
|
|
||||||
setup() {
|
|
||||||
skip_not_tar_gz
|
|
||||||
export ESHOME=/tmp/elasticsearch
|
|
||||||
export PACKAGE_NAME="elasticsearch"
|
|
||||||
export_elasticsearch_paths
|
|
||||||
export ESPLUGIN_COMMAND_USER=elasticsearch
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "[X-PACK] install default distribution" {
|
|
||||||
# Cleans everything for the 1st execution
|
|
||||||
clean_before_test
|
|
||||||
|
|
||||||
# Install the archive
|
|
||||||
install_archive
|
|
||||||
set_debug_logging
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "[X-PACK] verify x-pack installation" {
|
|
||||||
verify_xpack_installation
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "[X-PACK] verify croneval works" {
|
|
||||||
run $ESHOME/bin/elasticsearch-croneval "0 0 20 ? * MON-THU" -c 2
|
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
[[ "$output" == *"Valid!"* ]] || {
|
|
||||||
echo "Expected output message to contain [Valid!] but found: $output"
|
|
||||||
false
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -58,7 +58,7 @@ tasks.dependenciesInfo.enabled = false
|
||||||
tasks.thirdPartyAudit.ignoreMissingClasses()
|
tasks.thirdPartyAudit.ignoreMissingClasses()
|
||||||
|
|
||||||
tasks.register('destructivePackagingTest') {
|
tasks.register('destructivePackagingTest') {
|
||||||
dependsOn 'destructiveDistroTest', 'destructiveBatsTest.oss', 'destructiveBatsTest.default'
|
dependsOn 'destructiveDistroTest', 'destructiveBatsTest.oss'
|
||||||
}
|
}
|
||||||
|
|
||||||
processTestResources {
|
processTestResources {
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Licensed to Elasticsearch under one or more contributor
|
||||||
|
* license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright
|
||||||
|
* ownership. Elasticsearch 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.packaging.test;
|
||||||
|
|
||||||
|
import org.elasticsearch.packaging.util.Distribution;
|
||||||
|
import org.elasticsearch.packaging.util.Shell;
|
||||||
|
import org.junit.Before;
|
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.containsString;
|
||||||
|
import static org.junit.Assume.assumeTrue;
|
||||||
|
|
||||||
|
public class CronEvalCliTests extends PackagingTestCase {
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void filterDistros() {
|
||||||
|
assumeTrue("only default distro", distribution.flavor == Distribution.Flavor.DEFAULT);
|
||||||
|
assumeTrue("no docker", distribution.packaging != Distribution.Packaging.DOCKER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void test10Install() throws Exception {
|
||||||
|
install();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void test20Help() throws Exception {
|
||||||
|
Shell.Result result = installation.executables().cronevalTool.run("--help");
|
||||||
|
assertThat(result.stdout, containsString("Validates and evaluates a cron expression"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void test30Run() throws Exception {
|
||||||
|
Shell.Result result = installation.executables().cronevalTool.run("'0 0 20 ? * MON-THU' -c 2");
|
||||||
|
assertThat(result.stdout, containsString("Valid!"));
|
||||||
|
}
|
||||||
|
}
|
|
@ -177,6 +177,7 @@ public class Installation {
|
||||||
public final Executable keystoreTool = new Executable("elasticsearch-keystore");
|
public final Executable keystoreTool = new Executable("elasticsearch-keystore");
|
||||||
public final Executable certutilTool = new Executable("elasticsearch-certutil");
|
public final Executable certutilTool = new Executable("elasticsearch-certutil");
|
||||||
public final Executable certgenTool = new Executable("elasticsearch-certgen");
|
public final Executable certgenTool = new Executable("elasticsearch-certgen");
|
||||||
|
public final Executable cronevalTool = new Executable("elasticsearch-croneval");
|
||||||
public final Executable shardTool = new Executable("elasticsearch-shard");
|
public final Executable shardTool = new Executable("elasticsearch-shard");
|
||||||
public final Executable nodeTool = new Executable("elasticsearch-node");
|
public final Executable nodeTool = new Executable("elasticsearch-node");
|
||||||
public final Executable setupPasswordsTool = new Executable("elasticsearch-setup-passwords");
|
public final Executable setupPasswordsTool = new Executable("elasticsearch-setup-passwords");
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class CronEvalTool extends LoggingAwareCommand {
|
||||||
int count = countOption.value(options);
|
int count = countOption.value(options);
|
||||||
List<String> args = arguments.values(options);
|
List<String> args = arguments.values(options);
|
||||||
if (args.size() != 1) {
|
if (args.size() != 1) {
|
||||||
throw new UserException(ExitCodes.USAGE, "expecting a single argument that is the cron expression to evaluate");
|
throw new UserException(ExitCodes.USAGE, "expecting a single argument that is the cron expression to evaluate, got " + args);
|
||||||
}
|
}
|
||||||
boolean printDetail = options.has(detailOption);
|
boolean printDetail = options.has(detailOption);
|
||||||
execute(terminal, args.get(0), count, printDetail);
|
execute(terminal, args.get(0), count, printDetail);
|
||||||
|
|
Loading…
Reference in New Issue