Fix the MultiGet testing failure in Circleci (#6578)

Summary:
The MultiGet test in db_basic_test fails in CircleCI vs2019. The reason is that even Snappy compression is enabled, the first compression type is still kNoCompression. This PR checks the list and ensure that only when compression is enable and the compression type is valid, compression will be enabled. Such that, it will not fail the combined read test in MultiGet.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6578

Test Plan: make check, db_basic_test.

Reviewed By: anand1976

Differential Revision: D20607529

Pulled By: zhichao-cao

fbshipit-source-id: dcead264d5c2da105912c18caad34b8510bb04b0
This commit is contained in:
Zhichao Cao 2020-03-23 18:47:34 -07:00 committed by Facebook GitHub Bot
parent 617f479266
commit d300d10962

View file

@ -6,6 +6,7 @@
// Copyright (c) 2011 The LevelDB Authors. All rights reserved. // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. See the AUTHORS file for names of contributors. // found in the LICENSE file. See the AUTHORS file for names of contributors.
#include "db/db_test_util.h" #include "db/db_test_util.h"
#include "port/stack_trace.h" #include "port/stack_trace.h"
#include "rocksdb/perf_context.h" #include "rocksdb/perf_context.h"
@ -1919,10 +1920,17 @@ class DBBasicTestWithParallelIO
compression_types = GetSupportedCompressions(); compression_types = GetSupportedCompressions();
// Not every platform may have compression libraries available, so // Not every platform may have compression libraries available, so
// dynamically pick based on what's available // dynamically pick based on what's available
if (compression_types.size() == 0) { CompressionType tmp_type = kNoCompression;
compression_enabled_ = false; for (auto c_type : compression_types) {
if (c_type != kNoCompression) {
tmp_type = c_type;
break;
}
}
if (tmp_type != kNoCompression) {
options.compression = tmp_type;
} else { } else {
options.compression = compression_types[0]; compression_enabled_ = false;
} }
} }
#else #else
@ -2132,8 +2140,6 @@ class DBBasicTestWithParallelIO
bool fill_cache_; bool fill_cache_;
}; };
// TODO: fails on CircleCI's Windows env
#ifndef OS_WIN
TEST_P(DBBasicTestWithParallelIO, MultiGet) { TEST_P(DBBasicTestWithParallelIO, MultiGet) {
std::vector<std::string> key_data(10); std::vector<std::string> key_data(10);
std::vector<Slice> keys; std::vector<Slice> keys;
@ -2256,7 +2262,6 @@ TEST_P(DBBasicTestWithParallelIO, MultiGet) {
} }
} }
} }
#endif // OS_WIN
TEST_P(DBBasicTestWithParallelIO, MultiGetWithChecksumMismatch) { TEST_P(DBBasicTestWithParallelIO, MultiGetWithChecksumMismatch) {
std::vector<std::string> key_data(10); std::vector<std::string> key_data(10);