]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/uuid/test/test_string_generator.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / uuid / test / test_string_generator.cpp
CommitLineData
7c673cae
FG
1// (C) Copyright Andy Tompkins 2010. Permission to copy, use, modify, sell and
2// distribute this software is granted provided this copyright notice appears
3// in all copies. This software is provided "as is" without express or implied
4// warranty, and with no claim as to its suitability for any purpose.
5
6// Distributed under the Boost Software License, Version 1.0. (See
7// accompanying file LICENSE_1_0.txt or copy at
8// http://www.boost.org/LICENSE_1_0.txt)
9
10// libs/uuid/test/test_string_generator.cpp -------------------------------//
11
12#include <boost/uuid/uuid.hpp>
13#include <boost/uuid/uuid_io.hpp>
14#include <boost/uuid/string_generator.hpp>
15#include <boost/detail/lightweight_test.hpp>
16#include <boost/config.hpp>
b32b8144 17#include <stdexcept>
7c673cae
FG
18#include <string>
19
20int main(int, char*[])
21{
22 using namespace boost::uuids;
23
24 uuid nil_uuid = {{0}};
25 BOOST_TEST_EQ(nil_uuid.is_nil(), true);
26
27 string_generator gen;
28 uuid u = gen("00000000-0000-0000-0000-000000000000");
29 BOOST_TEST_EQ(u, nil_uuid);
30 BOOST_TEST_EQ(u.is_nil(), true);
31
32 const uuid u_increasing = {{ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }};
33 const uuid u_decreasing = {{ 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10 }};
34
35 u = gen("0123456789abcdef0123456789ABCDEF");
36 BOOST_TEST_EQ(u, u_increasing);
37
38 u = gen("{0123456789abcdef0123456789ABCDEF}");
39 BOOST_TEST_EQ(u, u_increasing);
40
41 u = gen("{01234567-89AB-CDEF-0123-456789abcdef}");
42 BOOST_TEST_EQ(u, u_increasing);
43
44 u = gen("01234567-89AB-CDEF-0123-456789abcdef");
45 BOOST_TEST_EQ(u, u_increasing);
46
47 u = gen(std::string("fedcba98-7654-3210-fedc-ba9876543210"));
48 BOOST_TEST_EQ(u, u_decreasing);
49
50#ifndef BOOST_NO_STD_WSTRING
51 u = gen(L"fedcba98-7654-3210-fedc-ba9876543210");
52 BOOST_TEST_EQ(u, u_decreasing);
53
54 u = gen(std::wstring(L"01234567-89ab-cdef-0123-456789abcdef"));
55 BOOST_TEST_EQ(u, u_increasing);
b32b8144
FG
56
57 u = gen(std::wstring(L"{01234567-89ab-cdef-0123-456789abcdef}"));
58 BOOST_TEST_EQ(u, u_increasing);
7c673cae
FG
59#endif //BOOST_NO_STD_WSTRING
60
b32b8144
FG
61 const char raw[36] = { '0', '1', '2', '3', '4', '5', '6', '7', '-',
62 '8', '9', 'a', 'b', '-',
63 'c', 'd', 'e', 'f', '-',
64 0 , '1', '2', '3', '-', // 0x00 character is intentional
65 '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
66 BOOST_TEST_THROWS(gen(std::string(raw, 36)), std::runtime_error);
67
68 BOOST_TEST_THROWS(gen("01234567-89ab-cdef-0123456789abcdef"), std::runtime_error);
69 BOOST_TEST_THROWS(gen("01234567-89ab-cdef0123-456789abcdef"), std::runtime_error);
70 BOOST_TEST_THROWS(gen("01234567-89abcdef-0123-456789abcdef"), std::runtime_error);
71 BOOST_TEST_THROWS(gen("0123456789ab-cdef-0123-456789abcdef"), std::runtime_error);
72
73 BOOST_TEST_THROWS(gen("{01234567-89AB-CDEF-0123-456789abcdef)"), std::runtime_error);
74 BOOST_TEST_THROWS(gen("{01234567-89AB-CDEF-0123-456789abcdef"), std::runtime_error);
75 BOOST_TEST_THROWS(gen("01234567-89AB-CDEF-0123-456789abcdef}"), std::runtime_error);
76#ifndef BOOST_NO_STD_WSTRING
77 BOOST_TEST_THROWS(gen(std::wstring(L"{01234567-89AB-CDEF-0123-456789abcdef)")), std::runtime_error);
78 BOOST_TEST_THROWS(gen(std::wstring(L"{01234567-89AB-CDEF-0123-456789abcdef")), std::runtime_error);
79 BOOST_TEST_THROWS(gen(std::wstring(L"01234567-89AB-CDEF-0123-456789abcdef}")), std::runtime_error);
80 BOOST_TEST_THROWS(gen(std::wstring(L"G1234567-89AB-CDEF-0123-456789abcdef}")), std::runtime_error);
81#endif //BOOST_NO_STD_WSTRING
82
83 BOOST_TEST_THROWS(gen("G1234567-89AB-CDEF-0123-456789abcdef"), std::runtime_error);
84 BOOST_TEST_THROWS(gen("Have a great big roast-beef sandwich!"), std::runtime_error);
85
86 BOOST_TEST_THROWS(gen("83f8638b-8dca-4152-zzzz-2ca8b33039b4"), std::runtime_error);
87
7c673cae
FG
88 return boost::report_errors();
89}