1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
|
set test "register_aarch64"
set testpath "$srcdir/$subdir"
if {! [installtest_p]} { untested $test; return }
if {! [uretprobes_p]} { untested $test; return }
set arch [exec uname -m]
if {$arch ne "aarch64"} { untested $test; return }
# --- TEST 1 ---
set subtest1 "TEST 1: 64-bit x0"
set res [target_compile ${testpath}/${test}_1.c ./a.out executable \
"additional_flags=-O additional_flags=-g additional_flags=-O0"]
if {$res ne ""} {
verbose "target_compile failed: $res" 2
fail "$test: $subtest1: unable to compile ${test}_1.c"
} else {
foreach runtime [get_runtime_list] {
if {$runtime eq ""} {
set runtime "kernel"
}
set test_name "$test: $subtest1 ($runtime)"
set cmd "stap --runtime=$runtime -c ./a.out '$srcdir/$subdir/${test}_1.stp'"
set exit_code [run_cmd_2way $cmd out stderr]
set exp_out "x0 = 0x56781234beefdead
u x0 = 0x56781234beefdead
w0 = 0xffffffffbeefdead
u w0 = 0xbeefdead
"
is "${test_name}: stdout" $out $exp_out
is "${test_name}: exit code" $exit_code 0
if {$stderr ne ""} {
send_log "stderr:\n$stderr"
}
}
}
# --- TEST 2 ---
set subtest2 "TEST 2: 64-bit x1"
set res [target_compile ${testpath}/${test}_2.c ./a.out executable \
"additional_flags=-O additional_flags=-g additional_flags=-O0"]
if {$res ne ""} {
verbose "target_compile failed: $res" 2
fail "$test: $subtest2: unable to compile ${test}_2.c"
} else {
foreach runtime [get_runtime_list] {
if {$runtime eq ""} {
set runtime "kernel"
}
set test_name "$test: $subtest2 ($runtime)"
set cmd "stap --runtime=$runtime -c ./a.out '$srcdir/$subdir/${test}_2.stp'"
set exit_code [run_cmd_2way $cmd out stderr]
set exp_out "x1 = 0x56781234beefdead
u x1 = 0x56781234beefdead
w1 = 0xffffffffbeefdead
u w1 = 0xbeefdead
"
is "${test_name}: stdout" $out $exp_out
is "${test_name}: exit code" $exit_code 0
if {$stderr ne ""} {
send_log "stderr:\n$stderr"
}
}
}
# --- TEST 3 ---
set subtest3 "TEST 3: 64-bit x2"
set res [target_compile ${testpath}/${test}_3.c ./a.out executable \
"additional_flags=-O additional_flags=-g additional_flags=-O0"]
if {$res ne ""} {
verbose "target_compile failed: $res" 2
fail "$test: $subtest3: unable to compile ${test}_3.c"
} else {
foreach runtime [get_runtime_list] {
if {$runtime eq ""} {
set runtime "kernel"
}
set test_name "$test: $subtest3 ($runtime)"
set cmd "stap --runtime=$runtime -c ./a.out '$srcdir/$subdir/${test}_3.stp'"
set exit_code [run_cmd_2way $cmd out stderr]
set exp_out "x2 = 0x56781234beefdead
u x2 = 0x56781234beefdead
w2 = 0xffffffffbeefdead
u w2 = 0xbeefdead
"
is "${test_name}: stdout" $out $exp_out
is "${test_name}: exit code" $exit_code 0
if {$stderr ne ""} {
send_log "stderr:\n$stderr"
}
}
}
# --- TEST 4 ---
set subtest4 "TEST 4: 64-bit x3"
set res [target_compile ${testpath}/${test}_4.c ./a.out executable \
"additional_flags=-O additional_flags=-g additional_flags=-O0"]
if {$res ne ""} {
verbose "target_compile failed: $res" 2
fail "$test: $subtest4: unable to compile ${test}_4.c"
} else {
foreach runtime [get_runtime_list] {
if {$runtime eq ""} {
set runtime "kernel"
}
set test_name "$test: $subtest4 ($runtime)"
set cmd "stap --runtime=$runtime -c ./a.out '$srcdir/$subdir/${test}_4.stp'"
set exit_code [run_cmd_2way $cmd out stderr]
set exp_out "x3 = 0x56781234beefdead
u x3 = 0x56781234beefdead
w3 = 0xffffffffbeefdead
u w3 = 0xbeefdead
"
is "${test_name}: stdout" $out $exp_out
is "${test_name}: exit code" $exit_code 0
if {$stderr ne ""} {
send_log "stderr:\n$stderr"
}
}
}
# --- TEST 5 ---
set subtest5 "TEST 5: 64-bit x29"
set res [target_compile ${testpath}/${test}_5.c ./a.out executable \
"additional_flags=-O additional_flags=-g additional_flags=-O0"]
if {$res ne ""} {
verbose "target_compile failed: $res" 2
fail "$test: $subtest5: unable to compile ${test}_5.c"
} else {
foreach runtime [get_runtime_list] {
if {$runtime eq ""} {
set runtime "kernel"
}
set test_name "$test: $subtest5 ($runtime)"
set cmd "stap --runtime=$runtime -c ./a.out '$srcdir/$subdir/${test}_5.stp'"
set exit_code [run_cmd_2way $cmd out stderr]
set exp_out "x29 = 0x56781234beefdead
u x29 = 0x56781234beefdead
w29 = 0xffffffffbeefdead
u w29 = 0xbeefdead
"
is "${test_name}: stdout" $out $exp_out
is "${test_name}: exit code" $exit_code 0
if {$stderr ne ""} {
send_log "stderr:\n$stderr"
}
}
}
|