diff options
Diffstat (limited to 'internal/flags')
| -rw-r--r-- | internal/flags/flags.go | 9 | ||||
| -rw-r--r-- | internal/flags/flags_test.go | 10 |
2 files changed, 16 insertions, 3 deletions
diff --git a/internal/flags/flags.go b/internal/flags/flags.go index bc1654b..b2d9dce 100644 --- a/internal/flags/flags.go +++ b/internal/flags/flags.go @@ -71,9 +71,10 @@ type Flags struct { TUIExportEnable bool // To convert ior data into native SVG format - IorDataFile string - CollapsedFields []string - CountField string + IorDataFile string + IorWatchInterval time.Duration + CollapsedFields []string + CountField string } func Get() Flags { @@ -130,6 +131,8 @@ func parse() error { flag.BoolVar(&singleton.TUIExportEnable, "tuiExport", true, "Enable writing TUI snapshot export files") flag.StringVar(&singleton.IorDataFile, "ior", "", "IOR data file to convert into native SVG flamegraph") + flag.DurationVar(&singleton.IorWatchInterval, "iorWatchInterval", 0, + "In -ior mode, poll input file for changes and regenerate outputs; also enables auto-reloading viewer") fields := flag.String("fields", "", fmt.Sprintf("Comma separated list of fields to collapse, valid are: %v", validCollapsedFields)) flag.StringVar(&singleton.CountField, "count", "count", diff --git a/internal/flags/flags_test.go b/internal/flags/flags_test.go index 11414d8..81d01ad 100644 --- a/internal/flags/flags_test.go +++ b/internal/flags/flags_test.go @@ -114,6 +114,16 @@ func TestParseFlamegraphJSONFlag(t *testing.T) { } } +func TestParseIorWatchIntervalFlag(t *testing.T) { + cfg, err := parseForTest(t, "-iorWatchInterval", "2s") + if err != nil { + t.Fatalf("parse returned error: %v", err) + } + if cfg.IorWatchInterval != 2*time.Second { + t.Fatalf("ior watch interval = %v, want %v", cfg.IorWatchInterval, 2*time.Second) + } +} + func TestParseDefaultCollapsedFieldsOrder(t *testing.T) { cfg, err := parseForTest(t) if err != nil { |
