[base] alphabetize EventLogger event record type fields

Summary: - Alphabetize record fields in EventLogger event types

Reviewed By: dulmarod

Differential Revision: D6871805

fbshipit-source-id: 182d4d4
master
Varun Arora 7 years ago committed by Facebook Github Bot
parent 4218142a84
commit 7f6920e0ed

@ -547,20 +547,19 @@ module Stats = struct
in in
stats.events_to_log stats.events_to_log
<- EventLogger.AnalysisStats <- EventLogger.AnalysisStats
{ num_preposts { analysis_nodes_visited= IntSet.cardinal summary.stats.nodes_visited_re
; analysis_nodes_visited= IntSet.cardinal summary.stats.nodes_visited_re ; analysis_status= summary.stats.stats_failure
; analysis_total_nodes= Specs.get_proc_desc summary |> Procdesc.get_nodes_num ; analysis_total_nodes= Specs.get_proc_desc summary |> Procdesc.get_nodes_num
; symops= summary.stats.symops ; clang_method_kind= (Specs.get_attributes summary).clang_method_kind
; method_location= Specs.get_loc summary
; lang= ; lang=
Specs.get_proc_name summary |> Typ.Procname.get_language Specs.get_proc_name summary |> Typ.Procname.get_language
|> Language.to_explicit_string |> Language.to_explicit_string
; clang_method_kind= (Specs.get_attributes summary).clang_method_kind ; method_location= Specs.get_loc summary
; analysis_status= summary.stats.stats_failure ; method_name= Specs.get_proc_name summary |> Typ.Procname.to_string
; method_name= Specs.get_proc_name summary |> Typ.Procname.to_string } ; num_preposts
; symops= summary.stats.symops }
:: stats.events_to_log :: stats.events_to_log
let num_files stats = Hashtbl.length stats.files let num_files stats = Hashtbl.length stats.files
let pp fmt stats = let pp fmt stats =

@ -77,17 +77,21 @@ let get_log_identifier () = Random_id.get ()
let bind_default opt map_func prev = match opt with Some x -> map_func x prev | None -> prev let bind_default opt map_func prev = match opt with Some x -> map_func x prev | None -> prev
type frontend_exception = type frontend_exception =
{ exception_type: string { ast_node: string option
; source_location_start: Location.t
; source_location_end: Location.t
; exception_file: string ; exception_file: string
; exception_line: int ; exception_line: int
; ast_node: string option ; exception_type: string
; lang: string } ; lang: string
; source_location_start: Location.t
; source_location_end: Location.t }
let create_frontend_exception_row base record = let create_frontend_exception_row base record =
let open JsonBuilder in let open JsonBuilder in
base |> add_string ~key:"exception_type" ~data:record.exception_type base |> bind_default record.ast_node (fun ast_node -> add_string ~key:"ast_node" ~data:ast_node)
|> add_string ~key:"exception_triggered_location"
~data:(String.concat [record.exception_file; ":"; string_of_int record.exception_line])
|> add_string ~key:"exception_type" ~data:record.exception_type
|> add_string ~key:"lang" ~data:record.lang
|> add_string ~key:"source_location_start_file" |> add_string ~key:"source_location_start_file"
~data:(SourceFile.to_rel_path record.source_location_start.file) ~data:(SourceFile.to_rel_path record.source_location_start.file)
|> add_string ~key:"source_location_start_pos" |> add_string ~key:"source_location_start_pos"
@ -104,58 +108,54 @@ let create_frontend_exception_row base record =
[ string_of_int record.source_location_end.line [ string_of_int record.source_location_end.line
; ":" ; ":"
; string_of_int record.source_location_end.col ]) ; string_of_int record.source_location_end.col ])
|> add_string ~key:"exception_triggered_location"
~data:(String.concat [record.exception_file; ":"; string_of_int record.exception_line])
|> bind_default record.ast_node (fun ast_node -> add_string ~key:"ast_node" ~data:ast_node)
|> add_string ~key:"lang" ~data:record.lang
type procedures_translated = type procedures_translated =
{ procedures_translated_total: int { lang: string
; procedures_translated_failed: int ; procedures_translated_failed: int
; lang: string ; procedures_translated_total: int
; source_file: SourceFile.t } ; source_file: SourceFile.t }
let create_procedures_translated_row base record = let create_procedures_translated_row base record =
let open JsonBuilder in let open JsonBuilder in
base |> add_int ~key:"procedures_translated_total" ~data:record.procedures_translated_total base |> add_string ~key:"lang" ~data:record.lang
|> add_int ~key:"procedures_translated_failed" ~data:record.procedures_translated_failed |> add_int ~key:"procedures_translated_failed" ~data:record.procedures_translated_failed
|> add_string ~key:"lang" ~data:record.lang |> add_int ~key:"procedures_translated_total" ~data:record.procedures_translated_total
|> add_string ~key:"source_file" ~data:(SourceFile.to_rel_path record.source_file) |> add_string ~key:"source_file" ~data:(SourceFile.to_rel_path record.source_file)
type analysis_stats = type analysis_stats =
{ num_preposts: int { analysis_nodes_visited: int
; analysis_nodes_visited: int ; analysis_status: SymOp.failure_kind option
; analysis_total_nodes: int ; analysis_total_nodes: int
; symops: int
; method_location: Location.t
; lang: string
; clang_method_kind: ProcAttributes.clang_method_kind ; clang_method_kind: ProcAttributes.clang_method_kind
; analysis_status: SymOp.failure_kind option ; lang: string
; method_name: string } ; method_location: Location.t
; method_name: string
; num_preposts: int
; symops: int }
let create_analysis_stats_row base record = let create_analysis_stats_row base record =
let open JsonBuilder in let open JsonBuilder in
base |> add_int ~key:"num_preposts" ~data:record.num_preposts base |> add_int ~key:"analysis_nodes_visited" ~data:record.analysis_nodes_visited
|> add_int ~key:"analysis_nodes_visited" ~data:record.analysis_nodes_visited |> add_string ~key:"analysis_status"
~data:
(Option.value_map record.analysis_status ~default:"OK" ~f:(fun stats_failure ->
SymOp.failure_kind_to_string stats_failure ))
|> add_int ~key:"analysis_total_nodes" ~data:record.analysis_total_nodes |> add_int ~key:"analysis_total_nodes" ~data:record.analysis_total_nodes
|> add_int ~key:"symops" ~data:record.symops |> add_string ~key:"clang_method_kind"
|> add_string ~key:"source_file" ~data:(SourceFile.to_rel_path record.method_location.file) ~data:(ProcAttributes.string_of_clang_method_kind record.clang_method_kind)
|> add_string ~key:"lang" ~data:record.lang
|> add_string ~key:"method_location" |> add_string ~key:"method_location"
~data: ~data:
(String.concat (String.concat
[ string_of_int record.method_location.line [ string_of_int record.method_location.line
; ":" ; ":"
; string_of_int record.method_location.col ]) ; string_of_int record.method_location.col ])
|> add_string ~key:"lang" ~data:record.lang |> add_string ~key:"source_file" ~data:(SourceFile.to_rel_path record.method_location.file)
|> add_string ~key:"clang_method_kind"
~data:(ProcAttributes.string_of_clang_method_kind record.clang_method_kind)
|> add_string ~key:"analysis_status"
~data:
(Option.value_map record.analysis_status ~default:"OK" ~f:(fun stats_failure ->
SymOp.failure_kind_to_string stats_failure ))
|> add_string ~key:"method_name" ~data:record.method_name |> add_string ~key:"method_name" ~data:record.method_name
|> add_int ~key:"num_preposts" ~data:record.num_preposts
|> add_int ~key:"symops" ~data:record.symops
type event = type event =

