From 7417e364695d3f4ea9f2b3583a61bbd02946f33e Mon Sep 17 00:00:00 2001 From: bangerth Date: Mon, 13 Jun 2011 17:56:14 +0000 Subject: [PATCH] Two new tests. git-svn-id: https://svn.dealii.org/trunk@23810 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/serialization/pointer.cc | 81 +++++++++++++++++++++++++ tests/serialization/pointer/cmp/generic | 6 ++ tests/serialization/test_01.cc | 79 ++++++++++++++++++++++++ tests/serialization/test_01/cmp/generic | 8 +++ 4 files changed, 174 insertions(+) create mode 100644 tests/serialization/pointer.cc create mode 100644 tests/serialization/pointer/cmp/generic create mode 100644 tests/serialization/test_01.cc create mode 100644 tests/serialization/test_01/cmp/generic diff --git a/tests/serialization/pointer.cc b/tests/serialization/pointer.cc new file mode 100644 index 0000000000..9a19703341 --- /dev/null +++ b/tests/serialization/pointer.cc @@ -0,0 +1,81 @@ +//---------------------------- pointer.cc --------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2010, 2011 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//---------------------------- pointer.cc --------------------------- + +// test what happens when serializing a pointer. is a new object created when +// loading into another pointer that is NULL? this is in fact what happens + +#include "serialization.h" + +#include + +int object_number = 1; + +class C +{ + public: + C () + { + object_number = ::object_number++; + deallog << "Default constructor. Object number " + << object_number + << std::endl; + } + + C (const C&) + { + object_number = ::object_number++; + deallog << "copy constructor. Object number " + << object_number + << std::endl; + } + + template + void serialize (Archive &ar, const unsigned int version) + { + deallog << "Serializing object number " + << object_number + << " via " << typeid(Archive).name() + << std::endl; + } + + bool operator == (const C &) const + { + return true; + } + + private: + unsigned int object_number; +}; + + +void test () +{ + C *p1 = new C(); + C *p2; + + verify (p1, p2); +} + + +int main () +{ + std::ofstream logfile("pointer/output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + test (); + + deallog << "OK" << std::endl; +} diff --git a/tests/serialization/pointer/cmp/generic b/tests/serialization/pointer/cmp/generic new file mode 100644 index 0000000000..6170116d66 --- /dev/null +++ b/tests/serialization/pointer/cmp/generic @@ -0,0 +1,6 @@ +JobId unknown Mon Jun 13 12:54:54 2011 +DEAL::Default constructor. Object number 1 +DEAL::Serializing object number 1 via N5boost7archive13text_oarchiveE +DEAL::22 serialization::archive 9 0 1 0 +0 + diff --git a/tests/serialization/test_01.cc b/tests/serialization/test_01.cc new file mode 100644 index 0000000000..bf1cb0c490 --- /dev/null +++ b/tests/serialization/test_01.cc @@ -0,0 +1,79 @@ +//---------------------------- test_01.cc --------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2010, 2011 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//---------------------------- test_01.cc --------------------------- + +// a basic test for some serialization functionality + +#include "serialization.h" + +#include + +int object_number = 1; + +class C +{ + public: + C () + { + object_number = ::object_number++; + deallog << "Default constructor. Object number " + << object_number + << std::endl; + } + + C (const C&) + { + object_number = ::object_number++; + deallog << "copy constructor. Object number " + << object_number + << std::endl; + } + + template + void serialize (Archive &ar, const unsigned int version) + { + deallog << "Serializing object number " + << object_number + << " via " << typeid(Archive).name() + << std::endl; + } + + bool operator == (const C &) const + { + return true; + } + + private: + unsigned int object_number; +}; + + +void test () +{ + C p1, p2; + + verify (p1, p2); +} + + +int main () +{ + std::ofstream logfile("test_01/output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + test (); + + deallog << "OK" << std::endl; +} diff --git a/tests/serialization/test_01/cmp/generic b/tests/serialization/test_01/cmp/generic new file mode 100644 index 0000000000..9260221170 --- /dev/null +++ b/tests/serialization/test_01/cmp/generic @@ -0,0 +1,8 @@ + +DEAL::Default constructor. Object number 1 +DEAL::Default constructor. Object number 2 +DEAL::Serializing object number 1 via N5boost7archive13text_oarchiveE +DEAL::22 serialization::archive 9 0 0 + +DEAL::Serializing object number 2 via N5boost7archive13text_iarchiveE +DEAL::OK -- 2.39.5