From a15cf65c44d5c224169c32ef5495b68c758134b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sun, 18 May 2014 16:08:14 +0200 Subject: Imported Upstream version 3.3.0.2 --- .../parser/validation/built-in/short/driver.cxx | 118 +++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 xsd/tests/cxx/parser/validation/built-in/short/driver.cxx (limited to 'xsd/tests/cxx/parser/validation/built-in/short/driver.cxx') diff --git a/xsd/tests/cxx/parser/validation/built-in/short/driver.cxx b/xsd/tests/cxx/parser/validation/built-in/short/driver.cxx new file mode 100644 index 0000000..2bb95d2 --- /dev/null +++ b/xsd/tests/cxx/parser/validation/built-in/short/driver.cxx @@ -0,0 +1,118 @@ +// file : tests/cxx/parser/validation/built-in/short/driver.cxx +// author : Boris Kolpackov +// copyright : Copyright (c) 2006-2010 Code Synthesis Tools CC +// license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +// Test the built-in short and unsigned short types validation. +// +#include + +#include +#include + +using namespace xsd::cxx::parser::validating; + +template +bool +test_post_fail (T& p) +{ + try + { + p._post (); + } + catch (invalid_value const&) + { + return true; + } + + return false; +} + +int +main () +{ + // Good. + // + { + short_pimpl p; + p.pre (); + p._pre (); + p._characters ("-32768"); + p._post (); + assert (p.post_short () == -32768); + } + + { + short_pimpl p; + p.pre (); + p._pre (); + p._characters ("0"); + p._post (); + assert (p.post_short () == 0); + } + + { + short_pimpl p; + p.pre (); + p._pre (); + p._characters ("32767"); + p._post (); + assert (p.post_short () == 32767); + } + + { + unsigned_short_pimpl p; + p.pre (); + p._pre (); + p._characters ("0"); + p._post (); + assert (p.post_unsigned_short () == 0); + } + + { + unsigned_short_pimpl p; + p.pre (); + p._pre (); + p._characters ("65535"); + p._post (); + assert (p.post_unsigned_short () == 65535); + } + + // Bad + // + + { + unsigned_short_pimpl p; + p.pre (); + p._pre (); + p._characters ("-1234"); + assert (test_post_fail (p)); + } + + + // Ranges + // + { + short_pimpl p; + p.pre (); + p._pre (); + p._characters ("-32769"); + assert (test_post_fail (p)); + } + + { + short_pimpl p; + p.pre (); + p._pre (); + p._characters ("32768"); + assert (test_post_fail (p)); + } + + { + unsigned_short_pimpl p; + p.pre (); + p._pre (); + p._characters ("65536"); + assert (test_post_fail (p)); + } +} -- cgit v1.2.3