I just discovered on Friday that pytest allows for a --durations=N parameter, which will output the time it takes to execute the slowest N tests to the console, so I ran both a core and exhaustive private build over the weekend, and clocked the slowest 50 for each grouping of tests. These are the results, tidied up to be more legible. (Since it's long, I'll send another email with the slowest exhaustive tests.)

This was a question that had been asked recently. I wonder we should add this to the default pytest args in run-all-tests.sh, to track where most of our test time is being spent? Since it adds noise to the log, we could pick a number smaller than 50.


------------------------------------------------------------------------------------------------------------------------
    TIME   TABLE FORMAT                Slowest Core Parallel Tests
------------------------------------------------------------------------------------------------------------------------
214.71s text/none data/test_compute_stats.py::TestComputeStats::test_compute_ 194.68s text/none-unique_database0 data/test_ddl.py::TestDdlStatements::test_alter_tab 193.79s text/none query_test/test_exprs.py::TestExprs::test_expr 185.03s parquet/none query_test/test_queries.py::TestQueries::test_analytic_fn 164.04s text/none data/test_show_create_table.py::TestShowCreateTable::test_show_create_tab 157.15s parquet/none query_test/test_nested_types.py::TestNestedTypes::test_tpch 153.68s parquet/none query_test/test_queries.py::TestHdfsQueries::test_analytic_fn 143.73s text/none query_test/test_kudu.py::TestKuduOperations::test_kudu_partition_dd 137.51s parquet/none query_test/test_join_queries.py::TestTPCHJoinQueries::test_outer_join 133.13s text/none query_test/test_exprs.py::TestExprs::test_expr 125.87s text/none query_test/test_insert_permutation.py::TestInsertQueriesWithPermutation::test_insert_permutation 119.45s text/gzip/block query_test/test_hdfs_caching.py::TestHdfsCaching::test_cache_cancellation 118.59s parquet/none query_test/test_runtime_filters.py::TestRuntimeRowFilters::test_row_filter 117.99s text/none query_test/test_hdfs_caching.py::TestHdfsCaching::test_cache_cancellation 104.71s text/none data/test_compute_stats.py::TestComputeStats::test_compute_stats_incremen 95.86s avro/snap/block query_test/test_runtime_filters.py::TestRuntimeFilters::test_basic_filter 89.58s rc/snap/block query_test/test_runtime_filters.py::TestRuntimeFilters::test_basic_filter 88.74s text/none query_test/test_kudu.py::TestKuduOperations::test_kudu_d 88.68s parquet/none query_test/test_sort.py::TestQueryFullSort::test_multiple_mem_limits_full_outpu 83.88s seq/snap/block query_test/test_scanners.py::TestScannersAllTableFormatsWithLimit::test_limi 83.45s text/none query_test/test_kudu.py::TestKuduOperations::test_kudu_inser 83.00s text/none query_test/test_runtime_filters.py::TestRuntimeFilters::test_basic_filter 79.15s text/none query_test/test_scanners.py::TestScannersAllTableFormatsWithLimit::test_limi 79.15s parquet/none query_test/test_runtime_filters.py::TestRuntimeFilters::test_basic_filter 78.20s seq/snap/block query_test/test_runtime_filters.py::TestRuntimeFilters::test_basic_filter 76.24s text/none query_test/test_udfs.py::TestUdfExecution::test_ir_function 74.27s parquet/none query_test/test_sort.py::TestQueryFullSort::test_multiple_mem_limi 73.40s parquet/none query_test/test_insert_parquet.py::TestInsertParquetQueries::test_insert_parqu 72.62s rc/snap/block query_test/test_scanners.py::TestScannersAllTableFormatsWithLimit::test_limi 71.21s text/none data/test_partition_metadata.py::TestPartitionMetadata::test_partition_metadata_compatibility 70.15s parquet/none query_test/test_insert_parquet.py::TestInsertParquetQueries::test_insert_parqu 68.99s parquet/none query_test/test_nested_types.py::TestNestedTypes::test_subplan 68.08s text/none query_test/test_udfs.py::TestUdfExecution::test_native_function 67.68s parquet/none query_test/test_sort.py::TestQueryFullSort::test_sort_union 65.39s text/none query_test/test_udfs.py::TestUdfExecution::test_ir_function 64.80s text/none query_test/test_udfs.py::TestUdfExecution::test_ir_function 63.34s parquet/none query_test/test_scanners.py::TestScannersAllTableFormatsWithLimit::test_limi 63.16s text/none query_test/test_errorlog.py::TestErrorLogs::test_errorlog 63.10s text/none query_test/test_udfs.py::TestUdfExecution::test_native_function 63.08s text/none-unique_database0 data/test_ddl.py::TestDdlStatements::test_views_dd 62.97s parquet/none query_test/test_insert_parquet.py::TestInsertParquetQueries::test_insert_parqu 61.12s text/none query_test/test_kudu.py::TestKuduOperations::test_kudu_upser 61.10s parquet/none query_test/test_insert_parquet.py::TestInsertParquetQueries::test_insert_parqu 61.05s text/none query_test/test_kudu.py::TestKuduOperations::test_kudu_scan_nod 60.96s avro/snap/block query_test/test_scanners.py::TestScannersAllTableFormatsWithLimit::test_limi 58.63s text/none query_test/test_aggregation.py::TestAggregationQueries::test_aggregation 58.59s text/none query_test/test_udfs.py::TestUdfExecution::test_native_function 58.42s text/none query_test/test_udfs.py::TestUdfExecution::test_native_function 58.27s parquet/none query_test/test_scanners_fuzz.py::TestScannersFuzzing::test_fuzz_allty 57.90s avro/snap/block query_test/test_scanners_fuzz.py::TestScannersFuzzing::test_fuzz_allty


