| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF 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. |
| |
| # This module attempts to enforce infrastructural assumptions that bind test tools to |
| # product or other constraints. We want to stop these assumptions from breaking at |
| # pre-merge time, not later. |
| |
| import pytest |
| |
| from tests.common.impala_test_suite import ImpalaTestSuite |
| from tests.performance.workload import Workload |
| from tests.util.parse_util import ( |
| EXPECTED_TPCDS_QUERIES_COUNT, EXPECTED_TPCH_NESTED_QUERIES_COUNT, |
| EXPECTED_TPCH_QUERIES_COUNT) |
| |
| |
| class TestPerfInfra(ImpalaTestSuite): |
| |
| @pytest.mark.parametrize( |
| 'count_map', |
| [('tpcds', EXPECTED_TPCDS_QUERIES_COUNT, []), |
| ('tpch_nested', EXPECTED_TPCH_NESTED_QUERIES_COUNT, []), |
| ('tpch', EXPECTED_TPCH_QUERIES_COUNT, []), |
| ("tpch", 1, ["TPCH-Q1"]), |
| ("tpch", 12, ["TPCH-Q1.*", "TPCH-Q4"])]) |
| def test_run_workload_finds_queries(self, count_map): |
| "Test that the perf tests select the expected number of queries to run." |
| workload, num_expected, query_name_filters = count_map |
| w = Workload(workload, query_name_filters) |
| assert len(w._query_map) == num_expected |