Merge pull request #5470 from filecoin-project/feat/no-timing-compute-state
state compute-state ---html --no-timing flag
This commit is contained in:
commit
d9e0d474d1
44
cli/state.go
44
cli/state.go
@ -935,6 +935,10 @@ var stateComputeStateCmd = &cli.Command{
|
|||||||
Name: "compute-state-output",
|
Name: "compute-state-output",
|
||||||
Usage: "a json file containing pre-existing compute-state output, to generate html reports without rerunning state changes",
|
Usage: "a json file containing pre-existing compute-state output, to generate html reports without rerunning state changes",
|
||||||
},
|
},
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: "no-timing",
|
||||||
|
Usage: "don't show timing information in html traces",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Action: func(cctx *cli.Context) error {
|
Action: func(cctx *cli.Context) error {
|
||||||
api, closer, err := GetFullNodeAPI(cctx)
|
api, closer, err := GetFullNodeAPI(cctx)
|
||||||
@ -1026,7 +1030,9 @@ var stateComputeStateCmd = &cli.Command{
|
|||||||
return c.Code, nil
|
return c.Code, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return ComputeStateHTMLTempl(os.Stdout, ts, stout, getCode)
|
_, _ = fmt.Fprintln(os.Stderr, "computed state cid: ", stout.Root)
|
||||||
|
|
||||||
|
return ComputeStateHTMLTempl(os.Stdout, ts, stout, !cctx.Bool("no-timing"), getCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("computed state cid: ", stout.Root)
|
fmt.Println("computed state cid: ", stout.Root)
|
||||||
@ -1147,8 +1153,11 @@ var compStateMsg = `
|
|||||||
{{if gt (len .Msg.Params) 0}}
|
{{if gt (len .Msg.Params) 0}}
|
||||||
<div><pre class="params">{{JsonParams ($code) (.Msg.Method) (.Msg.Params) | html}}</pre></div>
|
<div><pre class="params">{{JsonParams ($code) (.Msg.Method) (.Msg.Params) | html}}</pre></div>
|
||||||
{{end}}
|
{{end}}
|
||||||
<div><span class="slow-{{IsSlow .Duration}}-{{IsVerySlow .Duration}}">Took {{.Duration}}</span>, <span class="exit{{IntExit .MsgRct.ExitCode}}">Exit: <b>{{.MsgRct.ExitCode}}</b></span>{{if gt (len .MsgRct.Return) 0}}, Return{{end}}</div>
|
{{if PrintTiming}}
|
||||||
|
<div><span class="slow-{{IsSlow .Duration}}-{{IsVerySlow .Duration}}">Took {{.Duration}}</span>, <span class="exit{{IntExit .MsgRct.ExitCode}}">Exit: <b>{{.MsgRct.ExitCode}}</b></span>{{if gt (len .MsgRct.Return) 0}}, Return{{end}}</div>
|
||||||
|
{{else}}
|
||||||
|
<div><span class="exit{{IntExit .MsgRct.ExitCode}}">Exit: <b>{{.MsgRct.ExitCode}}</b></span>{{if gt (len .MsgRct.Return) 0}}, Return{{end}}</div>
|
||||||
|
{{end}}
|
||||||
{{if gt (len .MsgRct.Return) 0}}
|
{{if gt (len .MsgRct.Return) 0}}
|
||||||
<div><pre class="ret">{{JsonReturn ($code) (.Msg.Method) (.MsgRct.Return) | html}}</pre></div>
|
<div><pre class="ret">{{JsonReturn ($code) (.Msg.Method) (.MsgRct.Return) | html}}</pre></div>
|
||||||
{{end}}
|
{{end}}
|
||||||
@ -1174,7 +1183,7 @@ var compStateMsg = `
|
|||||||
{{range .GasCharges}}
|
{{range .GasCharges}}
|
||||||
<tr><td>{{.Name}}{{if .Extra}}:{{.Extra}}{{end}}</td>
|
<tr><td>{{.Name}}{{if .Extra}}:{{.Extra}}{{end}}</td>
|
||||||
{{template "gasC" .}}
|
{{template "gasC" .}}
|
||||||
<td>{{.TimeTaken}}</td>
|
<td>{{if PrintTiming}}{{.TimeTaken}}{{end}}</td>
|
||||||
<td>
|
<td>
|
||||||
{{ $fImp := FirstImportant .Location }}
|
{{ $fImp := FirstImportant .Location }}
|
||||||
{{ if $fImp }}
|
{{ if $fImp }}
|
||||||
@ -1213,7 +1222,7 @@ var compStateMsg = `
|
|||||||
{{with SumGas .GasCharges}}
|
{{with SumGas .GasCharges}}
|
||||||
<tr class="sum"><td><b>Sum</b></td>
|
<tr class="sum"><td><b>Sum</b></td>
|
||||||
{{template "gasC" .}}
|
{{template "gasC" .}}
|
||||||
<td>{{.TimeTaken}}</td>
|
<td>{{if PrintTiming}}{{.TimeTaken}}{{end}}</td>
|
||||||
<td></td></tr>
|
<td></td></tr>
|
||||||
{{end}}
|
{{end}}
|
||||||
</table>
|
</table>
|
||||||
@ -1234,19 +1243,20 @@ type compStateHTMLIn struct {
|
|||||||
Comp *api.ComputeStateOutput
|
Comp *api.ComputeStateOutput
|
||||||
}
|
}
|
||||||
|
|
||||||
func ComputeStateHTMLTempl(w io.Writer, ts *types.TipSet, o *api.ComputeStateOutput, getCode func(addr address.Address) (cid.Cid, error)) error {
|
func ComputeStateHTMLTempl(w io.Writer, ts *types.TipSet, o *api.ComputeStateOutput, printTiming bool, getCode func(addr address.Address) (cid.Cid, error)) error {
|
||||||
t, err := template.New("compute_state").Funcs(map[string]interface{}{
|
t, err := template.New("compute_state").Funcs(map[string]interface{}{
|
||||||
"GetCode": getCode,
|
"GetCode": getCode,
|
||||||
"GetMethod": getMethod,
|
"GetMethod": getMethod,
|
||||||
"ToFil": toFil,
|
"ToFil": toFil,
|
||||||
"JsonParams": JsonParams,
|
"JsonParams": JsonParams,
|
||||||
"JsonReturn": jsonReturn,
|
"JsonReturn": jsonReturn,
|
||||||
"IsSlow": isSlow,
|
"IsSlow": isSlow,
|
||||||
"IsVerySlow": isVerySlow,
|
"IsVerySlow": isVerySlow,
|
||||||
"IntExit": func(i exitcode.ExitCode) int64 { return int64(i) },
|
"IntExit": func(i exitcode.ExitCode) int64 { return int64(i) },
|
||||||
"SumGas": sumGas,
|
"SumGas": sumGas,
|
||||||
"CodeStr": codeStr,
|
"CodeStr": codeStr,
|
||||||
"Call": call,
|
"Call": call,
|
||||||
|
"PrintTiming": func() bool { return printTiming },
|
||||||
"FirstImportant": func(locs []types.Loc) *types.Loc {
|
"FirstImportant": func(locs []types.Loc) *types.Loc {
|
||||||
if len(locs) != 0 {
|
if len(locs) != 0 {
|
||||||
for _, l := range locs {
|
for _, l := range locs {
|
||||||
|
@ -55,7 +55,7 @@ func FetchChainState(t *testkit.TestEnvironment, m *testkit.LotusMiner) error {
|
|||||||
return c.Code, nil
|
return c.Code, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return cli.ComputeStateHTMLTempl(file, tipset, stout, getCode)
|
return cli.ComputeStateHTMLTempl(file, tipset, stout, true, getCode)
|
||||||
}()
|
}()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
Reference in New Issue
Block a user