• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2023 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
5package inlheur
6
7import (
8	"testing"
9)
10
11func TestInlScoreAdjFlagParse(t *testing.T) {
12	scenarios := []struct {
13		value string
14		expok bool
15	}{
16		{
17			value: "returnFeedsConcreteToInterfaceCallAdj:9",
18			expok: true,
19		},
20		{
21			value: "panicPathAdj:-1/initFuncAdj:9",
22			expok: true,
23		},
24		{
25			value: "",
26			expok: false,
27		},
28		{
29			value: "nonsenseAdj:10",
30			expok: false,
31		},
32		{
33			value: "inLoopAdj:",
34			expok: false,
35		},
36		{
37			value: "inLoopAdj:10:10",
38			expok: false,
39		},
40		{
41			value: "inLoopAdj:blah",
42			expok: false,
43		},
44		{
45			value: "/",
46			expok: false,
47		},
48	}
49
50	for _, scenario := range scenarios {
51		err := parseScoreAdj(scenario.value)
52		t.Logf("for value=%q err is %v\n", scenario.value, err)
53		if scenario.expok {
54			if err != nil {
55				t.Errorf("expected parseScoreAdj(%s) ok, got err %v",
56					scenario.value, err)
57			}
58		} else {
59			if err == nil {
60				t.Errorf("expected parseScoreAdj(%s) failure, got success",
61					scenario.value)
62			}
63		}
64	}
65}
66