tree 95e991e19f2d45b423a6a2005d00b9873f8f8bd7
parent 24f779f6aaefe5b1b01156fda6403f9abfb19fe1
author Michael Stapelberg <stapelberg@golang.org> 1761143959 +0200
committer Michael Stapelberg <stapelberg@golang.org> 1761145055 -0700

internal/crashmonitor: fix TestViaStderr/trap

I believe there’s a mistake in commit 06ef541f:

What used to be:

    if got != want {
        t.Errorf("got counter name <<%s>>, want <<%s>>", got, want)
    }

became the following in TestViaStderr/panic:

    if !wantRE.MatchString(got) {
        t.Errorf("got counter name <<%s>>, want match for <<%s>>", got, wantRE)
    }

…but the condition was negated in TestViaStderr/trap:

   if wantRE.MatchString(got) {
       t.Errorf("got counter name <<%s>>, want match for <<%s>>", got, wantRE)
   }

This only went unnoticed because the crash stack line numbers are incorrect.

I noticed this when importing the x/telemetry package into google3,
where the package names are different and need an update.

Change-Id: I6327d174d09d0073c1e18e46618e0fd35e6b4e0c
Reviewed-on: https://go-review.googlesource.com/c/telemetry/+/713780
Reviewed-by: Alan Donovan <adonovan@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
