internal/build/cmd/generate/commands/gentests/skips.go (497 lines of code) (raw):

// 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. package gentests import ( "fmt" "gopkg.in/yaml.v2" "strings" ) var skipTests map[string][]string func init() { err := yaml.NewDecoder(strings.NewReader(skipTestsYAML)).Decode(&skipTests) if err != nil { panic(fmt.Sprintf("ERROR: %v", err)) } } var skipFiles = []string{ "update/85_fields_meta.yml", // Uses non-existing API property "update/86_fields_meta_with_types.yml", // --||-- "ml/jobs_get_result_buckets.yml", // Passes string value to int variable "ml/jobs_get_result_categories.yml", // --||-- "ml/set_upgrade_mode.yml", // --||-- "ml/sparse_vector_search.yml", "ml/evaluate_data_frame.yml", // Floats as map keys "search/320_disallow_queries.yml", // Tries to match key in an empty map (`transient:{}`) "watcher/stats/10_basic.yml", // Sets "emit_stacktraces" as string ("true"), not bool "search.highlight/20_fvh.yml", // bad backslash "indices.stats/50_disk_usage.yml", // Needs a replacement mechanism implementation "indices.stats/60_field_usage.yml", // Needs a replacement mechanism implementation "indices.stats/100_search_idle.yml", // incompatible maps of array "eql/10_basic.yml", "field_caps/50_fieldtype_filter.yml", // Incompatible test, need handling for double escaping keys with dots "aggregations/variable_width_histogram.yml", "aggregations/percentiles_bucket.yml", // incompatible maps "aggregations/scripted_metric.yml", // incompatible maps "cluster.desired_nodes/10_basic.yml", // incompatible $ stash replacement "cluster.put_settings/10_basic.yml", // incompatible with testing stack "api_key/12_grant.yml", // incompatible $ stash replacement, need bearer token integration "user_profile/10_basic.yml", "ml/3rd_party_deployment.yml", // incompatible ml tests "dlm/10_usage.yml", // incompatible float expansion "api_key/60_admin_user.yml", ".*esql\\/.*.yml", "deprecation/10_basic.yml", // incompatible test generation "search/520_fetch_fields.yml", // disabled for inconsistency "search.vectors/90_sparse_vector.yml", "indices.create/21_synthetic_source_stored.yml", "indices.create/20_synthetic_source.yml", "indices.recovery/20_synthetic_source.yml", "ingest_geoip/20_geoip_processor.yml", "range/20_synthetic_source.yml", "search/600_flattened_ignore_above.yml", "search/540_ignore_above_synthetic_source.yml", "update/100_synthetic_source.yml", } // TODO: Comments into descriptions for `Skip()` var skipTestsYAML = ` --- # Cannot distinguish between missing value for refresh and an empty string bulk/50_refresh.yml: - refresh=empty string immediately makes changes are visible in search bulk/51_refresh_with_types.yml: - refresh=empty string immediately makes changes are visible in search create/60_refresh.yml: - When refresh url parameter is an empty string that means "refresh immediately" create/61_refresh_with_types.yml: - When refresh url parameter is an empty string that means "refresh immediately" delete/50_refresh.yml: - When refresh url parameter is an empty string that means "refresh immediately" delete/51_refresh_with_types.yml: - When refresh url parameter is an empty string that means "refresh immediately" index/60_refresh.yml: - When refresh url parameter is an empty string that means "refresh immediately" index/61_refresh_with_types.yml: - When refresh url parameter is an empty string that means "refresh immediately" update/60_refresh.yml: - When refresh url parameter is an empty string that means "refresh immediately" update/61_refresh_with_types.yml: - When refresh url parameter is an empty string that means "refresh immediately" # expected [status] to be green cluster.health/10_basic.yml: - cluster health with closed index (pre 7.2.0) # catch: bad_request, Expected [status] to not be nil indices.data_stream/10_basic.yml: - Create data stream with invalid name # Stash in value cluster.reroute/11_explain.yml: nodes.info/30_settings.yml: nodes.stats/20_response_filtering.yml: nodes.stats/30_discovery.yml: - Discovery stats nodes.discovery/30_discovery.yml: - Discovery stats # wrongly assumed as []interface{} where these should be map[string]interface{} data_stream/150_tsdb.yml: eql/20_runtime_mappings.yml: - Execute EQL events query with search time keyword runtime field - Execute EQL events query with search time ip runtime field spatial/60_geo_line.yml: - Test geo_line aggregation on geo points - Test empty buckets spatial/100_geo_grid_ingest.yml: - Test geo_grid on geotile using default target format # Arbitrary key indices.shrink/10_basic.yml: indices.shrink/20_source_mapping.yml: indices.shrink/30_copy_settings.yml: indices.split/30_copy_settings.yml: nodes.info/10_basic.yml: nodes.info/40_aggs.yml: nodes.reload_secure_settings/10_basic.yml: nodes.stats/50_indexing_pressure.yml: nodes.stats/40_store_stats.yml: nodes.stats/60_transport_stats.yml: # Parsed response is YAML: value is map[interface {}]interface {}, not map[string]interface {} cat.aliases/20_headers.yml: - Simple alias with yaml body through Accept header # Incorrect int instead of float in match (aggregations.date_range.buckets.0.from: 1000000); TODO: PR aggregations/range.yml: - Date range - Min and max long range bounds - Float range - Double range range/20_synthetic_source.yml: - Float range - Double range # Mismatch in number parsing, 8623000 != 8.623e+06 aggregations/geo_distance.yml: - avg_bucket # .key in map issue aggregations/top_hits.yml: - explain # No support for headers per request yet tasks.list/10_basic.yml: - tasks_list headers # Node Selector feature not implemented cat.aliases/10_basic.yml: - "Help (pre 7.4.0)" - "Simple alias (pre 7.4.0)" - "Complex alias (pre 7.4.0)" - "Column headers (pre 7.4.0)" - "Alias against closed index (pre 7.4.0)" count/30_min_score.yml: - "count with min_score" # Checks for nil required arguments makes this test incompatible with the integration tests indices.delete_alias/all_path_options.yml: - check delete with blank index and blank alias indices.put_alias/all_path_options.yml: - put alias with blank index - put alias with missing name indices.put_mapping/10_basic.yml: - "Put mappings with explicit _doc type bwc" # Test fails with: [400 Bad Request] illegal_argument_exception, "template [test] has index patterns [test-*] matching patterns from existing index templates [test2,test] with patterns (test2 => [test-*],test => [test-*, test2-*]), use index templates (/_index_template) instead" test/indices.put_template/10_basic.yml: # Incompatible regex cat.indices/10_basic.yml: - Test cat indices output for closed index (pre 7.2.0) cat.templates/10_basic.yml: - "Sort templates" - "Multiple template" ml/trained_model_cat_apis.yml: - Test cat trained models # Missing test setup cluster.voting_config_exclusions/10_basic.yml: - "Add voting config exclusion by unknown node name" indices.resolve_index/10_basic_resolve_index.yml: - "Resolve index with hidden and closed indices" # Not relevant search/issue4895.yml: search/issue9606.yml: # FIXME bulk/80_cas.yml: bulk/81_cas_with_types.yml: # Incompatible variable replacement tsdb/150_tsdb.yml: - # Incompatible to date with test runner tsdb/80_index_resize.yml: - shrink - clone # Number conversion needs to be addressed in test gen tsdb/40_search.yml: - aggregate a metric tsdb/70_dimension_types.yml: - flattened field missing routing path field # Deliberate wrong type doesn't match Go types cluster.desired_nodes/10_basic.yml: - Test version must be a number - Test update move to a new history id - Test delete desired nodes - Test using the same version with different definition is forbidden - Test unknown settings are allowed in future versions - Test some settings can be overridden - Test history_id must be present - Test update desired nodes is idempotent - Test going backwards within the same history is forbidden # ----- X-Pack ---------------------------------------------------------------- # Floats "3.0" decoded as int "3" by gopkg.in/yaml.v2 analytics/top_metrics.yml: runtime_fields/30_double.yml: - docvalue_fields - fetch fields search.vectors/60_dense_vector_dynamic_mapping.yml: - Fields with float arrays below the threshold still map as float # Stash in body api_key/10_basic.yml: - Test invalidate api keys api_key/11_invalidation.yml: - Test invalidate api key by username - Test invalidate api key by realm name api_key/21_query_with_aggs.yml: - Test composite aggs api key rollup/put_job.yml: - Test put job with templates # Changing password locks out tests change_password/10_basic.yml: - Test user changing their own password - Test changing users password with prehashed password change_password/12_custom_hash.yml: - Test changing users password with pre-hashed password # Missing refreshes in the test data_frame/transforms_start_stop.yml: ml/index_layout.yml: transform/transforms_start_stop.yml: - Verify start transform reuses destination index transform/transforms_start_stop.yml: - Test get multiple transform stats transform/transforms_stats.yml: - Test get multiple transform stats - Test get multiple transform stats where one does not have a task transform/transforms_unattended.yml: - Test unattended put and start wildcard # More QA tests than API tests data_frame/transforms_stats.yml: - Test get multiple transform stats - Test get transform stats on missing transform - Test get multiple transform stats where one does not have a task ml/jobs_crud.yml: - Test reopen job resets the finished time # Invalid license makes subsequent tests fail license/20_put_license.yml: # Test tries to match on map from body, but Go keys are not sorted ml/jobs_crud.yml: - Test job with rules - Test put job with model_memory_limit as number - Test put job with model_memory_limit as string and lazy open - Test update job # Test gets stuck every time ml/jobs_get_stats.yml: # status_exception, Cannot process data because job [post-data-job] does not have a corresponding autodetect process # resource_already_exists_exception, task with id {job-post-data-job} already exist # status_exception, Cannot open job [start-stop-datafeed-job-foo-1] because it has already been opened ml/post_data.yml: - Test flush with skip_time - Test POST data job api, flush, close and verify DataCounts doc - Test flush and close job WITHOUT sending any data ml/start_stop_datafeed.yml: - Test stop given expression transform/transforms_start_stop.yml: - Test start transform - Verify start transform reuses destination index # Possible bad test setup, Cannot open job [start-stop-datafeed-job] because it has already been opened # resource_already_exists_exception, task with id {job-start-stop-datafeed-job-foo-2} already exist ml/start_stop_datafeed.yml: - Test start datafeed when persistent task allocation disabled # Indexing step doesn't appear to work (getting total.hits=0) monitoring/bulk/10_basic.yml: - Bulk indexing of monitoring data on closed indices should throw an export exception # Indexing step doesn't appear to work (getting total.hits=0) monitoring/bulk/20_privileges.yml: - Monitoring Bulk API # Test tries to match on whole body, but map keys are unstable in Go rollup/security_tests.yml: # Test tries to match on map key, but map keys are unstable in Go ml/data_frame_analytics_crud.yml: - Test put with description - Test put valid config with custom outlier detection # Unsupported feature: allowed_warnings ml/data_frame_analytics_crud.yml: - Test put classification given deprecated maximum_number_trees # This test suite keeps failing too often: disable it altogether ml/data_frame_analytics_crud.yml: # 404s, panics, ... possible bad setup/teardown ml/delete_model_snapshot.yml: ml/get_datafeed_stats.yml: ml/get_model_snapshots.yml: eql/30_async_missing_events.yml: # resource_already_exists_exception for model, need improved teardown for models ml/semantic_search.yml: # model is not deployed to any node ml/text_expansion_search.yml: ml/text_expansion_search_sparse_vector.yml: ml/search_knn_query_vector_builder.yml: ml/text_embedding_search.yml: ml/text_expansion_search_rank_features.yml: snapshot/10_basic.yml: - Create a source only snapshot and then restore it - Failed to snapshot indices with synthetic source # illegal_argument_exception: Provided password hash uses [NOOP] but the configured hashing algorithm is [BCRYPT] users/10_basic.yml: - Test put user with password hash users/40_query.yml: - Test query user # Slash in index name is not escaped (BUG) security/authz/13_index_datemath.yml: - Test indexing documents with datemath, when permitted # Possibly a cluster health color mismatch... security/authz/14_cat_indices.yml: # Test looks for "testnode.crt", but "ca.crt" is returned first ssl/10_basic.yml: - Test get SSL certificates # class org.elasticsearch.xpack.vectors.query.VectorScriptDocValues$DenseVectorScriptDocValues cannot be cast to class org.elasticsearch.xpack.vectors.query.VectorScriptDocValues$SparseVectorScriptDocValues ... vectors/30_sparse_vector_basic.yml: - Dot Product # java.lang.IllegalArgumentException: No field found for [my_dense_vector] in mapping vectors/40_sparse_vector_special_cases.yml: - Vectors of different dimensions and data types - Dimensions can be sorted differently - Distance functions for documents missing vector field should return 0 # Cannot connect to Docker IP watcher/execute_watch/60_http_input.yml: # Test tries to match on "tagline", which requires "human=false", which doesn't work in the Go API. # Also test does too much within a single test, so has to be disabled as whole, unfortunately. xpack/15_basic.yml: # Test uses "y" as a property name, which is parsed as 'true' in the Go YAML library; # see https://yaml.org/type/bool.html ml/explain_data_frame_analytics.yml: - Test empty data frame given body - Test non-empty data frame given body runtime_fields/10_keyword.yml: - docvalue_fields - fetch fields vector-tile/10_basic.yml: vector-tile/20_aggregations.yml: # Test uses a char as a property name, which is parsed as 'false' in the Go YAML library; aggregations/derivative.yml: - in histogram - partially mapped aggregations/histogram.yml: - histogram profiler aggregations/moving_fn.yml: - in histogram # Getting "no matching index template found for data stream [invalid-data-stream]" data_stream/10_basic.yml: - Create data stream - Create data stream with invalid name - append-only writes to backing indices prohibited # The matcher like 'indices.0.aliases.0' points to internal index data_stream/80_resolve_index_data_streams.yml: - Resolve index with indices, aliases, and data streams - Resolve index with hidden and closed indices # Zero matchers like '...shards.0.stores.0.allocation:primary' expect array, not map data_stream/40_supported_apis.yml: - Verify shard stores api aggregations/empty_field_metric.yml: - Basic test # Failing with error 'Index [.security] is not on the current version. Security features relying on the index will not be available until the upgrade API is run on the index' data_stream/40_supported_apis.yml: - Verify search shards api - Verify shard stores api - Verify rank eval with data streams - Verify get field mappings api - Open write index for data stream opens all backing indices data_stream/90_reindex.yml: - Reindex from data stream into an index # Needs further implementation of .key access to map variables data_streams/10_data_stream_resolvability.yml: - Verify data stream resolvability in ILM remove policy API # Error: constant 9223372036854775808 overflows int (https://play.golang.org/p/7pUdz-_Pdom) unsigned_long/10_basic.yml: unsigned_long/20_null_value.yml: unsigned_long/30_multi_fields.yml: unsigned_long/40_different_numeric.yml: unsigned_long/50_script_values.yml: unsigned_long/60_collapse.yml: # Cannot compare float64 ending with .0 reliably due to inconsistent serialisation (https://github.com/golang/go/issues/26363) search/330_fetch_fields.yml: - Test nested field inside object structure search/350_point_in_time.yml: - msearch nodes.stats/11_indices_metrics.yml: - Metric - http - Metric - blank for indices shards - Metric - _all for indices shards - indices shards total count test - indices mappings exact count test for indices level - Lucene segment level fields stats data_stream/10_data_stream_resolvability.yml: - Verify data stream resolvability in ILM remove policy API data_stream/60_get_backing_indices.yml: - Get backing indices for data stream searchable_snapshots/10_usage.yml: - Tests searchable snapshots usage stats with full_copy and shared_cache indices # Expects count 2 but returns only 1 service_accounts/10_basic.yml: - Test service account tokens # Replace stash token in payload not yet implemented api_key/20_query.yml: - Test query api key api_key/30_update.yml: - Test bulk update api keys - Test bulk update api key without explicit field updates - Test bulk update api key with empty request fields api_key/40_view_role_descriptors.yml: - Test API key role descriptors in Get and Query responses api_key/50_cross_cluster.yml: - Test create a cross-cluster API key authenticate/11_admin_user.yml: - Test authenticate with token token/10_basic.yml: - Test invalidate user's tokens - Test invalidate realm's tokens # Replacement with pattern matching fails user_profile/40_has_privileges.yml: - Test profile has privileges api # Bad type matching aggregate-metrics/100_synthetic_source.yml: - constant_keyword - aggregate_metric_double - aggregate_metric_double with ignore_malformed analytics/histogram.yml: - histogram with synthetic source - histogram with synthetic source and ignore_malformed # incompatible storage searchable_snapshots/20_synthetic_source.yml: - Tests searchable snapshots usage stats ml/learning_to_rank_rescorer.yml: - Test rescore with stored model and smaller window_size - Test rescore with stored model and chained rescorers # incompatible float format aggregations/max_metric.yml: - Merging results with unmapped fields # unsupported file upload get/100_synthetic_source.yml: - indexed dense vectors - non-indexed dense vectors - fields with ignore_malformed - flattened field with ignore_above - fetch without refresh also produces synthetic source - doc values keyword with ignore_above - stored keyword with ignore_above - flattened field - flattened field with ignore_above and arrays indices.stats/70_write_load.yml: - Write load average is tracked at shard level search/400_synthetic_source.yml: - stored keyword without sibling fields - doc values keyword with ignore_above - stored keyword with ignore_above search/140_pre_filter_search_shards.yml: - pre_filter_shard_size with shards that have no hit health/10_usage.yml: - Usage stats on the health API esql/10_basic.yml: - Test Mixed Input Params esql/20_aggs.yml: esql/25_aggs_on_null.yml: - group on null, long esql/30_types.yml: - unsigned_long esql/40_unsupported_types.yml: - spatial types unsupported in 8.11 esql/50_index_patterns.yml: - disjoint_mappings # incompatible dot notation logsdb/10_settings.yml: - override sort order settings - override sort missing settings - override sort mode settings - default ignore dynamic beyond limit and default sorting with hostname # expects map, got nil search/520_fetch_fields.yml: - fetch _ignored via stored_fields - fetch _seq_no via stored_fields spatial/140_synthetic_source.yml: - point analysis-common/40_token_filters.yml: - stemmer_override file access cluster.stats/30_ccs_stats.yml: - cross-cluster search stats search cluster.stats/40_source_modes.yml: - test source modes index/92_metrics_auto_subobjects.yml: - Metrics object indexing with synthetic source index/91_metrics_no_subobjects.yml: - Metrics object indexing with synthetic source ingest_geoip/40_geoip_databases.yml: - Test adding, getting, and removing geoip databases ingest_geoip/30_geoip_stats.yml: - Test geoip stats ingest_geoip/60_ip_location_databases.yml: - Test adding, getting, and removing ip location databases ingest_geoip/50_ip_lookup_processor.yml: - Test ip_location processor with defaults logsdb/20_source_mapping.yml: - synthetic _source is default search.suggest/20_phrase.yml: - breaks ties by sorting terms migrate/30_create_from.yml: - Test create_from with remove_index_blocks default of true `