xref: /aosp_15_r20/external/leveldb/util/status_test.cc (revision 9507f98c5f32dee4b5f9e4a38cd499f3ff5c4490)
1*9507f98cSAndroid Build Coastguard Worker // Copyright (c) 2018 The LevelDB Authors. All rights reserved.
2*9507f98cSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*9507f98cSAndroid Build Coastguard Worker // found in the LICENSE file. See the AUTHORS file for names of contributors.
4*9507f98cSAndroid Build Coastguard Worker 
5*9507f98cSAndroid Build Coastguard Worker #include "leveldb/status.h"
6*9507f98cSAndroid Build Coastguard Worker 
7*9507f98cSAndroid Build Coastguard Worker #include <utility>
8*9507f98cSAndroid Build Coastguard Worker 
9*9507f98cSAndroid Build Coastguard Worker #include "gtest/gtest.h"
10*9507f98cSAndroid Build Coastguard Worker #include "leveldb/slice.h"
11*9507f98cSAndroid Build Coastguard Worker 
12*9507f98cSAndroid Build Coastguard Worker namespace leveldb {
13*9507f98cSAndroid Build Coastguard Worker 
TEST(Status,MoveConstructor)14*9507f98cSAndroid Build Coastguard Worker TEST(Status, MoveConstructor) {
15*9507f98cSAndroid Build Coastguard Worker   {
16*9507f98cSAndroid Build Coastguard Worker     Status ok = Status::OK();
17*9507f98cSAndroid Build Coastguard Worker     Status ok2 = std::move(ok);
18*9507f98cSAndroid Build Coastguard Worker 
19*9507f98cSAndroid Build Coastguard Worker     ASSERT_TRUE(ok2.ok());
20*9507f98cSAndroid Build Coastguard Worker   }
21*9507f98cSAndroid Build Coastguard Worker 
22*9507f98cSAndroid Build Coastguard Worker   {
23*9507f98cSAndroid Build Coastguard Worker     Status status = Status::NotFound("custom NotFound status message");
24*9507f98cSAndroid Build Coastguard Worker     Status status2 = std::move(status);
25*9507f98cSAndroid Build Coastguard Worker 
26*9507f98cSAndroid Build Coastguard Worker     ASSERT_TRUE(status2.IsNotFound());
27*9507f98cSAndroid Build Coastguard Worker     ASSERT_EQ("NotFound: custom NotFound status message", status2.ToString());
28*9507f98cSAndroid Build Coastguard Worker   }
29*9507f98cSAndroid Build Coastguard Worker 
30*9507f98cSAndroid Build Coastguard Worker   {
31*9507f98cSAndroid Build Coastguard Worker     Status self_moved = Status::IOError("custom IOError status message");
32*9507f98cSAndroid Build Coastguard Worker 
33*9507f98cSAndroid Build Coastguard Worker     // Needed to bypass compiler warning about explicit move-assignment.
34*9507f98cSAndroid Build Coastguard Worker     Status& self_moved_reference = self_moved;
35*9507f98cSAndroid Build Coastguard Worker     self_moved_reference = std::move(self_moved);
36*9507f98cSAndroid Build Coastguard Worker   }
37*9507f98cSAndroid Build Coastguard Worker }
38*9507f98cSAndroid Build Coastguard Worker 
39*9507f98cSAndroid Build Coastguard Worker }  // namespace leveldb
40*9507f98cSAndroid Build Coastguard Worker 
41