Update copyright to LGPL on all files
[dyninst.git] / testsuite / src / dyninst / test1_19_mutatee.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 #include "mutatee_util.h"
32
33 /* Externally accessed function prototypes.  These must have globally unique
34  * names.  I suggest following the pattern <testname>_<function>
35  */
36
37 void test1_19_call1();
38 void test1_19_call2();
39
40 /* Global variables accessed by the mutator.  These must have globally unique
41  * names.
42  */
43
44 /* Internally used function prototypes.  These should be declared with the
45  * keyword static so they don't interfere with other mutatees in the group.
46  */
47
48 /* Global variables used internally by the mutatee.  These should be declared
49  * with the keyword static so they don't interfere with other mutatees in the
50  * group.
51  */
52
53 static int globalVariable19_1 = (int)0xdeadbeef;
54 static int globalVariable19_2 = (int)0xdeadbeef;
55
56 #define MAGIC19_1 1900100
57 #define MAGIC19_2 1900200
58
59 /* Function definitions follow */
60
61 /*
62  * Test #19 - oneTimeCode
63  */
64 int test1_19_mutatee() {
65     int retval = 0;
66
67     stop_process_();
68
69     if (globalVariable19_1 != MAGIC19_1) {
70         logerror("**Failed test #19 (oneTimeCode)\n");
71         logerror("    globalVariable19_1 contained %d, not %d as expected\n",
72                  globalVariable19_1, MAGIC19_1);
73         retval = -1; /* Test failed */
74     }
75
76     stop_process_();
77
78     if (globalVariable19_2 == MAGIC19_2) {
79         if (0 == retval) {
80           logerror("Passed test #19 (oneTimeCode)\n");
81           test_passes(testname);
82           retval = 0; /* Test passed */
83         }
84     } else {
85         logerror("**Failed test #19 (oneTimeCode)\n");
86         logerror("    globalVariable19_2 contained %d, not %d as expected\n",
87                  globalVariable19_2, MAGIC19_2);
88         retval = -1; /* Test failed */
89     }
90     return retval;
91 }
92
93 void test1_19_call1() {
94     globalVariable19_1 = MAGIC19_1;
95 }
96
97 void test1_19_call2() {
98     globalVariable19_2 = MAGIC19_2;
99 }