]>
git.proxmox.com Git - ceph.git/blob - ceph/src/test/common/test_tableformatter.cc
1 #include "gtest/gtest.h"
3 #include "common/Formatter.h"
10 TEST(tableformatter
, singleline
)
12 std::stringstream sout
;
13 TableFormatter formatter
;
14 formatter
.dump_int("integer", 10);
15 formatter
.dump_float("float", 10.0);
16 formatter
.dump_string("string", "string");
17 formatter
.flush(sout
);
20 "+----------+--------+---------+\n"
21 "| integer | float | string |\n"
22 "+----------+--------+---------+\n"
23 "| 10 | 10 | string |\n"
24 "+----------+--------+---------+\n";
25 EXPECT_EQ(cmp
, sout
.str());
28 TEST(tableformatter
, longfloat
)
30 std::stringstream sout
;
31 TableFormatter formatter
;
32 formatter
.dump_float("float", 1.0 / 7);
33 formatter
.flush(sout
);
36 "+----------------------+\n"
38 "+----------------------+\n"
39 "| 0.14285714285714285 |\n"
40 "+----------------------+\n";
41 EXPECT_EQ(cmp
, sout
.str());
44 TEST(tableformatter
, multiline
)
46 std::stringstream sout
;
47 TableFormatter formatter
;
48 formatter
.dump_int("integer", 10);
49 formatter
.dump_float("float", 10.0);
50 formatter
.dump_string("string", "string");
51 formatter
.dump_int("integer", 20);
52 formatter
.dump_float("float", 20.0);
53 formatter
.dump_string("string", "string");
56 "+----------+--------+---------+\n"
57 "| integer | float | string |\n"
58 "+----------+--------+---------+\n"
59 "| 10 | 10 | string |\n"
60 "| 20 | 20 | string |\n"
61 "+----------+--------+---------+\n";
63 formatter
.flush(sout
);
64 EXPECT_EQ(cmp
, sout
.str());
67 TEST(tableformatter
, multiflush
)
69 std::stringstream sout1
;
70 std::stringstream sout2
;
71 TableFormatter formatter
;
72 formatter
.dump_int("integer", 10);
73 formatter
.dump_float("float", 10.0);
74 formatter
.dump_string("string", "string");
75 formatter
.flush(sout1
);
78 "+----------+--------+---------+\n"
79 "| integer | float | string |\n"
80 "+----------+--------+---------+\n"
81 "| 10 | 10 | string |\n"
82 "+----------+--------+---------+\n";
84 EXPECT_EQ(cmp
, sout1
.str());
86 formatter
.dump_int("integer", 20);
87 formatter
.dump_float("float", 20.0);
88 formatter
.dump_string("string", "string");
89 formatter
.flush(sout2
);
92 "| 20 | 20 | string |\n"
93 "+----------+--------+---------+\n";
95 EXPECT_EQ(cmp
, sout2
.str());
99 TEST(tableformatter
, multireset
)
101 std::stringstream sout
;
102 TableFormatter formatter
;
103 formatter
.dump_int("integer", 10);
104 formatter
.dump_float("float", 10.0);
105 formatter
.dump_string("string", "string");
106 formatter
.flush(sout
);
108 formatter
.dump_int("integer", 20);
109 formatter
.dump_float("float", 20.0);
110 formatter
.dump_string("string", "string");
111 formatter
.flush(sout
);
114 "+----------+--------+---------+\n"
115 "| integer | float | string |\n"
116 "+----------+--------+---------+\n"
117 "| 10 | 10 | string |\n"
118 "+----------+--------+---------+\n"
119 "+----------+--------+---------+\n"
120 "| integer | float | string |\n"
121 "+----------+--------+---------+\n"
122 "| 20 | 20 | string |\n"
123 "+----------+--------+---------+\n";
125 EXPECT_EQ(cmp
, sout
.str());
128 TEST(tableformatter
, changingheaderlength
)
130 std::stringstream sout
;
131 TableFormatter formatter
;
132 formatter
.dump_int("integer", 10);
133 formatter
.dump_float("float", 10.0);
134 formatter
.dump_string("string", "string");
135 formatter
.flush(sout
);
136 formatter
.dump_int("integer", 20);
137 formatter
.dump_float("float", 20.0);
138 formatter
.dump_string("string", "stringstring");
139 formatter
.flush(sout
);
142 "+----------+--------+---------+\n"
143 "| integer | float | string |\n"
144 "+----------+--------+---------+\n"
145 "| 10 | 10 | string |\n"
146 "+----------+--------+---------+\n"
147 "+----------+--------+---------------+\n"
148 "| integer | float | string |\n"
149 "+----------+--------+---------------+\n"
150 "| 20 | 20 | stringstring |\n"
151 "+----------+--------+---------------+\n";
153 EXPECT_EQ(cmp
, sout
.str());
156 TEST(tableformatter
, changingheader
)
158 std::stringstream sout
;
159 TableFormatter formatter
;
160 formatter
.dump_int("integer", 10);
161 formatter
.dump_float("float", 10.0);
162 formatter
.dump_string("string", "string");
163 formatter
.flush(sout
);
164 formatter
.dump_int("longinteger", 20);
165 formatter
.dump_float("double", 20.0);
166 formatter
.dump_string("char*", "stringstring");
167 formatter
.flush(sout
);
170 "+----------+--------+---------+\n"
171 "| integer | float | string |\n"
172 "+----------+--------+---------+\n"
173 "| 10 | 10 | string |\n"
174 "+----------+--------+---------+\n"
175 "+--------------+---------+---------------+\n"
176 "| longinteger | double | char* |\n"
177 "+--------------+---------+---------------+\n"
178 "| 20 | 20 | stringstring |\n"
179 "+--------------+---------+---------------+\n";
181 EXPECT_EQ(cmp
, sout
.str());
184 TEST(tableformatter
, extendingheader
)
186 std::stringstream sout
;
187 TableFormatter formatter
;
188 formatter
.dump_int("integer", 10);
189 formatter
.dump_float("float", 10.0);
190 formatter
.dump_string("string", "string");
191 formatter
.flush(sout
);
192 formatter
.dump_int("integer", 20);
193 formatter
.dump_float("float", 20.0);
194 formatter
.dump_string("string", "string");
195 formatter
.dump_string("char*", "abcde");
196 formatter
.flush(sout
);
199 "+----------+--------+---------+\n"
200 "| integer | float | string |\n"
201 "+----------+--------+---------+\n"
202 "| 10 | 10 | string |\n"
203 "+----------+--------+---------+\n"
204 "+----------+--------+---------+--------+\n"
205 "| integer | float | string | char* |\n"
206 "+----------+--------+---------+--------+\n"
207 "| 20 | 20 | string | abcde |\n"
208 "+----------+--------+---------+--------+\n";
210 EXPECT_EQ(cmp
, sout
.str());
213 TEST(tableformatter
, stream
)
215 std::stringstream sout
;
216 TableFormatter
* formatter
= (TableFormatter
*) Formatter::create("table");
217 formatter
->dump_stream("integer") << 10;
218 formatter
->dump_stream("float") << 10.0;
219 formatter
->dump_stream("string") << "string";
220 formatter
->flush(sout
);
224 "+----------+--------+---------+\n"
225 "| integer | float | string |\n"
226 "+----------+--------+---------+\n"
227 "| 10 | 10 | string |\n"
228 "+----------+--------+---------+\n";
230 EXPECT_EQ(cmp
, sout
.str());
233 TEST(tableformatter
, multiline_keyval
)
235 std::stringstream sout
;
236 TableFormatter
* formatter
= (TableFormatter
*) Formatter::create("table-kv");
237 formatter
->dump_int("integer", 10);
238 formatter
->dump_float("float", 10.0);
239 formatter
->dump_string("string", "string");
240 formatter
->dump_int("integer", 20);
241 formatter
->dump_float("float", 20.0);
242 formatter
->dump_string("string", "string");
243 formatter
->flush(sout
);
247 "key::integer=\"10\" key::float=\"10\" key::string=\"string\" \n"
248 "key::integer=\"20\" key::float=\"20\" key::string=\"string\" \n";
250 EXPECT_EQ(cmp
, sout
.str());
255 * compile-command: "cd ../.. ; make -j4 &&
256 * make unittest_tableformatter &&
257 * ./unittest_tableformatter