From: Wolfgang Bangerth Date: Tue, 11 May 2021 21:31:19 +0000 (-0600) Subject: Add a test. X-Git-Tag: v9.3.0-rc1~23^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ea0f0707362aba437401d6f5b97528bc6cf27606;p=dealii.git Add a test. --- diff --git a/tests/base/aligned_vector_07.cc b/tests/base/aligned_vector_07.cc new file mode 100644 index 0000000000..d31baf349a --- /dev/null +++ b/tests/base/aligned_vector_07.cc @@ -0,0 +1,61 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2012 - 2021 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE.md at +// the top level directory of deal.II. +// +// --------------------------------------------------------------------- + + +// Test for AlignedVector >, which +// uncovered a difficult-to-track bug in the move assignment operator +// related to the destruction of element objects. + +#include + +#include "../tests.h" + + + +void +test() +{ + AlignedVector a(1); + a[0] = 42; + + AlignedVector> v(1); + v[0] = a; + + deallog << "Resizing..." << std::endl; + v.resize(2); + a[0] = 932; + v[1] = a; + + deallog << "Shrinking..." << std::endl; + v.resize(1); + + deallog << "Checking: size=" << v[0].size() << ", element=" << v[0][0] + << std::endl; + + deallog << "Clearing..." << std::endl; + v.clear(); + + deallog << "OK" << std::endl; +} + + + +int +main() +{ + initlog(); + + test(); +} diff --git a/tests/base/aligned_vector_07.output b/tests/base/aligned_vector_07.output new file mode 100644 index 0000000000..a415dc2bdb --- /dev/null +++ b/tests/base/aligned_vector_07.output @@ -0,0 +1,6 @@ + +DEAL::Resizing... +DEAL::Shrinking... +DEAL::Checking: size=1, element=42 +DEAL::Clearing... +DEAL::OK