Skip to content

Commit 0b69ad3

Browse files
committed
CHT:ARM: update tests for result types
1 parent 7471111 commit 0b69ad3

File tree

5 files changed

+36
-14
lines changed

5 files changed

+36
-14
lines changed

CodeHawk/CHT/CHB_tests/bchlibarm32_tests/tbchlibarm32/tCHBchlibarm32Assertion.ml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
(* chutil *)
3030
open CHPrettyUtil
31+
open CHTraceResult
3132

3233
(* xprlib *)
3334
open XprToPretty
@@ -37,6 +38,7 @@ open XprTypes
3738
open BCHARMTypes
3839

3940
module A = TCHAssertion
41+
module TR = CHTraceResult
4042

4143

4244
let x2s x = pretty_to_string (xpr_formatter#pr_expr x)
@@ -105,16 +107,21 @@ let equal_arm_conditional_expr
105107
let equal_instrxdata_conditionxprs
106108
?(msg="")
107109
~(expected: string)
108-
~(received: xpr_t list)
110+
~(received: xpr_t traceresult list)
109111
~(index: int)
110112
() =
113+
let xtr2s (x_r: xpr_t traceresult): string =
114+
TR.tfold
115+
~ok:x2s
116+
~error:(fun e -> String.concat "; " e)
117+
x_r in
111118
match received with
112119
| [] -> A.fail expected "empty list" msg
113120
| _ when (List.length received) > index ->
114-
A.equal_string ~msg expected (x2s (List.nth received index))
121+
A.equal_string ~msg expected (xtr2s (List.nth received index))
115122
| _ ->
116123
let receivedlen = string_of_int (List.length received) in
117-
let xprs = String.concat ", " (List.map x2s received) in
124+
let xprs = String.concat ", " (List.map xtr2s received) in
118125
A.fail
119126
expected
120127
("Index: "

CodeHawk/CHT/CHB_tests/bchlibarm32_tests/tbchlibarm32/tCHBchlibarm32Assertion.mli

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
SOFTWARE.
2727
============================================================================= *)
2828

29+
(* chutil *)
30+
open CHTraceResult
31+
2932
(* xprlib *)
3033
open XprTypes
3134

@@ -68,7 +71,7 @@ val equal_arm_conditional_expr:
6871
val equal_instrxdata_conditionxprs:
6972
?msg: string
7073
-> expected:string
71-
-> received:xpr_t list
74+
-> received:xpr_t traceresult list
7275
-> index:int
7376
-> unit
7477
-> unit

CodeHawk/CHT/CHB_tests/bchlibarm32_tests/tbchlibarm32/tCHBchlibarm32Utils.ml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@
2626
SOFTWARE.
2727
============================================================================= *)
2828

29+
(* chutil *)
30+
open CHTraceResult
31+
32+
(* xprlib *)
33+
open XprTypes
34+
2935
(* bchlib *)
3036
open BCHByteUtilities
3137
open BCHDoubleword
@@ -130,8 +136,9 @@ let thumb_function_setup
130136
end
131137

132138

