summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/spirit/test/qi/int2.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 18:24:20 +0000
commit483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch)
treee5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/libs/spirit/test/qi/int2.cpp
parentInitial commit. (diff)
downloadceph-upstream.tar.xz
ceph-upstream.zip
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/spirit/test/qi/int2.cpp')
-rw-r--r--src/boost/libs/spirit/test/qi/int2.cpp108
1 files changed, 108 insertions, 0 deletions
diff --git a/src/boost/libs/spirit/test/qi/int2.cpp b/src/boost/libs/spirit/test/qi/int2.cpp
new file mode 100644
index 00000000..89f2b327
--- /dev/null
+++ b/src/boost/libs/spirit/test/qi/int2.cpp
@@ -0,0 +1,108 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2001-2011 Hartmut Kaiser
+ Copyright (c) 2011 Bryce Lelbach
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/
+
+#include "int.hpp"
+
+int
+main()
+{
+ using spirit_test::test;
+ using spirit_test::test_attr;
+
+ ///////////////////////////////////////////////////////////////////////////
+ // signed integer literal tests
+ ///////////////////////////////////////////////////////////////////////////
+ {
+ using boost::spirit::lit;
+ int i = 123456;
+
+ BOOST_TEST( test("123456", lit(123456)));
+ BOOST_TEST(!test("123456", lit(0)));
+ BOOST_TEST( test("123456", lit(i)));
+ BOOST_TEST(!test("123456", lit(-i)));
+ BOOST_TEST( test("+425", lit(425)));
+ BOOST_TEST(!test("+425", lit(17)));
+ BOOST_TEST( test("-2000", lit(-2000)));
+ BOOST_TEST(!test("-2000", lit(2000)));
+ BOOST_TEST( test(max_int, lit(INT_MAX)));
+ BOOST_TEST(!test(max_int, lit(INT_MIN)));
+
+ BOOST_TEST( test(min_int, lit(INT_MIN)));
+ BOOST_TEST(!test(min_int, lit(INT_MAX)));
+
+ BOOST_TEST(!test("-", lit(8451)));
+ BOOST_TEST(!test("+", lit(8451)));
+
+ // with leading zeros
+ BOOST_TEST(test("000000000098765", lit(98765)));
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // long long literal tests
+ ///////////////////////////////////////////////////////////////////////////
+#ifdef BOOST_HAS_LONG_LONG
+ {
+ using boost::spirit::lit;
+ boost::long_long_type ll = 1234567890123456789LL;
+
+ BOOST_TEST( test("1234567890123456789", lit(1234567890123456789LL)));
+ BOOST_TEST(!test("1234567890123456789", lit(-19LL)));
+ BOOST_TEST( test("1234567890123456789", lit(ll)));
+ BOOST_TEST(!test("1234567890123456789", lit(-ll)));
+ BOOST_TEST( test("-100000000000000", lit(-100000000000000LL)));
+ BOOST_TEST(!test("-100000000000000", lit(3243515525263LL)));
+ BOOST_TEST( test(max_long_long, lit(LONG_LONG_MAX)));
+ BOOST_TEST(!test(max_long_long, lit(LONG_LONG_MIN)));
+
+ BOOST_TEST( test(min_long_long, lit(LONG_LONG_MIN)));
+ BOOST_TEST(!test(min_long_long, lit(LONG_LONG_MAX)));
+ }
+#endif
+
+ ///////////////////////////////////////////////////////////////////////////
+ // short_ and long_ literal tests
+ ///////////////////////////////////////////////////////////////////////////
+ {
+ using boost::spirit::lit;
+ short s = 12345;
+ long l = 1234567890L;
+
+ BOOST_TEST( test("12345", lit(12345)));
+ BOOST_TEST(!test("12345", lit(-12345)));
+ BOOST_TEST( test("12345", lit(s)));
+ BOOST_TEST(!test("12345", lit(-s)));
+ BOOST_TEST( test("-12345", lit(-12345)));
+ BOOST_TEST(!test("-12345", lit(12345)));
+ BOOST_TEST( test("-12345", lit(-s)));
+ BOOST_TEST(!test("-12345", lit(s)));
+
+ BOOST_TEST( test("1234567890", lit(1234567890)));
+ BOOST_TEST(!test("1234567890", lit(-1234567890)));
+ BOOST_TEST( test("1234567890", lit(l)));
+ BOOST_TEST(!test("1234567890", lit(-l)));
+ BOOST_TEST( test("-1234567890", lit(-1234567890)));
+ BOOST_TEST(!test("-1234567890", lit(1234567890)));
+ BOOST_TEST( test("-1234567890", lit(-l)));
+ BOOST_TEST(!test("-1234567890", lit(l)));
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // literal lazy tests
+ ///////////////////////////////////////////////////////////////////////////
+ {
+ using boost::phoenix::ref;
+ using boost::spirit::qi::lit;
+ int n = 123, m = 321;
+
+ BOOST_TEST(test("123", lit(ref(n))));
+ BOOST_TEST(!test("123", lit(ref(m))));
+ }
+
+ return boost::report_errors();
+}