Enable static anon namespace workaround on pathscale
[alexxy/gromacs.git] / src / gromacs / analysisdata / tests / analysisdata.cpp
index 34cc611906260c65b12bf2f7e6cdeee4102e96a0..6891bcef401e112d60e04fec3aa3c8d1f0b96142 100644 (file)
@@ -1,10 +1,10 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2011,2012,2013, by the GROMACS development team, led by
- * David van der Spoel, Berk Hess, Erik Lindahl, and including many
- * others, as listed in the AUTHORS file in the top-level source
- * directory and at http://www.gromacs.org.
+ * Copyright (c) 2011,2012,2013,2014, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
  *
  * GROMACS is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -52,8 +52,8 @@
 #include "gromacs/analysisdata/paralleloptions.h"
 #include "gromacs/utility/exceptions.h"
 
-#include "testutils/datatest.h"
-#include "testutils/mock_datamodule.h"
+#include "gromacs/analysisdata/tests/datatest.h"
+#include "gromacs/analysisdata/tests/mock_datamodule.h"
 #include "testutils/testasserts.h"
 
 using gmx::test::AnalysisDataTestInput;
@@ -139,6 +139,7 @@ TEST(AnalysisDataInitializationTest, ChecksMultipointModules)
     EXPECT_NO_THROW_GMX(data.addModule(mod2));
 }
 
+#if GTEST_HAS_TYPED_TEST
 
 /********************************************************************
  * Input data for tests below.
@@ -150,8 +151,13 @@ class SimpleInputData
     public:
         static const AnalysisDataTestInput &get()
         {
+#ifndef STATIC_ANON_NAMESPACE_BUG
             static SimpleInputData singleton;
             return singleton.data_;
+#else
+            static SimpleInputData singleton_analysisdata;
+            return singleton_analysisdata.data_;
+#endif
         }
 
         SimpleInputData() : data_(1, false)
@@ -172,8 +178,13 @@ class DataSetsInputData
     public:
         static const AnalysisDataTestInput &get()
         {
+#ifndef STATIC_ANON_NAMESPACE_BUG
             static DataSetsInputData singleton;
             return singleton.data_;
+#else
+            static DataSetsInputData singleton_analysisdata;
+            return singleton_analysisdata.data_;
+#endif
         }
 
         DataSetsInputData() : data_(2, false)
@@ -202,8 +213,13 @@ class MultipointInputData
     public:
         static const AnalysisDataTestInput &get()
         {
+#ifndef STATIC_ANON_NAMESPACE_BUG
             static MultipointInputData singleton;
             return singleton.data_;
+#else
+            static MultipointInputData singleton_analysisdata;
+            return singleton_analysisdata.data_;
+#endif
         }
 
         MultipointInputData() : data_(1, true)
@@ -234,8 +250,13 @@ class MultipointDataSetsInputData
     public:
         static const AnalysisDataTestInput &get()
         {
+#ifndef STATIC_ANON_NAMESPACE_BUG
             static MultipointDataSetsInputData singleton;
             return singleton.data_;
+#else
+            static MultipointDataSetsInputData singleton_analysisdata;
+            return singleton_analysisdata.data_;
+#endif
         }
 
         MultipointDataSetsInputData() : data_(2, true)
@@ -426,4 +447,19 @@ TYPED_TEST(AnalysisDataCommonTest, LimitedStorageWorks)
     ASSERT_NO_THROW_GMX(AnalysisDataTest::presentAllData());
 }
 
+#else
+
+/* A dummy test that at least signals that something is missing if one runs the
+ * unit test executable itself.
+ */
+TEST(DISABLED_AnalysisDataCommonTest, GenericTests)
+{
+    ADD_FAILURE()
+    << "Tests for generic AnalysisData functionality require support for "
+    << "Google Test typed tests, which was not available when the tests "
+    << "were compiled.";
+}
+
+#endif
+
 } // namespace