aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/tools/test_get_len.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/arch/x86/tools/test_get_len.c b/arch/x86/tools/test_get_len.c
index af75e07217ba..d8214dc03fa7 100644
--- a/arch/x86/tools/test_get_len.c
+++ b/arch/x86/tools/test_get_len.c
@@ -114,6 +114,7 @@ int main(int argc, char **argv)
114 unsigned char insn_buf[16]; 114 unsigned char insn_buf[16];
115 struct insn insn; 115 struct insn insn;
116 int insns = 0, c; 116 int insns = 0, c;
117 int warnings = 0;
117 118
118 parse_args(argc, argv); 119 parse_args(argc, argv);
119 120
@@ -151,18 +152,22 @@ int main(int argc, char **argv)
151 insn_init(&insn, insn_buf, x86_64); 152 insn_init(&insn, insn_buf, x86_64);
152 insn_get_length(&insn); 153 insn_get_length(&insn);
153 if (insn.length != nb) { 154 if (insn.length != nb) {
154 fprintf(stderr, "Error: %s found a difference at %s\n", 155 warnings++;
156 fprintf(stderr, "Warning: %s found difference at %s\n",
155 prog, sym); 157 prog, sym);
156 fprintf(stderr, "Error: %s", line); 158 fprintf(stderr, "Warning: %s", line);
157 fprintf(stderr, "Error: objdump says %d bytes, but " 159 fprintf(stderr, "Warning: objdump says %d bytes, but "
158 "insn_get_length() says %d\n", nb, 160 "insn_get_length() says %d\n", nb,
159 insn.length); 161 insn.length);
160 if (verbose) 162 if (verbose)
161 dump_insn(stderr, &insn); 163 dump_insn(stderr, &insn);
162 exit(2);
163 } 164 }
164 } 165 }
165 fprintf(stderr, "Succeed: decoded and checked %d instructions\n", 166 if (warnings)
166 insns); 167 fprintf(stderr, "Warning: decoded and checked %d"
168 " instructions with %d warnings\n", insns, warnings);
169 else
170 fprintf(stderr, "Succeed: decoded and checked %d"
171 " instructions\n", insns);
167 return 0; 172 return 0;
168} 173}