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