aboutsummaryrefslogtreecommitdiffstats
path: root/test/testFuncs1scpp.h
diff options
context:
space:
mode:
authoruser1 <user1@ubuntu>2017-04-04 04:37:21 +0000
committeruser1 <user1@ubuntu>2017-04-04 04:37:21 +0000
commitc2a4b65b3cc53cae18e526b13a2a3abcbf6bcf11 (patch)
tree3e9f394a07f44e4041a43e57e9320919bdcf1e7b /test/testFuncs1scpp.h
parentadded checks for getAsPlaceholderType() returning null (diff)
downloadmutator-c2a4b65b3cc53cae18e526b13a2a3abcbf6bcf11.tar.gz
mutator-c2a4b65b3cc53cae18e526b13a2a3abcbf6bcf11.zip
these are a version of testFunc1.c/h translated to SaferCPlusPlus for
demonstration/testing purposes
Diffstat (limited to 'test/testFuncs1scpp.h')
-rw-r--r--test/testFuncs1scpp.h193
1 files changed, 193 insertions, 0 deletions
diff --git a/test/testFuncs1scpp.h b/test/testFuncs1scpp.h
new file mode 100644
index 0000000..204f273
--- /dev/null
+++ b/test/testFuncs1scpp.h
@@ -0,0 +1,193 @@
+
+/*the first line's been intentionally left blank.*/
+/***********************************************************************************************************/
+/*defines*/
+#ifndef TEST1_H
+#define TEST1_H
+
+#define FALSE 0
+#define TRUE 1
+
+#include "msepoly.h"
+#include "mseprimitives.h"
+#include <functional>
+
+/***********************************************Global******************************************************/
+typedef mse::tdp_variant<mse::CInt, double, mse::mstd::array<char, 20>> uni;
+extern uni uni1;
+
+//extern mse::CInt eldiablo = 0;
+
+extern mse::TAnyRandomAccessIterator<mse::CInt> cccc;
+
+//extern cucu;
+mse::CInt yetanotherheadervar;
+
+double yetanotherdoubleinsideaheader;
+/***********************************************************************************************************/
+/*choose the compiler*/
+#define COMPILER GCC
+
+#define HCS12 1U
+#define MPC 2U
+#define RL78 3U
+#define GCC 4U
+#define CLANG 5U
+
+/***********************************************************************************************************/
+/*options*/
+
+/*this option sets the infinite while loop to see how your tool reacts to it.*/
+/*setting it to ON enables it. setting it to anything else disables it but go with OFF for good taste.*/
+/*setting this option to ON will practically disable the rest of the tests.*/
+#define INF_LOOP FALSE
+
+/*turn on the testing of inline functions*/
+#define INLINE FALSE
+
+/***********************************************************************************************************/
+/*the compiler's gonna be needing some sorta pragmas to handle some keywords correctly or altogether.*/
+/*you need pragmas for inlining, boolean, etc.*/
+/*if your compiler needs em, put em here.*/
+
+
+
+
+/***********************************************************************************************************/
+#if (HCS12 == COMPILER)
+#define blreplacement unsigned char
+#endif
+#if (MPC == COMPILER)
+#define blreplacement unsigned char
+#endif
+#if (RL78 == COMPILER)
+#define blreplacement unsigned char
+#endif
+#if (GCC == COMPILER)
+#define blreplacement unsigned char
+#endif
+
+/***********************************************************************************************************/
+/*all the test function prototypes are here.*/
+void testFuncStatementsinmple (void);
+void testFuncStatementComplexIf (void);
+void testFuncStatementNotCoverage (void);
+void testFuncLoopFor (void);
+void testFuncLoopWhile (void);
+void testFuncContinue (void);
+void testFuncBreak (void);
+void testFuncGoto (void);
+mse::CInt testFuncNotReturn (mse::CInt a, mse::CInt b);
+void testFuncMultiLineStatement (void);
+void testFuncMultipleStatement (void);
+void testFuncMultipleStatementNot (void);
+void testFuncCompOpti1 (void);
+void testFuncCompOpti2 (void);
+void testFuncCompOpti3 (void);
+void testFuncCompOpti4 (void);
+void testFuncStatementDecl1 (void);
+mse::CInt testFuncStatementInt1 (mse::CInt int1, mse::CInt int2);
+blreplacement testFuncStatementbool1 (blreplacement bool1 , blreplacement bool2);
+blreplacement testFuncStatementbool2 (blreplacement bool1 , blreplacement bool2);
+void testFuncStatementDecision1 (blreplacement decision1 , blreplacement decision2);
+void testFuncShortCircuit (blreplacement bool1 , blreplacement bool2);
+void testFuncMCDC1 (blreplacement decision1 , blreplacement decision2);
+#if (TRUE == INLINE)
+void testFuncMultiInstantiation (mse::CInt level);
+#endif
+void testFuncQMark (mse::CInt int1, mse::CInt int2);
+void testFuncCallBool (void);
+
+static void im_a_mlaign_func (void);
+static void im_a_benign_func (void);
+void im_a_dummy (void);
+void im_a_minion_01 (void);
+void im_a_minion_02 (void);
+static void im_a_minion_03 (void);
+
+#if (TRUE == INLINE)
+#if (MPC == COMPILER)
+inline void babeFunk (mse::CInt entry);
+#endif
+
+#if (HCS12 == COMPILER)
+void babeFunk (mse::CInt entry);
+#endif
+#endif
+
+//test3();
+double test4 (mse::CInt aa, mse::CInt bb, double cc);
+void test5(void);
+void test6(void);
+void test7(void);
+void test8(void);
+void test10(void);
+mse::CInt test13(void);
+void test15(void);
+void test17(void);
+void test19(void);
+void test20(void);
+void test21(void);
+void test22(void);
+void test23(void);
+void test24(void);
+void test25(void);
+void test26(void);
+void test27(void);
+void test28(void);
+mse::CInt test29(mse::CInt a);
+mse::CInt test31(void);
+
+void headerfund(void)
+{
+ mse::CInt a;
+ mse::CInt b;
+ mse::CInt sum;
+ sum = a + b;
+}
+
+template <typename _Ty> using nra_iter = mse::TNullableAnyRandomAccessIterator<_Ty>;
+
+void testfunc9999(void)
+{
+ mse::TNullableAnyPointer<mse::TNullableAnyPointer<mse::CInt> > p1;
+ mse::TNullableAnyPointer<mse::TNullableAnyPointer<mse::TNullableAnyPointer<mse::CInt> > > p2;
+
+ struct s
+ {
+ mse::TNullableAnyPointer<mse::CInt> sp1;
+ mse::TNullableAnyPointer<mse::TNullableAnyPointer<mse::CInt> > sp2;
+ mse::TNullableAnyPointer<mse::TNullableAnyPointer<mse::TNullableAnyPointer<mse::CInt> > > sp3;
+ };
+
+ mse::TNullableAnyPointer<struct s> ps1;
+ /*these two should not be tagged by 18.1 since they are pomse::CInters to an incomplete type. the pomse::CInter is a complete type.*/
+ mse::TNullableAnyPointer<mse::TNullableAnyPointer<struct s> > ps2;
+ mse::TNullableAnyPointer<mse::TNullableAnyPointer<mse::TNullableAnyPointer<struct s> > > ps3;
+
+ //INTPTR *const* const fedupp1;
+
+ /*
+ int ** (*pfunc1)();
+ int ** (**pfunc2)();
+ int ** (***pfunc3)();
+ int *** (**pfunc4)();
+ int ** (**pfunc5)(int**, int**);
+ int ** (**pfunc6)(int**, int***);
+ */
+ //template <typename _Ty> using nra_iter = mse::TNullableAnyRandomAccessIterator<_Ty>;
+ nra_iter<std::function<nra_iter<nra_iter<mse::CInt> >(void)> > pfunc1;
+ nra_iter<nra_iter<std::function<nra_iter<nra_iter<mse::CInt> >(void)> > > pfunc2;
+ nra_iter<nra_iter<nra_iter<std::function<nra_iter<nra_iter<mse::CInt> >(void)> > > > pfunc3;
+ nra_iter<nra_iter<std::function<nra_iter<nra_iter<nra_iter<mse::CInt> > >(void)> > > pfunc4;
+ nra_iter<nra_iter<std::function<nra_iter<nra_iter<mse::CInt> >(nra_iter<nra_iter<mse::CInt> >, nra_iter<nra_iter<mse::CInt> >)> > > pfunc5;
+ nra_iter<nra_iter<std::function<nra_iter<nra_iter<mse::CInt> >(nra_iter<nra_iter<mse::CInt> >, nra_iter<nra_iter<nra_iter<mse::CInt> > >)> > > pfunc6;
+}
+
+#if 0
+void malloc (void);
+#endif
+
+#endif
+/***********************************************************************************************************/
+/*ive been intentionally left blank. dont touch me.*/