@ -8,36 +8,36 @@
*) *)
type frontend_exception = type frontend_exception =
{ exception_type: string { ast_node: string option
; source_location_start: Location.t
; source_location_end: Location.t
; exception_file: string ; exception_file: string
; exception_line: int ; exception_line: int
; ast_node: string option ; exception_type: string
; lang: string } ; lang: string
; source_location_start: Location.t
; source_location_end: Location.t }
type procedures_translated = type procedures_translated =
{ procedures_translated_total: int { lang: string
; procedures_translated_failed: int ; procedures_translated_failed: int
; lang: string ; procedures_translated_total: int
; source_file: SourceFile.t } ; source_file: SourceFile.t }
type analysis_stats = type analysis_stats =
{ num_preposts: int { analysis_nodes_visited: int
; analysis_nodes_visited: int ; analysis_status: SymOp.failure_kind option
; analysis_total_nodes: int ; analysis_total_nodes: int
; symops: int
; method_location: Location.t
; lang: string
; clang_method_kind: ProcAttributes.clang_method_kind ; clang_method_kind: ProcAttributes.clang_method_kind
; analysis_status: SymOp.failure_kind option ; lang: string
; method_name: string } ; method_location: Location.t
; method_name: string
; num_preposts: int
; symops: int }
type event = type event =
| UncaughtException of exn * int (** exception, exitcode *) | UncaughtException of exn * int (** exception, exitcode *)
| FrontendException of frontend_exception (** record of caught exception *) | FrontendException of frontend_exception (** record of caught exception *)
| ProceduresTranslatedSummary of procedures_translated (** record of procedures translated *) | ProceduresTranslatedSummary of procedures_translated (** record of procedures translated *)
| AnalysisStats of analysis_stats (** record of stats from the backend *) | AnalysisStats of analysis_stats (** record of stats from procedure analysis *)
val get_log_identifier : unit -> string val get_log_identifier : unit -> string

Loading…
Cancel
Save