github.com/evdatsion/aphelion-dpos-bft@v0.32.1/libs/fail/fail.go (about) 1 package fail 2 3 import ( 4 "fmt" 5 "os" 6 "strconv" 7 ) 8 9 func envSet() int { 10 callIndexToFailS := os.Getenv("FAIL_TEST_INDEX") 11 12 if callIndexToFailS == "" { 13 return -1 14 } else { 15 var err error 16 callIndexToFail, err := strconv.Atoi(callIndexToFailS) 17 if err != nil { 18 return -1 19 } 20 return callIndexToFail 21 } 22 } 23 24 // Fail when FAIL_TEST_INDEX == callIndex 25 var callIndex int //indexes Fail calls 26 27 func Fail() { 28 callIndexToFail := envSet() 29 if callIndexToFail < 0 { 30 return 31 } 32 33 if callIndex == callIndexToFail { 34 Exit() 35 } 36 37 callIndex += 1 38 } 39 40 func Exit() { 41 fmt.Printf("*** fail-test %d ***\n", callIndex) 42 os.Exit(1) 43 // proc, _ := os.FindProcess(os.Getpid()) 44 // proc.Signal(os.Interrupt) 45 // panic(fmt.Sprintf("*** fail-test %d ***", callIndex)) 46 }