Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r86049 - trunk/libs/variant/test
From: antoshkka_at_[hidden]
Date: 2013-09-30 03:39:25


Author: apolukhin
Date: 2013-09-30 03:39:25 EDT (Mon, 30 Sep 2013)
New Revision: 86049
URL: http://svn.boost.org/trac/boost/changeset/86049

Log:
Commit missing test file for Boost.Variant and uncomment line in Jamfile (refs #2839)

Added:
   trunk/libs/variant/test/variant_swap_test.cpp (contents, props changed)
Text files modified:
   trunk/libs/variant/test/Jamfile.v2 | 3
   trunk/libs/variant/test/variant_swap_test.cpp | 90 ++++++++++++++++++++++++++++++++++++++++
   2 files changed, 91 insertions(+), 2 deletions(-)

Modified: trunk/libs/variant/test/Jamfile.v2
==============================================================================
--- trunk/libs/variant/test/Jamfile.v2 Mon Sep 30 01:44:38 2013 (r86048)
+++ trunk/libs/variant/test/Jamfile.v2 2013-09-30 03:39:25 EDT (Mon, 30 Sep 2013) (r86049)
@@ -53,8 +53,7 @@
       <toolset>clang:<cxxflags>-fno-exceptions
       : variant_noexcept_test
     ]
- # Rene: Commented out because of missing file.
- # [ run variant_swap_test.cpp ]
+ [ run variant_swap_test.cpp ]
    ;
 
 

Added: trunk/libs/variant/test/variant_swap_test.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ trunk/libs/variant/test/variant_swap_test.cpp 2013-09-30 03:39:25 EDT (Mon, 30 Sep 2013) (r86049)
@@ -0,0 +1,90 @@
+//-----------------------------------------------------------------------------
+// boost-libs variant/test/variant_swap_test.cpp source file
+// See http://www.boost.org for updates, documentation, and revision history.
+//-----------------------------------------------------------------------------
+//
+// Copyright (c) 2009 ArtVPS Ltd.
+// Copyright (c) 2013 Antony Polukhin.
+//
+// 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 "boost/test/minimal.hpp"
+#include "boost/variant.hpp"
+
+#include <vector>
+#include <algorithm>
+
+void run1()
+{
+ using boost::variant;
+ typedef variant< int, std::vector<int>* > t_var;
+
+ std::vector<int> vec;
+ t_var v0(23), v1(&vec);
+
+ BOOST_REQUIRE(v0.which() == 0);
+ BOOST_REQUIRE(v1.which() == 1);
+
+ swap(v0, v1);
+
+ BOOST_CHECK(v0.which() == 1);
+ BOOST_CHECK(v1.which() == 0);
+}
+
+void run2()
+{
+ using boost::variant;
+ using std::swap;
+ typedef variant< std::vector<int>, std::vector<double> > t_var;
+
+ std::vector<int> vec1;
+ std::vector<double> vec2;
+ t_var v0(vec1), v1(vec2);
+
+ BOOST_REQUIRE(v0.which() == 0);
+ BOOST_REQUIRE(v1.which() == 1);
+
+ swap(v0, v1);
+
+ BOOST_CHECK(v0.which() == 1);
+ BOOST_CHECK(v1.which() == 0);
+
+ v0.swap(v1);
+
+ BOOST_CHECK(v0.which() == 0);
+ BOOST_CHECK(v1.which() == 1);
+}
+
+void run3()
+{
+ using boost::variant;
+ using std::swap;
+ typedef variant< int, double > t_var;
+
+ t_var v0(1), v1(2.0);
+
+ BOOST_REQUIRE(v0.which() == 0);
+ BOOST_REQUIRE(v1.which() == 1);
+
+ swap(v0, v1);
+
+ BOOST_CHECK(v0.which() == 1);
+ BOOST_CHECK(v1.which() == 0);
+
+ v0.swap(v1);
+
+ BOOST_CHECK(v0.which() == 0);
+ BOOST_CHECK(v1.which() == 1);
+}
+
+int test_main(int , char* [])
+{
+ run1();
+ run2();
+ run3();
+
+ return 0;
+}
+


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk