Remove old testsuite
[dyninst.git] / testsuite / src / dyninst / test1_28_mutatee.c
1 #include "mutatee_util.h"
2
3 /* Externally accessed function prototypes.  These must have globally unique
4  * names.  I suggest following the pattern <testname>_<function>
5  */
6
7 void test1_28_call1();
8
9 /* Global variables accessed by the mutator.  These must have globally unique
10  * names.
11  */
12
13 struct test1_28_struct1 {
14     int field1;
15     int field2;
16 };
17
18 struct test1_28_struct2 {
19     int field1;
20     int field2;
21     int field3[10];
22     struct test1_28_struct1 field4;
23 };
24
25 char test1_28_globalVariable1[sizeof(struct test1_28_struct2)];
26 int test1_28_globalVariable2 = 28000000;
27 int test1_28_globalVariable3 = 28000000;
28 int test1_28_globalVariable4 = 28000000;
29 int test1_28_globalVariable5 = 28000000;
30 int test1_28_globalVariable6 = 28000000;
31 int test1_28_globalVariable7 = 28000000;
32 int test1_28_globalVariable8 = 28000000;        
33
34 /* Internally used function prototypes.  These should be declared with the
35  * keyword static so they don't interfere with other mutatees in the group.
36  */
37
38 static void verifyScalarValue28(const char *name, int a, int value);
39
40 /* Global variables used internally by the mutatee.  These should be declared
41  * with the keyword static so they don't interfere with other mutatees in the
42  * group.
43  */
44
45 static int test_failed = FALSE;
46
47 /* Function definitions follow */
48
49 /*
50  * Test #28 - field operators
51  */
52 struct test1_28_struct2 *temp;
53
54 int test1_28_mutatee() {
55     int retval;
56     int i;
57
58     temp = (struct test1_28_struct2 *) test1_28_globalVariable1;
59
60     temp->field1 = 28001001;
61     temp->field2 = 28001002;
62     for (i=0; i < 10; i++) temp->field3[i] = 28001003 + i;
63     temp->field4.field1 = 28000013;
64     temp->field4.field2 = 28000014;
65
66     test1_28_call1();
67
68     verifyScalarValue28("test1_28_globalVariable2", test1_28_globalVariable2, 28001001);
69     verifyScalarValue28("test1_28_globalVariable3", test1_28_globalVariable3, 28001002);
70     verifyScalarValue28("test1_28_globalVariable4", test1_28_globalVariable4, 28001003);
71     verifyScalarValue28("test1_28_globalVariable5", test1_28_globalVariable5, 28001003+5);
72     verifyScalarValue28("test1_28_globalVariable6", test1_28_globalVariable6, 28000013);
73     verifyScalarValue28("test1_28_globalVariable7", test1_28_globalVariable7, 28000014);
74
75     if (!test_failed) {
76       logerror("Passed test #28 (user defined fields)\n");
77       test_passes(testname);
78       retval = 0; /* Test passed */
79     } else {
80       retval = -1; /* Test failed */
81     }
82     return retval;
83 }
84
85 void verifyScalarValue28(const char *name, int a, int value)
86 {
87   if (!verifyScalarValue(name, a, value, "test1_28", "user defined fields")) {
88     test_failed = TRUE;
89   }
90 }
91
92 void test1_28_call1()
93 {
94     int i = 42;
95
96     int j = i;
97
98     for (j=0; j < 400; j++);
99 }