# Licensed to Elasticsearch B.V. under one or more contributor # license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright # ownership. Elasticsearch B.V. 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. require 'bundler/gem_tasks' require 'rake/testtask' require 'rspec/core/rake_task' task :default do exec "rake --tasks" end Rake::TestTask.new('test:unit') do |test| test.libs << 'test' test.test_files = FileList['test/unit/**/*_test.rb'] test.verbose = false test.warning = false end namespace :test do desc 'Run REST API YAML tests' RSpec::Core::RakeTask.new(:rest_api) do |t| t.pattern = 'spec/xpack/rest_api_yaml_spec.rb' end RSpec::Core::RakeTask.new(:spec) do |t| t.pattern = 'spec/xpack/**/*_spec.rb' t.exclude_pattern = 'spec/xpack/rest_api_yaml_spec.rb' end desc "Run integration tests" task :integration do Rake::Task['test:rest_api'].invoke end desc "Run all tests" task :all do Rake::Task['test:unit'].invoke Rake::Task['test:spec'].invoke Rake::Task['test:rest_api'].invoke end desc "Run Elasticsearch with X-Pack installed (Docker)" task :elasticsearch, :stack_version do |_, args| sh <<-COMMAND.gsub(/^\s*/, '').gsub(/\s{1,}/, ' ') docker run \ --name elasticsearch-xpack \ --env "discovery.type=single-node" \ --env "cluster.name=elasticsearch-api-test" \ --env "node.name=es-01" \ --env "http.port=9200" \ --env "cluster.routing.allocation.disk.threshold_enabled=false" \ --env "node.attr.testattr=test" \ --env "path.repo=/tmp" \ --env "repositories.url.allowed_urls=http://snapshot.test*" \ --env "bootstrap.memory_lock=true" \ --env "ELASTIC_PASSWORD=changeme" \ --ulimit nofile=65536:65536 \ --ulimit memlock=-1:-1 \ --publish 9260:9200 \ --memory 4g \ --rm \ docker.elastic.co/elasticsearch/elasticsearch:#{args[:stack_version]} COMMAND end end