From a7fde8727beee384c51ce32f188f8d5ef8436ee8 Mon Sep 17 00:00:00 2001 From: Peter Dillinger Date: Wed, 9 Sep 2020 09:48:14 -0700 Subject: [PATCH] Fix platform_dependent in Travis, rebalance groups (#7360) Summary: Was broken by https://github.com/facebook/rocksdb/issues/6660 Travis times before this change, after 6660: platform_dependent: 17 min group 1: 15 min group 2: 44 min (often timeout on non-x86 or non-Linux) group 3: 31 min group 4: 21 min After this change: TODO Pull Request resolved: https://github.com/facebook/rocksdb/pull/7360 Test Plan: CI inspection Reviewed By: ajkr Differential Revision: D23586917 Pulled By: pdillinger fbshipit-source-id: 4c67cf33180b0b833c39a817e6c1f128727941d2 --- .travis.yml | 10 +++++----- Makefile | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index bfb144c75..3e95fe318 100644 --- a/.travis.yml +++ b/.travis.yml @@ -269,19 +269,19 @@ script: - if [ `command -v ccache` ]; then ccache -C; fi - case $TEST_GROUP in platform_dependent) - OPT=-DTRAVIS V=1 ROCKSDBTESTS_END=db_block_cache_test make -j4 all_but_some_tests check_some + OPT=-DTRAVIS V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=only make -j4 all_but_some_tests check_some ;; 1) - OPT=-DTRAVIS V=1 ROCKSDBTESTS_START=db_block_cache_test ROCKSDBTESTS_END=db_iter_test make -j4 check_some + OPT=-DTRAVIS V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=exclude ROCKSDBTESTS_END=backupable_db_test make -j4 check_some ;; 2) - OPT="-DTRAVIS -DROCKSDB_NAMESPACE=alternative_rocksdb_ns" V=1 make -j4 tools && OPT="-DTRAVIS -DROCKSDB_NAMESPACE=alternative_rocksdb_ns" V=1 ROCKSDBTESTS_START=db_iter_test ROCKSDBTESTS_END=options_file_test make -j4 check_some + OPT="-DTRAVIS -DROCKSDB_NAMESPACE=alternative_rocksdb_ns" V=1 make -j4 tools && OPT="-DTRAVIS -DROCKSDB_NAMESPACE=alternative_rocksdb_ns" V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=exclude ROCKSDBTESTS_START=backupable_db_test ROCKSDBTESTS_END=db_universal_compaction_test make -j4 check_some ;; 3) - OPT=-DTRAVIS LIB_MODE=shared V=1 ROCKSDBTESTS_START=options_file_test ROCKSDBTESTS_END=write_prepared_transaction_test make -j4 check_some + OPT=-DTRAVIS LIB_MODE=shared V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=exclude ROCKSDBTESTS_START=db_universal_compaction_test ROCKSDBTESTS_END=table_properties_collector_test make -j4 check_some ;; 4) - OPT=-DTRAVIS V=1 ROCKSDBTESTS_START=write_prepared_transaction_test make -j4 check_some + OPT=-DTRAVIS V=1 ROCKSDBTESTS_PLATFORM_DEPENDENT=exclude ROCKSDBTESTS_START=table_properties_collector_test make -j4 check_some ;; esac - case $JOB_NAME in diff --git a/Makefile b/Makefile index 83c90ed1c..c08605060 100644 --- a/Makefile +++ b/Makefile @@ -637,6 +637,38 @@ endif else SUBSET := $(TESTS) endif +# Not necessarily well thought out or up-to-date, but matches old list +TESTS_PLATFORM_DEPENDENT := \ + db_basic_test \ + db_with_timestamp_basic_test \ + db_encryption_test \ + db_test2 \ + external_sst_file_basic_test \ + auto_roll_logger_test \ + bloom_test \ + dynamic_bloom_test \ + c_test \ + checkpoint_test \ + crc32c_test \ + coding_test \ + inlineskiplist_test \ + env_basic_test \ + env_test \ + env_logger_test \ + io_posix_test \ + hash_test \ + random_test \ + thread_local_test \ + work_queue_test \ + rate_limiter_test \ + perf_context_test \ + iostats_context_test \ + db_wal_test \ + +# Sort SUBSET for filtering, except db_test is special (expensive) so +# is placed first (out-of-order) +SUBSET := $(filter db_test, $(SUBSET)) $(sort $(filter-out db_test, $(SUBSET))) + ifdef ROCKSDBTESTS_START SUBSET := $(shell echo $(SUBSET) | sed 's/^.*$(ROCKSDBTESTS_START)/$(ROCKSDBTESTS_START)/') endif @@ -645,6 +677,12 @@ ifdef ROCKSDBTESTS_END SUBSET := $(shell echo $(SUBSET) | sed 's/$(ROCKSDBTESTS_END).*//') endif +ifeq ($(ROCKSDBTESTS_PLATFORM_DEPENDENT), only) + SUBSET := $(filter $(TESTS_PLATFORM_DEPENDENT), $(SUBSET)) +else ifeq ($(ROCKSDBTESTS_PLATFORM_DEPENDENT), exclude) + SUBSET := $(filter-out $(TESTS_PLATFORM_DEPENDENT), $(SUBSET)) +endif + # bench_tool_analyer main is in bench_tool_analyzer_tool, or this would be simpler... TOOLS = $(patsubst %.cc, %, $(notdir $(patsubst %_tool.cc, %.cc, $(TOOLS_MAIN_SOURCES))))