]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/serialization/test/test_optional.cpp
bee2c6b415b44fdf88190641ba3109102d2a3352
[ceph.git] / ceph / src / boost / libs / serialization / test / test_optional.cpp
1 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
2 // test_optional.cpp
3
4 // (C) Copyright 2004 Pavel Vozenilek
5 // Use, modification and distribution is subject to the Boost Software
6 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
8
9 // should pass compilation and execution
10
11 #include <cstddef> // NULL
12 #include <cstdio> // remove
13 #include <fstream>
14
15 #include <boost/config.hpp>
16
17 #if defined(BOOST_NO_STDC_NAMESPACE)
18 namespace std{
19 using ::remove;
20 }
21 #endif
22
23 #include <boost/archive/archive_exception.hpp>
24 #include "test_tools.hpp"
25
26 #include <boost/serialization/optional.hpp>
27
28 #include "A.hpp"
29 #include "A.ipp"
30
31 int test_main( int /* argc */, char* /* argv */[] )
32 {
33 const char * testfile = boost::archive::tmpnam(NULL);
34 BOOST_REQUIRE(NULL != testfile);
35
36 const boost::optional<int> aoptional1;
37 const boost::optional<int> aoptional2(123);
38 {
39 test_ostream os(testfile, TEST_STREAM_FLAGS);
40 test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
41 oa << boost::serialization::make_nvp("aoptional1",aoptional1);
42 oa << boost::serialization::make_nvp("aoptional2",aoptional2);
43 }
44 boost::optional<int> aoptional1a(999);
45 boost::optional<int> aoptional2a;
46 {
47 test_istream is(testfile, TEST_STREAM_FLAGS);
48 test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
49 ia >> boost::serialization::make_nvp("aoptional1",aoptional1a);
50 ia >> boost::serialization::make_nvp("aoptional2",aoptional2a);
51 }
52 BOOST_CHECK(aoptional1 == aoptional1a);
53 BOOST_CHECK(aoptional2 == aoptional2a);
54
55 std::remove(testfile);
56 return EXIT_SUCCESS;
57 }
58
59 // EOF