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