acf8a4141d
Summary: The usage I'm fixing here caused trouble on Fedora 21 when compiling with the current gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC): db/write_controller_test.cc: In member function ‘virtual void rocksdb::WriteControllerTest_SanityTest_Test::TestBody()’: db/write_controller_test.cc:23:165: error: converting ‘false’ to pointer type for argument 1 of ‘char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)’ [-Werror=conversion-null] ASSERT_EQ(false, controller.IsStopped()); ^ This change was induced mechanically via: git grep -l -E 'ASSERT_EQ\(false'|xargs perl -pi -e 's/ASSERT_EQ\(false, /ASSERT_FALSE(/' git grep -l -E 'ASSERT_EQ\(true'|xargs perl -pi -e 's/ASSERT_EQ\(true, /ASSERT_TRUE(/' Except for the three in utilities/backupable/backupable_db_test.cc for which I ended up reformatting (joining lines) in the result. As for why this problem is exhibited with that version of gcc, and none of the others I've used (from 4.8.1 through gcc-5.0.0 and newer), I suspect it's a bug in F21's gcc that has been fixed in gcc-5.0.0. Test Plan: "make" now succeed on Fedora 21 Reviewers: ljin, rven, igor.sugak, yhchiang, sdong, igor Reviewed By: igor Subscribers: dhruba Differential Revision: https://reviews.facebook.net/D37329
44 lines
1.3 KiB
C++
44 lines
1.3 KiB
C++
// Copyright (c) 2013, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under the BSD-style license found in the
|
|
// LICENSE file in the root directory of this source tree. An additional grant
|
|
// of patent rights can be found in the PATENTS file in the same directory.
|
|
//
|
|
#include "db/write_controller.h"
|
|
|
|
#include "util/testharness.h"
|
|
|
|
namespace rocksdb {
|
|
|
|
class WriteControllerTest : public testing::Test {};
|
|
|
|
TEST_F(WriteControllerTest, SanityTest) {
|
|
WriteController controller;
|
|
auto stop_token_1 = controller.GetStopToken();
|
|
auto stop_token_2 = controller.GetStopToken();
|
|
|
|
ASSERT_TRUE(controller.IsStopped());
|
|
stop_token_1.reset();
|
|
ASSERT_TRUE(controller.IsStopped());
|
|
stop_token_2.reset();
|
|
ASSERT_FALSE(controller.IsStopped());
|
|
|
|
auto delay_token_1 = controller.GetDelayToken(5);
|
|
ASSERT_EQ(static_cast<uint64_t>(5), controller.GetDelay());
|
|
auto delay_token_2 = controller.GetDelayToken(8);
|
|
ASSERT_EQ(static_cast<uint64_t>(13), controller.GetDelay());
|
|
|
|
delay_token_2.reset();
|
|
ASSERT_EQ(static_cast<uint64_t>(5), controller.GetDelay());
|
|
delay_token_1.reset();
|
|
ASSERT_EQ(static_cast<uint64_t>(0), controller.GetDelay());
|
|
delay_token_1.reset();
|
|
ASSERT_FALSE(controller.IsStopped());
|
|
}
|
|
|
|
} // namespace rocksdb
|
|
|
|
int main(int argc, char** argv) {
|
|
::testing::InitGoogleTest(&argc, argv);
|
|
return RUN_ALL_TESTS();
|
|
}
|