Skip to content

Commit

Permalink
revert change to string_generator so it continues to
Browse files Browse the repository at this point in the history
throw std::runtime_error like it always had before
therefore removing a breaking change before release

remove one unnecessary code branch in string_generator
jeking3 committed Nov 11, 2017
1 parent 5a48cab commit 8a81273
Showing 3 changed files with 17 additions and 21 deletions.
2 changes: 1 addition & 1 deletion doc/uuid.html
Original file line number Diff line number Diff line change
@@ -501,7 +501,7 @@ <h4><a name="String Generator">String Generator</a></h4>
boost::uuids::uuid u3 = gen(std::string("0123456789abcdef0123456789abcdef"));
boost::uuids::uuid u4 = gen(std::wstring(L"01234567-89AB-CDEF-0123-456789ABCDEF"));
</pre>
Invalid input will generate a std::invalid_argument exception.
Invalid input will generate a <tt>std::runtime_error</tt> exception.

<h3><a name="boost/uuid/name_generator.hpp" href="./../../boost/uuid/name_generator.hpp">boost/uuid/name_generator.hpp</a></h3>
<h4><a name="Synopsis_name_generator">Synopsis</a></h4>
6 changes: 1 addition & 5 deletions include/boost/uuid/string_generator.hpp
Original file line number Diff line number Diff line change
@@ -89,10 +89,6 @@ struct string_generator {
} else {
throw_invalid();
}
} else {
if (is_dash(c)) {
throw_invalid();
}
}
}

@@ -192,7 +188,7 @@ struct string_generator {
}

void throw_invalid() const {
BOOST_THROW_EXCEPTION(std::invalid_argument("invalid uuid string"));
BOOST_THROW_EXCEPTION(std::runtime_error("invalid uuid string"));
}
};

30 changes: 15 additions & 15 deletions test/test_string_generator.cpp
Original file line number Diff line number Diff line change
@@ -63,27 +63,27 @@ int main(int, char*[])
'c', 'd', 'e', 'f', '-',
0 , '1', '2', '3', '-', // 0x00 character is intentional
'4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
BOOST_TEST_THROWS(gen(std::string(raw, 36)), std::invalid_argument);
BOOST_TEST_THROWS(gen(std::string(raw, 36)), std::runtime_error);

BOOST_TEST_THROWS(gen("01234567-89ab-cdef-0123456789abcdef"), std::invalid_argument);
BOOST_TEST_THROWS(gen("01234567-89ab-cdef0123-456789abcdef"), std::invalid_argument);
BOOST_TEST_THROWS(gen("01234567-89abcdef-0123-456789abcdef"), std::invalid_argument);
BOOST_TEST_THROWS(gen("0123456789ab-cdef-0123-456789abcdef"), std::invalid_argument);
BOOST_TEST_THROWS(gen("01234567-89ab-cdef-0123456789abcdef"), std::runtime_error);
BOOST_TEST_THROWS(gen("01234567-89ab-cdef0123-456789abcdef"), std::runtime_error);
BOOST_TEST_THROWS(gen("01234567-89abcdef-0123-456789abcdef"), std::runtime_error);
BOOST_TEST_THROWS(gen("0123456789ab-cdef-0123-456789abcdef"), std::runtime_error);

BOOST_TEST_THROWS(gen("{01234567-89AB-CDEF-0123-456789abcdef)"), std::invalid_argument);
BOOST_TEST_THROWS(gen("{01234567-89AB-CDEF-0123-456789abcdef"), std::invalid_argument);
BOOST_TEST_THROWS(gen("01234567-89AB-CDEF-0123-456789abcdef}"), std::invalid_argument);
BOOST_TEST_THROWS(gen("{01234567-89AB-CDEF-0123-456789abcdef)"), std::runtime_error);
BOOST_TEST_THROWS(gen("{01234567-89AB-CDEF-0123-456789abcdef"), std::runtime_error);
BOOST_TEST_THROWS(gen("01234567-89AB-CDEF-0123-456789abcdef}"), std::runtime_error);
#ifndef BOOST_NO_STD_WSTRING
BOOST_TEST_THROWS(gen(std::wstring(L"{01234567-89AB-CDEF-0123-456789abcdef)")), std::invalid_argument);
BOOST_TEST_THROWS(gen(std::wstring(L"{01234567-89AB-CDEF-0123-456789abcdef")), std::invalid_argument);
BOOST_TEST_THROWS(gen(std::wstring(L"01234567-89AB-CDEF-0123-456789abcdef}")), std::invalid_argument);
BOOST_TEST_THROWS(gen(std::wstring(L"G1234567-89AB-CDEF-0123-456789abcdef}")), std::invalid_argument);
BOOST_TEST_THROWS(gen(std::wstring(L"{01234567-89AB-CDEF-0123-456789abcdef)")), std::runtime_error);
BOOST_TEST_THROWS(gen(std::wstring(L"{01234567-89AB-CDEF-0123-456789abcdef")), std::runtime_error);
BOOST_TEST_THROWS(gen(std::wstring(L"01234567-89AB-CDEF-0123-456789abcdef}")), std::runtime_error);
BOOST_TEST_THROWS(gen(std::wstring(L"G1234567-89AB-CDEF-0123-456789abcdef}")), std::runtime_error);
#endif //BOOST_NO_STD_WSTRING

BOOST_TEST_THROWS(gen("G1234567-89AB-CDEF-0123-456789abcdef"), std::invalid_argument);
BOOST_TEST_THROWS(gen("Have a great big roast-beef sandwich!"), std::invalid_argument);
BOOST_TEST_THROWS(gen("G1234567-89AB-CDEF-0123-456789abcdef"), std::runtime_error);
BOOST_TEST_THROWS(gen("Have a great big roast-beef sandwich!"), std::runtime_error);

BOOST_TEST_THROWS(gen("83f8638b-8dca-4152-zzzz-2ca8b33039b4"), std::invalid_argument);
BOOST_TEST_THROWS(gen("83f8638b-8dca-4152-zzzz-2ca8b33039b4"), std::runtime_error);

return boost::report_errors();
}

0 comments on commit 8a81273

Please sign in to comment.