From f1e8e737c97d4ae83095cc45d1b2920b51337004 Mon Sep 17 00:00:00 2001 From: Leandro Melo Date: Mon, 4 Oct 2010 17:07:03 +0200 Subject: [PATCH] Tests: Add project with suggestions for testing the C++ tools. --- .../cplusplus-tools/cplusplus-tools.pro | 24 +++ tests/manual/cplusplus-tools/detail/header.h | 30 +++ .../manual/cplusplus-tools/detail/source.cpp | 19 ++ tests/manual/cplusplus-tools/dummy.cpp | 32 ++++ tests/manual/cplusplus-tools/dummy.h | 50 +++++ tests/manual/cplusplus-tools/main.cpp | 175 ++++++++++++++++++ 6 files changed, 330 insertions(+) create mode 100644 tests/manual/cplusplus-tools/cplusplus-tools.pro create mode 100644 tests/manual/cplusplus-tools/detail/header.h create mode 100644 tests/manual/cplusplus-tools/detail/source.cpp create mode 100644 tests/manual/cplusplus-tools/dummy.cpp create mode 100644 tests/manual/cplusplus-tools/dummy.h create mode 100644 tests/manual/cplusplus-tools/main.cpp diff --git a/tests/manual/cplusplus-tools/cplusplus-tools.pro b/tests/manual/cplusplus-tools/cplusplus-tools.pro new file mode 100644 index 00000000000..5645f72ff0c --- /dev/null +++ b/tests/manual/cplusplus-tools/cplusplus-tools.pro @@ -0,0 +1,24 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2010-10-01T13:24:32 +# +#------------------------------------------------- + +QT += core + +QT -= gui + +TARGET = cplusplus-tools +CONFIG += console +CONFIG -= app_bundle + +TEMPLATE = app + + +SOURCES += main.cpp \ + dummy.cpp \ + detail/source.cpp + +HEADERS += \ + dummy.h \ + detail/header.h diff --git a/tests/manual/cplusplus-tools/detail/header.h b/tests/manual/cplusplus-tools/detail/header.h new file mode 100644 index 00000000000..2bce9d04bc4 --- /dev/null +++ b/tests/manual/cplusplus-tools/detail/header.h @@ -0,0 +1,30 @@ +#ifndef HEADER_H +#define HEADER_H + +#include + +QT_BEGIN_NAMESPACE +class QString; +QT_END_NAMESPACE + +struct A {}; +struct B : virtual A {}; +struct C : virtual A {}; +struct D : B, C {}; + +inline int freefunc1() +{ return 1; } + +int freefunc2(int); +int freefunc2(double); +int freefunc2(const QString &); + +template +void freefunc3(T) +{} + +template +void freefunc3(T, int) +{} + +#endif //HEADER_H diff --git a/tests/manual/cplusplus-tools/detail/source.cpp b/tests/manual/cplusplus-tools/detail/source.cpp new file mode 100644 index 00000000000..81af534013d --- /dev/null +++ b/tests/manual/cplusplus-tools/detail/source.cpp @@ -0,0 +1,19 @@ +#include "header.h" +#include "dummy.h" + +#include + +int xi = 10; + +int freefunc2(int a) { return a; } + +int freefunc2(double) +{ return 1; } + +int freefunc2(const QString &) +{ return 1; } + +void here() { + test::Dummy d; + d; +} diff --git a/tests/manual/cplusplus-tools/dummy.cpp b/tests/manual/cplusplus-tools/dummy.cpp new file mode 100644 index 00000000000..4700050d44c --- /dev/null +++ b/tests/manual/cplusplus-tools/dummy.cpp @@ -0,0 +1,32 @@ +#include "dummy.h" +#include "detail/header.h" + +using namespace test; + +extern int xi; + +Dummy::Dummy() +{} + +Dummy::Dummy(int) +{ + xi = 0; + freefunc2(1.0); +} + +void Dummy::bla(int) +{} + +void Dummy::bla(const QString &) +{} + +void Dummy::bla(const QString &) const +{} + +void Dummy::bla(int, const QString &) const +{} + +void Dummy::sfunc() +{} + +const double Dummy::PI = 3.14; diff --git a/tests/manual/cplusplus-tools/dummy.h b/tests/manual/cplusplus-tools/dummy.h new file mode 100644 index 00000000000..0ae7756ad4d --- /dev/null +++ b/tests/manual/cplusplus-tools/dummy.h @@ -0,0 +1,50 @@ +#ifndef DUMMY_H +#define DUMMY_H + +#include + +namespace test { + +class Dummy +{ +public: + Dummy(); + Dummy(int a); + + typedef int INT; + + enum Values { + v1, + v2, + v3 + }; + + static const int ONE = 1; + static const double PI; + + static void sfunc(); + + struct Internal + { + QString one; + typedef double DOUBLE; + }; + + void bla(int); + void bla(const QString &); + void bla(const QString &) const; + void bla(int, const QString &) const; + + void foo(int) const {} + void foo(const QString &) const {} + + QString one; +}; + +class ChildDummy : public Dummy {}; + +class GrandChildDummy : public Dummy {}; + +} // namespace test + +#endif // DUMMY_H diff --git a/tests/manual/cplusplus-tools/main.cpp b/tests/manual/cplusplus-tools/main.cpp new file mode 100644 index 00000000000..6e5948a8338 --- /dev/null +++ b/tests/manual/cplusplus-tools/main.cpp @@ -0,0 +1,175 @@ +/* + * Below are some basic test suggestions. Trying them in a larger + * project (Qt Creator, for example) is also valid. + */ + +/* + Folow includes + */ +#include +#include +#include +#include +#include +//#include +//#include +#include "dummy.h" +#include "detail/header.h" + +/* + Complete includes + */ +//#include