示例#1
0
TEST(UnitTestDemangle, UnitTest)
{
#if defined(__PGI)
    {
        std::string linux_name("ThisIsJunk");
        std::string demangled_name = stk::demangle(linux_name.c_str());
        ASSERT_EQ(linux_name, demangled_name);
    }

    {
        std::string linux_name("bool ()");
        std::string demangled_name = stk::demangle(typeid(utest_demangle).name());
        ASSERT_EQ(linux_name, demangled_name);
    }

    {
        typedef std::vector<double> DoubleVector;

        DoubleVector double_vector;

        std::string linux_name("std::vector<double, std::allocator<double>>");
        std::string demangled_name = stk::demangle(typeid(double_vector).name());
        ASSERT_EQ(linux_name, demangled_name);
    }

#elif defined(__sun)
    {
        std::string linux_name("ThisIsJunk");
        std::string demangled_name = stk::demangle(linux_name.c_str());
        ASSERT_EQ(linux_name, demangled_name);
    }

    {
        std::string linux_name("bool()");
        std::string demangled_name = stk::demangle(typeid(utest_demangle).name());
        ASSERT_EQ(linux_name, demangled_name);
    }

    {
        typedef std::vector<double> DoubleVector;

        DoubleVector double_vector;

        std::string linux_name("std::vector<double, std::allocator<double>>");
        std::string demangled_name = stk::demangle(typeid(double_vector).name());
        ASSERT_EQ(linux_name, demangled_name);
    }

#elif defined(__xlC__)
    {
        std::string linux_name("ThisIsJunk");
        std::string demangled_name = stk::demangle(linux_name.c_str());
//    ASSERT_EQ((linux_name == demangled_name), true);
    }

    {
        std::string linux_name("bool ()()");
        std::string demangled_name = stk::demangle(typeid(utest_demangle).name());
//    ASSERT_EQ(linux_name, demangled_name);
    }

    {
        typedef std::vector<double> DoubleVector;

        DoubleVector double_vector;

        std::string linux_name("std::vector<double, std::allocator<double> >");
        std::string demangled_name = stk::demangle(typeid(double_vector).name());
//    ASSERT_EQ((linux_name == demangled_name), true);
    }
#elif defined(__linux__)
    {
        std::string linux_name("ThisIsJunk");
        std::string demangled_name = sierra::demangle(linux_name.c_str());
        ASSERT_EQ((linux_name == demangled_name), true);
    }

    {
#if (__GNUC_MINOR__ > 5) || defined(__clang__)
        std::string linux_name("bool ()");
#else
        std::string linux_name("bool ()()");
#endif
        std::string demangled_name = sierra::demangle(typeid(utest_demangle).name());
        ASSERT_EQ(linux_name, demangled_name);
    }

    {
        typedef std::vector<double> DoubleVector;

        DoubleVector double_vector;

#ifdef _GLIBCXX_DEBUG
        std::string linux_name("__gnu_debug_def::vector<double, std::allocator<double> >");
#else
        std::string linux_name("std::vector<double, std::allocator<double> >");
#endif
        std::string demangled_name = sierra::demangle(typeid(double_vector).name());
        ASSERT_EQ((linux_name == demangled_name), true);
    }
#endif
}
示例#2
0
void
UnitTestDemangle::testUnit()
{
#if defined(__PGI)
  {
    std::string linux_name("ThisIsJunk");
    std::string demangled_name = stk::demangle(linux_name.c_str());
    CPPUNIT_ASSERT_EQUAL(linux_name, demangled_name);
  }

  {
    std::string linux_name("bool ()");
    std::string demangled_name = stk::demangle(typeid(utest_demangle).name());
    CPPUNIT_ASSERT_EQUAL(linux_name, demangled_name);
  }

  {
    typedef std::vector<double> DoubleVector;

    DoubleVector double_vector;

    std::string linux_name("std::vector<double, std::allocator<double>>");
    std::string demangled_name = stk::demangle(typeid(double_vector).name());
    CPPUNIT_ASSERT_EQUAL(linux_name, demangled_name);
  }

#elif defined(__sun)
  {
    std::string linux_name("ThisIsJunk");
    std::string demangled_name = stk::demangle(linux_name.c_str());
    CPPUNIT_ASSERT_EQUAL(linux_name, demangled_name);
  }

  {
    std::string linux_name("bool()");
    std::string demangled_name = stk::demangle(typeid(utest_demangle).name());
    CPPUNIT_ASSERT_EQUAL(linux_name, demangled_name);
  }

  {
    typedef std::vector<double> DoubleVector;

    DoubleVector double_vector;

    std::string linux_name("std::vector<double, std::allocator<double>>");
    std::string demangled_name = stk::demangle(typeid(double_vector).name());
    CPPUNIT_ASSERT_EQUAL(linux_name, demangled_name);
  }

#elif defined(__linux__)
  {
    std::string linux_name("ThisIsJunk");
    std::string demangled_name = stk::demangle(linux_name.c_str());
    CPPUNIT_ASSERT_EQUAL(linux_name, demangled_name);
  }

  {
    std::string linux_name("bool ()()");
    std::string demangled_name = stk::demangle(typeid(utest_demangle).name());
    CPPUNIT_ASSERT_EQUAL(linux_name, demangled_name);
  }

  {
    typedef std::vector<double> DoubleVector;

    DoubleVector double_vector;

    std::string linux_name("std::vector<double, std::allocator<double> >");
    std::string demangled_name = stk::demangle(typeid(double_vector).name());
    CPPUNIT_ASSERT_EQUAL(linux_name, demangled_name);
  }
#endif
}