------------------------------------------------------------------------------------------------------------------------
    TIME   TABLE FORMAT                Slowest Core Serial Tests
------------------------------------------------------------------------------------------------------------------------
301.99s parquet/none query_test/test_queries.py::TestQueriesParquetTables::test_very_large_string 142.72s text/none query_test/test_insert.py::TestInsertQueries::test_inser 109.29s text/none data/test_metadata_query_statements.py::TestMetadataQueryStatements::test_describe_db 83.58s text/none query_test/test_hdfs_caching.py::TestHdfsCachingDdl::test_cache_reload_validation 65.20s text/none query_test/test_chars.py::TestStringQueries::test_varchar 63.93s data/test_hdfs_encryption.py::TestHdfsEncryption::test_drop_partition_encry 52.34s text/none data/test_hms_integration.py::TestHmsIntegrationSanity::test_sanity 52.33s text/none query_test/test_hdfs_caching.py::TestHdfsCachingDdl::test_caching_dd 50.18s query_test/test_insert_behaviour.py::TestInsertBehaviour::test_insert_select_with_empty_resu 49.66s text/none query_test/test_hdfs_caching.py::TestHdfsCachingDdl::test_caching_ddl_drop_datab 45.89s text/none query_test/test_kudu.py::TestKuduOperations::test_kudu_alter_tab 44.39s parquet/none catalog_service/test_hms_failure.py::TestHiveMetaStoreFailure::test_hms_service_di 41.62s text/none query_test/test_insert.py::TestInsertPartKey::test_insert_part_key 36.80s parquet/none query_test/test_tpcds_queries.py::TestTpcdsQuery::test_tpcds_coun 33.72s text/none data/test_hdfs_encryption.py::TestHdfsEncryption::test_load_d 31.41s text/none query_test/test_insert.py::TestInsertNullQueries::test_insert_nu 30.68s text/none data/test_ddl.py::TestLibCache::test_create_drop_data_src 29.40s data/test_hdfs_encryption.py::TestHdfsEncryption::test_drop_table_encry 29.22s text/none data/test_hdfs_encryption.py::TestHdfsEncryption::test_load_d 27.41s text/none query_test/test_chars.py::TestStringQueries::test_varchar 24.98s hs2/test_hs2.py::TestHS2::test_concurrent_session_mixed_idle_timeou 18.77s hbase/none query_test/test_hbase_queries.py::TestHBaseQueries::test_hbase_inser 18.04s text/none data/test_compute_stats.py::TestComputeStats::test_compute_stats_keyword 17.65s text/none query_test/test_insert.py::TestInsertQueries::test_insert_overwri 14.16s parquet/none query_test/test_cancellation.py::TestCancellationSerial::test_cancel_inser 13.58s text/none failure/test_failpoints.py::TestFailpoints::test_failpoin 13.34s hell/test_shell_commandline.py::TestImpalaShell::test_config_fi 11.77s kudu/none failure/test_failpoints.py::TestFailpoints::test_failpoin 11.13s hell/test_shell_interactive.py::TestImpalaShellInteractive::test_ddl_queries_are_closed 10.72s hell/test_shell_commandline.py::TestImpalaShell::test_queries_closed 10.58s hell/test_shell_interactive.py::TestImpalaShellInteractive::test_cancellation 10.02s kudu/none failure/test_failpoints.py::TestFailpoints::test_failpoin 9.99s seq/snap/block query_test/test_cancellation.py::TestCancellationSerial::test_cancel_inser 9.97s text/gzip/block query_test/test_cancellation.py::TestCancellationSerial::test_cancel_inser 9.63s hs2/test_fetch_first.py::TestFetchFirst::test_query_stmts_v1 9.01s text/none query_test/test_cancellation.py::TestCancellationSerial::test_cancel_inser 9.01s avro/snap/block query_test/test_cancellation.py::TestCancellationSerial::test_cancel_inser 8.95s avro/none query_test/test_cancellation.py::TestCancellationSerial::test_cancel_inser


