Skip to content

Commit 6928cb7

Browse files
committed
Updates to C++ generation so works properly with cppunit again
1 parent 72a02ec commit 6928cb7

59 files changed

Lines changed: 6055 additions & 17 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,15 @@ directory.
482482

483483
Both scripts will create a `java-report.txt` file within `target/ep-firstVersion/`.
484484

485+
## Compiling C++ and running test cases with CPPUnit test
486+
487+
The C++ code uses [Cpputest](https://cpputest.github.io/) for testing. The `dependencies` folder contains
488+
a snapshot of the includes and compiled libraries for use on linux. Should these files prove to not be useful
489+
to you, then retrieve the latest Cpputest from their [github repository](https://cpputest.github.io/).
490+
491+
On linux, execute the `evaluate_cp.sh` script within its current directory and it will create
492+
a `cpp-report.txt` file within `target/ep-firstVersion`
493+
485494
# References
486495

487496
1. Wadler, Philip, [Email to to Java Genericity Mailing List](http://homepages.inf.ed.ac.uk/wadler/papers/expression/expression.txt)
1.89 MB
Binary file not shown.
1.64 MB
Binary file not shown.
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
/*
2+
* Copyright (c) 2007, Michael Feathers, James Grenning and Bas Vodde
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
* * Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* * Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
* * Neither the name of the <organization> nor the
13+
* names of its contributors may be used to endorse or promote products
14+
* derived from this software without specific prior written permission.
15+
*
16+
* THIS SOFTWARE IS PROVIDED BY THE EARLIER MENTIONED AUTHORS ``AS IS'' AND ANY
17+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19+
* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
20+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26+
*/
27+
28+
#ifndef D_CommandLineArguments_H
29+
#define D_CommandLineArguments_H
30+
31+
#include "SimpleString.h"
32+
#include "TestOutput.h"
33+
#include "TestFilter.h"
34+
35+
class TestPlugin;
36+
37+
class CommandLineArguments
38+
{
39+
public:
40+
explicit CommandLineArguments(int ac, const char *const *av);
41+
virtual ~CommandLineArguments();
42+
43+
bool parse(TestPlugin* plugin);
44+
bool isVerbose() const;
45+
bool isColor() const;
46+
bool isListingTestGroupNames() const;
47+
bool isListingTestGroupAndCaseNames() const;
48+
bool isRunIgnored() const;
49+
int getRepeatCount() const;
50+
const TestFilter* getGroupFilters() const;
51+
const TestFilter* getNameFilters() const;
52+
bool isJUnitOutput() const;
53+
bool isEclipseOutput() const;
54+
bool isTeamCityOutput() const;
55+
bool runTestsInSeperateProcess() const;
56+
const SimpleString& getPackageName() const;
57+
const char* usage() const;
58+
59+
private:
60+
61+
enum OutputType
62+
{
63+
OUTPUT_ECLIPSE, OUTPUT_JUNIT, OUTPUT_TEAMCITY
64+
};
65+
int ac_;
66+
const char *const *av_;
67+
68+
bool verbose_;
69+
bool color_;
70+
bool runTestsAsSeperateProcess_;
71+
bool listTestGroupNames_;
72+
bool listTestGroupAndCaseNames_;
73+
bool runIgnored_;
74+
int repeat_;
75+
TestFilter* groupFilters_;
76+
TestFilter* nameFilters_;
77+
OutputType outputType_;
78+
SimpleString packageName_;
79+
80+
SimpleString getParameterField(int ac, const char *const *av, int& i, const SimpleString& parameterName);
81+
void SetRepeatCount(int ac, const char *const *av, int& index);
82+
void AddGroupFilter(int ac, const char *const *av, int& index);
83+
void AddStrictGroupFilter(int ac, const char *const *av, int& index);
84+
void AddExcludeGroupFilter(int ac, const char *const *av, int& index);
85+
void AddExcludeStrictGroupFilter(int ac, const char *const *av, int& index);
86+
void AddNameFilter(int ac, const char *const *av, int& index);
87+
void AddStrictNameFilter(int ac, const char *const *av, int& index);
88+
void AddExcludeNameFilter(int ac, const char *const *av, int& index);
89+
void AddExcludeStrictNameFilter(int ac, const char *const *av, int& index);
90+
void AddTestToRunBasedOnVerboseOutput(int ac, const char *const *av, int& index, const char* parameterName);
91+
bool SetOutputType(int ac, const char *const *av, int& index);
92+
void SetPackageName(int ac, const char *const *av, int& index);
93+
94+
CommandLineArguments(const CommandLineArguments&);
95+
CommandLineArguments& operator=(const CommandLineArguments&);
96+
97+
};
98+
99+
#endif
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
/*
2+
* Copyright (c) 2007, Michael Feathers, James Grenning and Bas Vodde
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
* * Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* * Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
* * Neither the name of the <organization> nor the
13+
* names of its contributors may be used to endorse or promote products
14+
* derived from this software without specific prior written permission.
15+
*
16+
* THIS SOFTWARE IS PROVIDED BY THE EARLIER MENTIONED AUTHORS ``AS IS'' AND ANY
17+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19+
* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
20+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26+
*/
27+
28+
#ifndef D_CommandLineTestRunner_H
29+
#define D_CommandLineTestRunner_H
30+
31+
#include "TestHarness.h"
32+
#include "TestOutput.h"
33+
#include "CommandLineArguments.h"
34+
#include "TestFilter.h"
35+
36+
class TestRegistry;
37+
38+
#define DEF_PLUGIN_MEM_LEAK "MemoryLeakPlugin"
39+
#define DEF_PLUGIN_SET_POINTER "SetPointerPlugin"
40+
41+
class CommandLineTestRunner
42+
{
43+
public:
44+
static int RunAllTests(int ac, const char *const *av);
45+
static int RunAllTests(int ac, char** av);
46+
47+
CommandLineTestRunner(int ac, const char *const *av, TestRegistry* registry);
48+
virtual ~CommandLineTestRunner();
49+
50+
int runAllTestsMain();
51+
52+
protected:
53+
virtual TestOutput* createTeamCityOutput();
54+
virtual TestOutput* createJUnitOutput(const SimpleString& packageName);
55+
virtual TestOutput* createConsoleOutput();
56+
virtual TestOutput* createCompositeOutput(TestOutput* outputOne, TestOutput* outputTwo);
57+
58+
TestOutput* output_;
59+
private:
60+
CommandLineArguments* arguments_;
61+
TestRegistry* registry_;
62+
63+
bool parseArguments(TestPlugin*);
64+
int runAllTests();
65+
void initializeTestRun();
66+
};
67+
68+
#endif

0 commit comments

Comments
 (0)