From e0f539a068f277e7a9ac806b2d183dcde54f7c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Micha=C3=ABl=20Celerier?= Date: Sun, 16 Jan 2022 18:00:07 +0100 Subject: [PATCH] Debugging helpers: support for boost::small_vector Change-Id: Ided74fa2ebf3e4ae5258e22064bb105bd45710ac Reviewed-by: hjk Reviewed-by: Ihor Dutchak Reviewed-by: --- share/qtcreator/debugger/boosttypes.py | 8 ++++++++ tests/auto/debugger/tst_dumpers.cpp | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/share/qtcreator/debugger/boosttypes.py b/share/qtcreator/debugger/boosttypes.py index fa4d2eeb39d..c48f64167fa 100644 --- a/share/qtcreator/debugger/boosttypes.py +++ b/share/qtcreator/debugger/boosttypes.py @@ -116,6 +116,14 @@ def qdump__boost__container__static_vector(d, value): qdump__boost__container__vector(d, value) +def qform__boost__container__small_vector(): + return [DisplayFormat.ArrayPlot] + + +def qdump__boost__container__small_vector(d, value): + qdump__boost__container__vector(d, value) + + def qdump__boost__gregorian__date(d, value): d.putValue(value.integer(), "juliandate") diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 8aa1120c5dd..3b2342e97e3 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -6752,6 +6752,29 @@ void tst_Dumpers::dumper_data() + Check("v.2.second", FloatValue("65"), "double"); + QTest::newRow("BoostSmallVector") + << Data("#include \n", + "typedef std::pair p;\n" + "boost::container::small_vector v0;\n" + "boost::container::small_vector v2;\n" + "v2.push_back(p(13, 61));\n" + "v2.push_back(p(14, 64));\n" + "boost::container::small_vector v4;\n" + "v4.push_back(p(13, 61));\n" + "v4.push_back(p(14, 64));\n" + "v4.push_back(p(15, 65));\n" + "v4.push_back(p(16, 66));\n", + "&v0, &v2, &v4") + + BoostProfile() + + Check("v0", "<0 items>", TypePattern("boost::container::small_vector.*>")) + + Check("v2", "<2 items>", TypePattern("boost::container::small_vector.*>")) + + Check("v2.0.first", "13", "int") + + Check("v2.1.second", FloatValue("64"), "double") + + Check("v4", "<4 items>", TypePattern("boost::container::small_vector.*>")) + + Check("v4.1.first", "14", "int") + + Check("v4.3.second", FloatValue("66"), "double"); + + QTest::newRow("BoostUnorderedSet") << Data("#include \n" "#include \n"