]>
git.proxmox.com Git - ceph.git/blob - ceph/src/test/fs/mds_types.cc
1 // -*- mode:C; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 * Ceph - scalable distributed file system
6 * Copyright (C) 2014 Red Hat
8 * Author: Greg Farnum <greg@inktank.com>
10 * This is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License version 2, as published by the Free Software
13 * Foundation. See file COPYING.
17 #include "gtest/gtest.h"
18 #include "mds/mdstypes.h"
19 #include "mds/inode_backtrace.h"
21 TEST(inode_t
, compare_equal
)
27 compare_r
= foo
.compare(bar
, &divergent
);
28 EXPECT_EQ(0, compare_r
);
29 EXPECT_FALSE(divergent
);
30 compare_r
= bar
.compare(foo
, &divergent
);
31 EXPECT_EQ(0, compare_r
);
32 EXPECT_FALSE(divergent
);
36 foo
.ctime
.set_from_double(10.0);
44 compare_r
= foo
.compare(bar
, &divergent
);
45 EXPECT_EQ(0, compare_r
);
46 EXPECT_FALSE(divergent
);
47 compare_r
= bar
.compare(foo
, &divergent
);
48 EXPECT_EQ(0, compare_r
);
49 EXPECT_FALSE(divergent
);
52 TEST(inode_t
, compare_aged
)
58 foo
.ctime
.set_from_double(10.0);
64 foo
.rstat
.version
= 1;
71 compare_r
= foo
.compare(bar
, &divergent
);
72 EXPECT_EQ(1, compare_r
);
73 EXPECT_FALSE(divergent
);
74 compare_r
= bar
.compare(foo
, &divergent
);
75 EXPECT_EQ(-1, compare_r
);
76 EXPECT_FALSE(divergent
);
79 TEST(inode_t
, compare_divergent
)
85 foo
.ctime
.set_from_double(10.0);
91 foo
.rstat
.version
= 1;
95 bar
.rstat
.version
= 2;
99 compare_r
= foo
.compare(bar
, &divergent
);
100 EXPECT_EQ(1, compare_r
);
101 EXPECT_TRUE(divergent
);
102 compare_r
= bar
.compare(foo
, &divergent
);
103 EXPECT_EQ(-1, compare_r
);
104 EXPECT_TRUE(divergent
);
107 TEST(inode_backtrace_t
, compare_equal
)
109 inode_backtrace_t foo
;
110 inode_backtrace_t bar
;
114 foo
.old_pools
.insert(10);
115 foo
.old_pools
.insert(5);
117 inode_backpointer_t foop
;
121 foo
.ancestors
.push_back(foop
);
125 foo
.ancestors
.push_back(foop
);
129 foo
.ancestors
.push_back(foop
);
137 compare_r
= foo
.compare(bar
, &equivalent
, &divergent
);
138 EXPECT_EQ(0, compare_r
);
139 EXPECT_TRUE(equivalent
);
140 EXPECT_FALSE(divergent
);
143 TEST(inode_backtrace_t
, compare_newer
)
145 inode_backtrace_t foo
;
146 inode_backtrace_t bar
;
150 foo
.old_pools
.insert(10);
151 foo
.old_pools
.insert(5);
155 bar
.old_pools
.insert(10);
157 inode_backpointer_t foop
;
161 foo
.ancestors
.push_back(foop
);
163 bar
.ancestors
.push_back(foop
);
168 foo
.ancestors
.push_back(foop
);
170 bar
.ancestors
.push_back(foop
);
175 foo
.ancestors
.push_back(foop
);
176 bar
.ancestors
.push_back(foop
);
182 compare_r
= foo
.compare(bar
, &equivalent
, &divergent
);
183 EXPECT_EQ(1, compare_r
);
184 EXPECT_TRUE(equivalent
);
185 EXPECT_FALSE(divergent
);
187 compare_r
= bar
.compare(foo
, &equivalent
, &divergent
);
188 EXPECT_EQ(-1, compare_r
);
189 EXPECT_TRUE(equivalent
);
190 EXPECT_FALSE(divergent
);
192 bar
.ancestors
.back().dirino
= 75;
193 bar
.ancestors
.back().dname
= "l1-old";
194 bar
.ancestors
.back().version
= 70;
196 compare_r
= foo
.compare(bar
, &equivalent
, &divergent
);
197 EXPECT_EQ(1, compare_r
);
198 EXPECT_FALSE(equivalent
);
199 EXPECT_FALSE(divergent
);
201 compare_r
= bar
.compare(foo
, &equivalent
, &divergent
);
202 EXPECT_EQ(-1, compare_r
);
203 EXPECT_FALSE(equivalent
);
204 EXPECT_FALSE(divergent
);
207 TEST(inode_backtrace_t
, compare_divergent
)
209 inode_backtrace_t foo
;
210 inode_backtrace_t bar
;
214 foo
.old_pools
.insert(10);
215 foo
.old_pools
.insert(5);
219 bar
.old_pools
.insert(10);
221 inode_backpointer_t foop
;
225 foo
.ancestors
.push_back(foop
);
227 bar
.ancestors
.push_back(foop
);
232 foo
.ancestors
.push_back(foop
);
234 bar
.ancestors
.push_back(foop
);
239 foo
.ancestors
.push_back(foop
);
240 bar
.ancestors
.push_back(foop
);
246 compare_r
= foo
.compare(bar
, &equivalent
, &divergent
);
247 EXPECT_EQ(1, compare_r
);
248 EXPECT_TRUE(divergent
);
249 compare_r
= bar
.compare(foo
, &equivalent
, &divergent
);
250 EXPECT_EQ(-1, compare_r
);
251 EXPECT_TRUE(divergent
);