Rename newtestsuite to testsuite
[dyninst.git] / testsuite / src / dyninst / test_sparc_1_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 test_sparc_1_func1();
8 void test_sparc_1_call1();
9
10 /* Global variables accessed by the mutator.  These must have globally unique
11  * names.
12  */
13
14 /* Internally used function prototypes.  These should be declared with the
15  * keyword static so they don't interfere with other mutatees in the group.
16  */
17
18 static void call0();
19
20 /* Global variables used internally by the mutatee.  These should be declared
21  * with the keyword static so they don't interfere with other mutatees in the
22  * group.
23  */
24
25 static volatile int passed = 0;
26
27 /* Function definitions follow */
28
29 //
30 // force jmp %reg; nop tail code function
31 //
32 asm("           .align 8");
33 asm("           .stabs  \"test_sparc_1_func1:F(0,1)\",36,0,16,test_sparc_1_func1");
34 asm("           .global test_sparc_1_func1");
35 asm("           .type   test_sparc_1_func1,#function");
36 asm("           .text");
37 asm("test_sparc_1_func1:");
38 asm("           sethi   %hi(call0),%g1");
39 asm("           or      %g1,%lo(call0),%g1");
40 asm("           jmp     %g1");
41 asm("           nop     ");
42
43 void call0()
44 {
45 }
46
47 void test_sparc_1_call1() {
48   passed = 1;
49   logerror("\nPassed test_sparc_1\n");
50 }
51
52 int test_sparc_1_mutatee() {
53   test_sparc_1_func1();
54   if (1 == passed) {
55     test_passes(testname);
56     return 0; /* Test passed */
57   } else {
58     return -1; /* Test failed */
59   }
60 }