From 050366b5f9bb3c970ce3ec655bb589e7c7d0e8af Mon Sep 17 00:00:00 2001 From: David Wells Date: Sun, 4 Oct 2015 15:53:16 -0400 Subject: [PATCH] Test the memory consumption of fundamental types. --- tests/base/memory_consumption_02.cc | 75 ++++++++++++ tests/base/memory_consumption_02.output | 149 ++++++++++++++++++++++++ 2 files changed, 224 insertions(+) create mode 100644 tests/base/memory_consumption_02.cc create mode 100644 tests/base/memory_consumption_02.output diff --git a/tests/base/memory_consumption_02.cc b/tests/base/memory_consumption_02.cc new file mode 100644 index 0000000000..38f19fc78f --- /dev/null +++ b/tests/base/memory_consumption_02.cc @@ -0,0 +1,75 @@ +// Test the sizes of fundamental types, their pointers, and vectors comprised +// of either. +#include +#include +#include + +#include +#include +#include + +#define CONCAT(a, b) a##b +#define MAKE_LABEL(a, b) CONCAT(a, b) +#define EQUALITY_TEST(a) EqualityWithSizeofTest MAKE_LABEL(b_, __LINE__); \ + EqualityWithSizeofTest MAKE_LABEL(c_, __LINE__); \ + EqualityWithSizeofTest MAKE_LABEL(d_, __LINE__); + +using namespace dealii; + +template +struct EqualityWithSizeofTest +{ + EqualityWithSizeofTest() + { + T t = 0; + deallog << (sizeof(t) == dealii::MemoryConsumption::memory_consumption(t)) + << std::endl; + + std::vector vector_test(42); + deallog << ((sizeof(std::vector) + vector_test.capacity()*sizeof(T)) + == dealii::MemoryConsumption::memory_consumption(vector_test)) + << std::endl; + } +}; + +int main() +{ + std::ofstream logfile("output"); + deallog.attach(logfile); + deallog.depth_console(0); + + // do not test value type (just pointers) with void + EqualityWithSizeofTest a; + EqualityWithSizeofTest b; + + // std::vector is overloaded to work as a bit field, so the vector + // version should be unequal + EQUALITY_TEST(bool) + EQUALITY_TEST(signed char) + EQUALITY_TEST(unsigned char) + // char* is overloaded to measure the length of a C string, so the pointer + // version should be unequal + EQUALITY_TEST(char) + EQUALITY_TEST(wchar_t) + + EQUALITY_TEST(short) + EQUALITY_TEST(short int) + EQUALITY_TEST(signed short) + EQUALITY_TEST(signed short int) + EQUALITY_TEST(unsigned short) + EQUALITY_TEST(unsigned short int) + EQUALITY_TEST(int) + EQUALITY_TEST(signed) + EQUALITY_TEST(signed int) + EQUALITY_TEST(unsigned) + EQUALITY_TEST(unsigned int) + EQUALITY_TEST(long) + EQUALITY_TEST(long int) + EQUALITY_TEST(signed long) + EQUALITY_TEST(signed long int) + EQUALITY_TEST(unsigned long int) + + EQUALITY_TEST(float) + EQUALITY_TEST(double) + EQUALITY_TEST(long double) +} diff --git a/tests/base/memory_consumption_02.output b/tests/base/memory_consumption_02.output new file mode 100644 index 0000000000..7bdb9e67b0 --- /dev/null +++ b/tests/base/memory_consumption_02.output @@ -0,0 +1,149 @@ + +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::0 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::0 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 +DEAL::1 -- 2.39.5