cmd/omitsize: fix the --features flag

When you say --features=foo,bar, that was supposed to mean
to only show features "foo" and "bar" in the table.

But it was also being used as the set of all features that are
omittable, which was wrong, leading to misleading numbers
when --features was non-empty.

Updates #12614

Change-Id: Idad2fa67fb49c39454032e84a3dede967890fdf5
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick 2025-09-15 12:10:58 -07:00 committed by Brad Fitzpatrick
parent 4bb03609bc
commit 09dfd94613

View File

@ -31,12 +31,16 @@ func main() {
flag.Parse() flag.Parse()
var all []string var all []string
if *features == "" { var allOmittable []string
for k := range featuretags.Features {
if k.IsOmittable() { for k := range featuretags.Features {
all = append(all, k.OmitTag()) if k.IsOmittable() {
} allOmittable = append(allOmittable, k.OmitTag())
} }
}
if *features == "" {
all = slices.Clone(allOmittable)
} else { } else {
for v := range strings.SplitSeq(*features, ",") { for v := range strings.SplitSeq(*features, ",") {
if !strings.HasPrefix(v, "ts_omit_") { if !strings.HasPrefix(v, "ts_omit_") {
@ -49,15 +53,15 @@ func main() {
slices.Sort(all) slices.Sort(all)
all = slices.Compact(all) all = slices.Compact(all)
baseD := measure("tailscaled") minD := measure("tailscaled", allOmittable...)
baseC := measure("tailscale") minC := measure("tailscale", allOmittable...)
baseBoth := measure("tailscaled", "ts_include_cli") minBoth := measure("tailscaled", append(slices.Clone(allOmittable), "ts_include_cli")...)
minD := measure("tailscaled", all...)
minC := measure("tailscale", all...)
minBoth := measure("tailscaled", append(slices.Clone(all), "ts_include_cli")...)
if *showRemovals { if *showRemovals {
baseD := measure("tailscaled")
baseC := measure("tailscale")
baseBoth := measure("tailscaled", "ts_include_cli")
fmt.Printf("Starting with everything and removing a feature...\n\n") fmt.Printf("Starting with everything and removing a feature...\n\n")
fmt.Printf("%9s %9s %9s\n", "tailscaled", "tailscale", "combined (linux/amd64)") fmt.Printf("%9s %9s %9s\n", "tailscaled", "tailscale", "combined (linux/amd64)")
@ -80,7 +84,7 @@ func main() {
fmt.Printf("%9s %9s %9s\n", "tailscaled", "tailscale", "combined (linux/amd64)") fmt.Printf("%9s %9s %9s\n", "tailscaled", "tailscale", "combined (linux/amd64)")
fmt.Printf("%9d %9d %9d omitting everything\n", minD, minC, minBoth) fmt.Printf("%9d %9d %9d omitting everything\n", minD, minC, minBoth)
for _, t := range all { for _, t := range all {
tags := allExcept(all, t) tags := allExcept(allOmittable, t)
sizeD := measure("tailscaled", tags...) sizeD := measure("tailscaled", tags...)
sizeC := measure("tailscale", tags...) sizeC := measure("tailscale", tags...)
sizeBoth := measure("tailscaled", append(tags, "ts_include_cli")...) sizeBoth := measure("tailscaled", append(tags, "ts_include_cli")...)