Rename newtestsuite to testsuite
[dyninst.git] / testsuite / src / dyninst / snip_change_shlib_var_mutatee.c
1 #include "mutatee_util.h"
2
3 /* Global variables accessed by the mutator.  These must have globally unique
4  * names.
5  */
6
7 /* Internally used function prototypes.  These should be declared with the
8  * keyword static so they don't interfere with other mutatees in the group.
9  */
10
11 /* Global variables used internally by the mutatee.  These should be declared
12  * with the keyword static so they don't interfere with other mutatees in the
13  * group.
14  */
15
16 static volatile int _unused; /* move decl here to dump compiler warning - jkh */
17
18 static volatile int gv_scsv1 = 0;
19
20 int scsv1(int x)
21 {
22         return 8 * x;
23 }
24
25 int snip_change_shlib_var_mutatee()
26 {
27         /*  mutator instruments scsv1 entry and exit to (1) modify a global variable
28        in a shared library (libtestB), and (2) to call a function in that library
29        that returns 1 if the change was successful and 0 otherwise.  The result
30        of this function call is put in gv_scsv1; */
31
32         int dont_care = 0;
33         dont_care = scsv1(5);
34
35         if (1 != gv_scsv1)
36         {
37       logerror("Failed snip_change_shlib_var test\n");
38           return -1;
39         }
40
41         logerror("Passed snip_change_shlib_var test\n");
42         test_passes(testname);
43
44         return 0;
45 }
46