diff options
author | Peter Dillinger <peterd@fb.com> | 2020-05-22 11:15:44 -0700 |
---|---|---|
committer | Facebook GitHub Bot <facebook-github-bot@users.noreply.github.com> | 2020-05-22 11:17:29 -0700 |
commit | 35a25a3fb9b5a61a389e853f8be37932487edd03 (patch) | |
tree | a7a0b5e753b17817530dc1fa0d5e6db7d70f4ddc | |
parent | 826295a5e9d62e90d6773e1b1221d650de2f3fe4 (diff) |
Fix/expand ASSERT_STATUS_CHECKED build, add to Travis (#6870)
Summary:
Fixed some option handling code that recently broke the
ASSERT_STATUS_CHECKED build for options_test.
Added all other existing tests that pass under ASSERT_STATUS_CHECKED to
the whitelist.
Added a Travis configuration to run all whitelisted tests with
ASSERT_STATUS_CHECKED. (Someday we might enable this check by default in
debug builds.)
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6870
Test Plan: ASSERT_STATUS_CHECKED=1 make check, Travis
Reviewed By: ajkr
Differential Revision: D21704374
Pulled By: pdillinger
fbshipit-source-id: 15daef98136a19d7a6843fa0c9ec08738c2ac693
-rw-r--r-- | .travis.yml | 15 | ||||
-rw-r--r-- | Makefile | 59 | ||||
-rw-r--r-- | options/options_helper.cc | 9 |
3 files changed, 71 insertions, 12 deletions
diff --git a/.travis.yml b/.travis.yml index 75a770827..c3e6e91ec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,6 +53,7 @@ env: - JOB_NAME=cmake-gcc9 # 3-5 minutes - JOB_NAME=cmake-gcc9-c++20 # 3-5 minutes - JOB_NAME=cmake-mingw # 3 minutes + - JOB_NAME=status_checked matrix: exclude: @@ -197,6 +198,17 @@ matrix: os: linux arch: ppc64le env: JOB_NAME=cmake-gcc9-c++20 + - if: type = pull_request + os : osx + env: JOB_NAME=status_checked + - if: type = pull_request + os : linux + arch: arm64 + env: JOB_NAME=status_checked + - if: type = pull_request + os: linux + arch: ppc64le + env: JOB_NAME=status_checked install: - if [ "${TRAVIS_OS_NAME}" == osx ]; then @@ -287,6 +299,9 @@ script: mkdir build && cd build && cmake -DJNI=1 .. -DCMAKE_BUILD_TYPE=Release $OPT && make -j4 rocksdb rocksdbjni ;; + status_checked) + OPT=-DTRAVIS V=1 ASSERT_STATUS_CHECKED=1 make -j4 check + ;; esac notifications: email: @@ -667,12 +667,54 @@ endif ifdef ASSERT_STATUS_CHECKED # This is a new check for which we will add support incrementally. The # whitelist can be removed once support is fully added. - TESTS_WHITELIST = \ - options_test \ + TESTS_WHITELIST = \ + arena_test \ + autovector_test \ + blob_file_addition_test \ + blob_file_garbage_test \ + bloom_test \ + cassandra_format_test \ + cassandra_row_merge_test \ + cassandra_serialize_test \ + cleanable_test \ + coding_test \ + crc32c_test \ + dbformat_test \ + defer_test \ + dynamic_bloom_test \ + event_logger_test \ + file_indexer_test \ + folly_synchronization_distributed_mutex_test \ + hash_table_test \ + hash_test \ + heap_test \ + histogram_test \ + inlineskiplist_test \ + io_posix_test \ + iostats_context_test \ + memkind_kmem_allocator_test \ + merger_test \ + mock_env_test \ + object_registry_test \ options_settable_test \ - io_posix_test - TESTS := $(filter $(TESTS_WHITELIST),$(TESTS)) - PARALLEL_TEST := $(filter $(TESTS_WHITELIST),$(PARALLEL_TEST)) + options_test \ + random_test \ + range_del_aggregator_test \ + range_tombstone_fragmenter_test \ + repeatable_thread_test \ + skiplist_test \ + slice_test \ + statistics_test \ + thread_local_test \ + timer_queue_test \ + timer_test \ + util_merge_operators_test \ + version_edit_test \ + work_queue_test \ + write_controller_test \ + + TESTS := $(filter $(TESTS_WHITELIST),$(TESTS)) + PARALLEL_TEST := $(filter $(TESTS_WHITELIST),$(PARALLEL_TEST)) endif SUBSET := $(TESTS) ifdef ROCKSDBTESTS_START @@ -972,6 +1014,9 @@ CLEAN_FILES += t LOG $(TMPD) watch-log: $(WATCH) --interval=0 'sort -k7,7nr -k4,4gr LOG|$(quoted_perl_command)' +dump-log: + bash -c '$(quoted_perl_command)' < LOG + # If J != 1 and GNU parallel is installed, run the tests in parallel, # via the check_0 rule above. Otherwise, run them sequentially. check: all @@ -1283,9 +1328,9 @@ db_repl_stress: tools/db_repl_stress.o $(LIBOBJECTS) $(TESTUTIL) arena_test: memory/arena_test.o $(LIBOBJECTS) $(TESTHARNESS) $(AM_LINK) - + memkind_kmem_allocator_test: memory/memkind_kmem_allocator_test.o $(LIBOBJECTS) $(TESTHARNESS) - $(AM_LINK) + $(AM_LINK) autovector_test: util/autovector_test.o $(LIBOBJECTS) $(TESTHARNESS) $(AM_LINK) diff --git a/options/options_helper.cc b/options/options_helper.cc index 2f8ce4c55..99e5cd5d3 100644 --- a/options/options_helper.cc +++ b/options/options_helper.cc @@ -1221,13 +1221,13 @@ Status OptionTypeInfo::SerializeStruct( std::string elem_name; const auto opt_info = Find(opt_name, *struct_map, &elem_name); if (opt_info == nullptr) { - return Status::InvalidArgument("Unrecognized option: ", opt_name); + status = Status::InvalidArgument("Unrecognized option: ", opt_name); } else if (opt_info->ShouldSerialize()) { - return opt_info->Serialize(config_options, opt_name + "." + elem_name, - opt_addr + opt_info->offset_, value); + status = opt_info->Serialize(config_options, opt_name + "." + elem_name, + opt_addr + opt_info->offset_, value); } } - return Status::OK(); + return status; } template <typename T> @@ -1329,7 +1329,6 @@ bool OptionTypeInfo::StructsAreEqual( const std::string& opt_name, const char* this_addr, const char* that_addr, std::string* mismatch) { assert(struct_map); - Status status; bool matches = true; std::string result; if (EndsWith(opt_name, struct_name)) { |