diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:46 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2024-03-06 10:24:46 +0100 |
commit | 372a0e99c2f61543d9e14d9933b59d9d1f4cb26e (patch) | |
tree | bbadf39aed0610c8f8f7b41fefff47773b8ac205 /xsd/tests/cxx/parser/validation/built-in/integer/driver.cxx | |
parent | 23d41842168ac1a1580111b9c5c73500ceee3d57 (diff) | |
parent | 4538829ab86b5a1cd4e845e7eab165029c9d6d46 (diff) |
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'xsd/tests/cxx/parser/validation/built-in/integer/driver.cxx')
-rw-r--r-- | xsd/tests/cxx/parser/validation/built-in/integer/driver.cxx | 304 |
1 files changed, 0 insertions, 304 deletions
diff --git a/xsd/tests/cxx/parser/validation/built-in/integer/driver.cxx b/xsd/tests/cxx/parser/validation/built-in/integer/driver.cxx deleted file mode 100644 index 2828249..0000000 --- a/xsd/tests/cxx/parser/validation/built-in/integer/driver.cxx +++ /dev/null @@ -1,304 +0,0 @@ -// file : tests/cxx/parser/validation/built-in/int/driver.cxx -// copyright : Copyright (c) 2006-2014 Code Synthesis Tools CC -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -// Test the built-in integer & friends types validation. -// -#include <limits.h> - -#include <string> -#include <sstream> -#include <cassert> - -#include <xsd/cxx/parser/validating/exceptions.hxx> -#include <xsd/cxx/parser/validating/xml-schema-pimpl.hxx> - -using namespace std; -using namespace xsd::cxx::parser::validating; - -template <typename T> -bool -test_post_fail (T& p) -{ - try - { - p._post (); - } - catch (invalid_value<char> const&) - { - return true; - } - - return false; -} - -int -main () -{ - // Good. - // - - std::string min; - std::string max; - std::string umax; - - { - ostringstream ostr; - ostr << LLONG_MIN; - min = ostr.str (); - } - - { - ostringstream ostr; - ostr << LLONG_MAX; - max = ostr.str (); - } - - { - ostringstream ostr; - ostr << ULLONG_MAX; - umax = ostr.str (); - } - - // integer - // - { - integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (min.c_str ()); - p._post (); - assert (p.post_integer () == LLONG_MIN); - } - - { - integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("0"); - p._post (); - assert (p.post_integer () == 0); - } - - { - integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (max.c_str ()); - p._post (); - assert (p.post_integer () == LLONG_MAX); - } - - // negative_integer - // - { - negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (min.c_str ()); - p._post (); - assert (p.post_negative_integer () == LLONG_MIN); - } - - { - negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("-1"); - p._post (); - assert (p.post_negative_integer () == -1); - } - - // non_positive_integer - // - { - non_positive_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (min.c_str ()); - p._post (); - assert (p.post_non_positive_integer () == LLONG_MIN); - } - - { - non_positive_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("+0"); - p._post (); - assert (p.post_non_positive_integer () == 0); - } - - // positive_integer - // - { - positive_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("1"); - p._post (); - assert (p.post_positive_integer () == 1); - } - - { - positive_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (umax.c_str ()); - p._post (); - assert (p.post_positive_integer () == ULLONG_MAX); - } - - // non_negative_integer - // - /* - { - non_negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("-0"); - p._post (); - assert (p.post_non_negative_integer () == 0); - } - */ - - { - non_negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("0"); - p._post (); - assert (p.post_non_negative_integer () == 0); - } - - { - non_negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (umax.c_str ()); - p._post (); - assert (p.post_non_negative_integer () == ULLONG_MAX); - } - - - // Bad - // - - std::string past_min (min); - std::string past_max (max); - std::string past_umax (umax); - - assert (*past_min.rbegin () != '9'); - assert (*past_max.rbegin () != '9'); - assert (*past_umax.rbegin () != '9'); - - (*past_min.rbegin ())++; - (*past_max.rbegin ())++; - (*past_umax.rbegin ())++; - - // integer - // - { - integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (past_min.c_str ()); - assert (test_post_fail (p)); - } - - { - integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (past_max.c_str ()); - assert (test_post_fail (p)); - } - - // negative_integer - // - { - negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (past_min.c_str ()); - assert (test_post_fail (p)); - } - - { - negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("-0"); - assert (test_post_fail (p)); - } - - { - negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("1"); - assert (test_post_fail (p)); - } - - // non_positive_integer - // - { - non_positive_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (past_min.c_str ()); - assert (test_post_fail (p)); - } - - { - non_positive_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("1"); - assert (test_post_fail (p)); - } - - // positive_integer - // - { - positive_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("-1"); - assert (test_post_fail (p)); - } - - { - positive_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("+0"); - assert (test_post_fail (p)); - } - - { - positive_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (past_umax.c_str ()); - assert (test_post_fail (p)); - } - - // non_negative_integer - // - { - non_negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters ("-1"); - assert (test_post_fail (p)); - } - - { - non_negative_integer_pimpl<char> p; - p.pre (); - p._pre (); - p._characters (past_umax.c_str ()); - assert (test_post_fail (p)); - } -} |