| // Copyright 2023 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package inlheur |
| |
| import ( |
| "testing" |
| ) |
| |
| func TestInlScoreAdjFlagParse(t *testing.T) { |
| scenarios := []struct { |
| value string |
| expok bool |
| }{ |
| { |
| value: "returnFeedsConcreteToInterfaceCallAdj:9", |
| expok: true, |
| }, |
| { |
| value: "panicPathAdj:-1/initFuncAdj:9", |
| expok: true, |
| }, |
| { |
| value: "", |
| expok: false, |
| }, |
| { |
| value: "nonsenseAdj:10", |
| expok: false, |
| }, |
| { |
| value: "inLoopAdj:", |
| expok: false, |
| }, |
| { |
| value: "inLoopAdj:10:10", |
| expok: false, |
| }, |
| { |
| value: "inLoopAdj:blah", |
| expok: false, |
| }, |
| { |
| value: "/", |
| expok: false, |
| }, |
| } |
| |
| for _, scenario := range scenarios { |
| err := parseScoreAdj(scenario.value) |
| t.Logf("for value=%q err is %v\n", scenario.value, err) |
| if scenario.expok { |
| if err != nil { |
| t.Errorf("expected parseScoreAdj(%s) ok, got err %v", |
| scenario.value, err) |
| } |
| } else { |
| if err == nil { |
| t.Errorf("expected parseScoreAdj(%s) failure, got success", |
| scenario.value) |
| } |
| } |
| } |
| } |