]> Cypherpunks.ru repositories - gostls13.git/blob - src/runtime/lockrank_test.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / src / runtime / lockrank_test.go
1 // Copyright 2022 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package runtime_test
6
7 import (
8         "bytes"
9         "internal/testenv"
10         "os"
11         "os/exec"
12         "testing"
13 )
14
15 // Test that the generated code for the lock rank graph is up-to-date.
16 func TestLockRankGenerated(t *testing.T) {
17         testenv.MustHaveGoRun(t)
18         cmd := testenv.CleanCmdEnv(testenv.Command(t, testenv.GoToolPath(t), "run", "mklockrank.go"))
19         want, err := cmd.Output()
20         if err != nil {
21                 if ee, ok := err.(*exec.ExitError); ok && len(ee.Stderr) > 0 {
22                         t.Fatalf("%v: %v\n%s", cmd, err, ee.Stderr)
23                 }
24                 t.Fatalf("%v: %v", cmd, err)
25         }
26         got, err := os.ReadFile("lockrank.go")
27         if err != nil {
28                 t.Fatal(err)
29         }
30         if !bytes.Equal(want, got) {
31                 t.Fatalf("lockrank.go is out of date. Please run go generate.")
32         }
33 }