More WIP
[dyninst.git] / testsuite / src / solo_mutatee_boilerplate.h
1 /*
2  * See the dyninst/COPYRIGHT file for copyright information.
3  * 
4  * We provide the Paradyn Tools (below described as "Paradyn")
5  * on an AS IS basis, and do not warrant its validity or performance.
6  * We reserve the right to update, modify, or discontinue this
7  * software at any time.  We shall have no obligation to supply such
8  * updates or modifications or any other form of support to you.
9  * 
10  * By your use of Paradyn, you understand and agree that we (or any
11  * other person or entity with proprietary rights in Paradyn) are
12  * under no obligation to provide either maintenance services,
13  * update services, notices of latent defects, or correction of
14  * defects for Paradyn.
15  * 
16  * This library is free software; you can redistribute it and/or
17  * modify it under the terms of the GNU Lesser General Public
18  * License as published by the Free Software Foundation; either
19  * version 2.1 of the License, or (at your option) any later version.
20  * 
21  * This library is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
24  * Lesser General Public License for more details.
25  * 
26  * You should have received a copy of the GNU Lesser General Public
27  * License along with this library; if not, write to the Free Software
28  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
29  */
30
31 /*
32  * Start of test_skeleton_solo
33  */
34
35 /*
36  * mutatee_utils.h and solo_mutatee.h are required for all solo test mutatees
37  */
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 #include "mutatee_util.h"
43 #include "solo_mutatee.h"
44
45 /*
46  * These macros are needed for when the skeleton is filled in using #defines
47  * as the makefiles are being generated (two macros are defined to force
48  * macro expansion)
49  */
50 #define _CONCAT(A, B)   A ## B
51 #define CONCAT(A, B)    _CONCAT(A, B)
52 #define _QUOTE(S)               #S
53 #define QUOTE(S)                _QUOTE(S)
54
55 /* This is kind of a hack:  test4_3 needs to have argc and argv available.  So
56  * I'm making them global variables in the mutatee_driver and adding extern
57  * references to them here.
58  */
59 extern int gargc;
60 extern char **gargv;
61
62 /* The main function for running the mutatee part of this test.
63  * Should follow the pattern:
64  * int <testname>_mutateeTest()
65  */
66
67 int CONCAT(TEST_NAME, _mutatee());
68
69 /* Also declare a global that holds the name of the test */
70
71 static const char *testname = QUOTE(TEST_NAME);
72
73 /* The variable groupable flags whether or not this test can be run as part
74  * of a group mutatee.  The mutatee driver uses this flag to tell whether it
75  * is supposed to print the results of the test or not.
76  */
77 static int groupable_mutatee = GROUPABLE;
78
79 const char * CONCAT(kill_compiler_warnings_, TEST_NAME) ()
80 {
81    int foo = groupable_mutatee;
82    const char *bar = testname;
83    return (bar + foo);
84 }
85
86 /* The macro SOLO_MUTATEE(<testname>) (from solo_mutatee.h) defines a few
87  * variables that are required by the mutatee driver.  This macro needs to be
88  * called *after* the declaration of the main mutatee function.
89  */
90
91 #if (GROUPABLE==0)
92 /* SOLO_MUTATEE(@<testname>@); */
93 /* Why am I using a macro here?  I'm just going to include the body of the
94  * macro directly.
95  */
96 mutatee_call_info_t mutatee_funcs[] = {
97    {(char *) QUOTE(TEST_NAME), CONCAT(TEST_NAME, _mutatee), SOLO, (char *) "@<label>@"}
98 };
99 int runTest[1];
100 int passedTest[1];
101 int max_tests = 1;
102 #endif
103
104 #ifdef __cplusplus
105 }
106 #endif
107
108 /* ******************************************************************** */
109 /* *** Everything above this line should be automatically generated *** */
110 /* ******************************************************************** */
111 #include QUOTE(MUTATEE_SRC)