133-
(* To be updated to properly deal with the xpr_t traceresult *)
134-
let get_instrxdata_xprs (faddr: doubleword_int) (iaddr: doubleword_int) =
139+
let get_instrxdata_xprs
140+
(faddr: doubleword_int)
141+
(iaddr: doubleword_int): xpr_t traceresult list =
135142
let _ = testsupport#request_instrx_data in
136143
let finfo = get_function_info faddr in
137144
let fn = get_arm_assembly_function faddr in
@@ -146,7 +153,7 @@ let get_instrxdata_xprs (faddr: doubleword_int) (iaddr: doubleword_int) =
146153
ignore (id#index_instr instr floc))) in
147154
let (_, xprs) =
148155
TR.tget_ok (testsupport#retrieve_instrx_data iaddr#to_hex_string) in
149-
List.map TR.tget_ok xprs
156+
xprs
150157

151158

152159
let get_instrxdata_tags (faddr: doubleword_int) (iaddr: doubleword_int) =

CodeHawk/CHT/CHB_tests/bchlibarm32_tests/tbchlibarm32/tCHBchlibarm32Utils.mli

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
SOFTWARE.
2727
============================================================================= *)
2828

29+
(* chutil *)
30+
open CHTraceResult
31+
2932
(* xprlib *)
3033
open XprTypes
3134

@@ -48,7 +51,8 @@ val arm_function_setup: doubleword_int -> string -> arm_assembly_function_int
4851
val thumb_function_setup: doubleword_int -> string -> arm_assembly_function_int
4952

5053

51-
val get_instrxdata_xprs: doubleword_int -> doubleword_int -> xpr_t list
54+
val get_instrxdata_xprs:
55+
doubleword_int -> doubleword_int -> xpr_t traceresult list
5256

5357

5458
val get_instrxdata_tags: doubleword_int -> doubleword_int -> string list

CodeHawk/CHT/CHB_tests/bchlibarm32_tests/txbchlibarm32/bCHTranslateARMToCHIFTest.ml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
------------------------------------------------------------------------------
66
The MIT License (MIT)
77
8-
Copyright (c) 2022-2024 Aarno Labs LLC
8+
Copyright (c) 2022-20245 Aarno Labs LLC
99
1010
Permission is hereby granted, free of charge, to any person obtaining a copy
1111
of this software and associated documentation files (the "Software"), to deal
@@ -62,7 +62,7 @@ open BCHAnalyzeApp
6262

6363

6464
let testname = "bCHTranslateARMToCHIFTest"
65-
let lastupdated = "2024-08-27"
65+
let lastupdated = "2025-01-06"
6666

6767
let make_dw (s: string) = TR.tget_ok (string_to_doubleword s)
6868

@@ -86,7 +86,7 @@ let translate_store () =
8686
[("arg_0004", "R4_in"); ("arg_0008", "LR_in")]);
8787
("STR", "0x1b4bc", "08608de500", [("arg_0008", "R6_in")]);
8888
("STRBwb", "0x10208", "015062e500",
89-
[("R2_in[-1]", "sv__13__sv"); ("R2", "sv__3__sv")]);
89+
[("R2_in[-1]", "R5_in"); ("R2", "sv__3__sv")]);
9090
("STRwb", "0x10568", "08402de500",
9191
[("var_0008", "R4_in"); ("SP", "sv__3__sv")]);
9292
("STRDwb1", "0x1b4bc", "f0416de100",
@@ -97,7 +97,7 @@ let translate_store () =
9797
[("var_0012", "R4_in");
9898
("var_0008", "R5_in");
9999
("SP", "sv__3__sv")]);
100-
("STRH", "0x1b4bc", "b031cde100", [("arg_0016", "sv__25__sv")])
100+
("STRH", "0x1b4bc", "b031cde100", [("arg_0016", "R3_in")])
101101
] in
102102
begin
103103
TS.new_testsuite (testname ^ "_translate_store") lastupdated;
@@ -146,7 +146,7 @@ let thumb_chif_conditionxprs () =
146146
"0x4f12",
147147
"44f6251393f87094b9f1910ff94602d8a9f6e1594847a9f6e769484700",
148148
3,
149-
"((lsb gvb_0x4d95_in) <= 145)")
149+
"(gv_0x4d95_in <= 145)")
150150
] in
151151
begin
152152
TS.new_testsuite (testname ^ "_thumb_chif_conditionxprs") lastupdated;
@@ -200,13 +200,14 @@ let thumb_instrxdata_conditionxprs () =
200200
"0x4f12",
201201
"44f6251393f87094b9f1910ff94602d8a9f6e1594847a9f6e769484700",
202202
3,
203-
"((lsb gvb_0x4d95_in) <= 145)")
203+
"(gv_0x4d95_in <= 145)")
204204
] in
205205
begin
206206
TS.new_testsuite (testname ^ "_thumb_instrxdata_conditionxprs") lastupdated;
207207

208208
system_info#set_elf_is_code_address wordzero codemax;
209209
ARMU.arm_instructions_setup (make_dw "0x4000") 0x10000;
210+
210211
List.iter (fun (title, cfaddr, ccaddr, bytes, iterations, expectedcond) ->
211212

212213
TS.add_simple_test

0 commit comments

Comments
 (0)