]> git.proxmox.com Git - ceph.git/blame - ceph/src/fmt/test/enforce-checks-test.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / fmt / test / enforce-checks-test.cc
CommitLineData
20effc67
TL
1// Formatting library for C++ - formatting library tests
2//
3// Copyright (c) 2012 - present, Victor Zverovich
4// All rights reserved.
5//
6// For the license information refer to format.h.
7
8#include <iterator>
9#include <vector>
10
11#include "fmt/chrono.h"
12#include "fmt/color.h"
13#include "fmt/format.h"
14#include "fmt/ostream.h"
15#include "fmt/ranges.h"
16#include "fmt/xchar.h"
17
18// Exercise the API to verify that everything we expect to can compile.
19void test_format_api() {
1e59de90
TL
20 (void)fmt::format(FMT_STRING("{}"), 42);
21 (void)fmt::format(FMT_STRING(L"{}"), 42);
22 (void)fmt::format(FMT_STRING("noop"));
20effc67 23
1e59de90
TL
24 (void)fmt::to_string(42);
25 (void)fmt::to_wstring(42);
20effc67
TL
26
27 std::vector<char> out;
28 fmt::format_to(std::back_inserter(out), FMT_STRING("{}"), 42);
29
30 char buffer[4];
31 fmt::format_to_n(buffer, 3, FMT_STRING("{}"), 12345);
32
33 wchar_t wbuffer[4];
34 fmt::format_to_n(wbuffer, 3, FMT_STRING(L"{}"), 12345);
35}
36
37void test_chrono() {
1e59de90
TL
38 (void)fmt::format(FMT_STRING("{}"), std::chrono::seconds(42));
39 (void)fmt::format(FMT_STRING(L"{}"), std::chrono::seconds(42));
20effc67
TL
40}
41
42void test_text_style() {
43 fmt::print(fg(fmt::rgb(255, 20, 30)), FMT_STRING("{}"), "rgb(255,20,30)");
1e59de90
TL
44 (void)fmt::format(fg(fmt::rgb(255, 20, 30)), FMT_STRING("{}"),
45 "rgb(255,20,30)");
20effc67
TL
46
47 fmt::text_style ts = fg(fmt::rgb(255, 20, 30));
48 std::string out;
49 fmt::format_to(std::back_inserter(out), ts,
50 FMT_STRING("rgb(255,20,30){}{}{}"), 1, 2, 3);
51}
52
53void test_range() {
54 std::vector<char> hello = {'h', 'e', 'l', 'l', 'o'};
1e59de90 55 (void)fmt::format(FMT_STRING("{}"), hello);
20effc67
TL
56}
57
58int main() {
59 test_format_api();
60 test_chrono();
61 test_text_style();
62 test_range();
63}