------------------------------------------------------------------------------------------------------------------------
    TIME   TABLE FORMAT                Slowest Core Custom Cluster Tests
------------------------------------------------------------------------------------------------------------------------
685.22s custom_cluster/test_permanent_udfs.py::TestUdfPersistence::test_java_udfs_hive_integration 667.85s parquet/none custom_cluster/test_spilling.py::TestSpilling::test_spilling 117.89s custom_cluster/test_permanent_udfs.py::TestUdfPersistence::test_java_udfs_from_i 100.75s text/none uthorization/test_grant_revoke.py::TestGrantRevoke::test_grant_revok 53.79s custom_cluster/test_redaction.py::TestRedaction::test_very_verbose_logging 49.12s custom_cluster/test_permanent_udfs.py::TestUdfPersistence::test_permanent_udf 41.84s text/none custom_cluster/test_scratch_disk.py::TestScratchDir::test_write_error_failover 39.62s text/none custom_cluster/test_scratch_disk.py::TestScratchDir::test_non_writable_dir 39.55s text/none custom_cluster/test_scratch_disk.py::TestScratchDir::test_multiple_dir 39.53s text/none custom_cluster/test_scratch_disk.py::TestScratchDir::test_no_dir 38.73s text/none custom_cluster/test_scratch_disk.py::TestScratchDir::test_non_existing_dir 37.12s text/none custom_cluster/test_admission_controller.py::TestAdmissionControllerStress::test_admission_controller_with_flag 33.42s text/none custom_cluster/test_admission_controller.py::TestAdmissionControllerStress::test_admission_controller_with_config 33.19s custom_cluster/test_redaction.py::TestRedaction::test_redacted 32.50s text/none custom_cluster/test_admission_controller.py::TestAdmissionControllerStress::test_mem_limi 26.87s custom_cluster/test_redaction.py::TestRedaction::test_unredacted 22.28s text/none custom_cluster/test_exchange_delays.py::TestExchangeDelays::test_exchange_large_delay 22.02s text/none custom_cluster/test_alloc_fail.py::TestAllocFail::test_alloc_fail_ini 20.30s text/none custom_cluster/test_exchange_delays.py::TestExchangeDelays::test_exchange_small_delay 18.07s custom_cluster/test_redaction.py::TestRedaction::test_bad_ru


--
David Knupp
Software Engineer
Cloudera
415-312-1049
<https://www.postbox-inc.com/?utm_source=email&utm_medium=siglink&utm_campaign=reach>

Reply via email to