feat: 添加测试模式,方便开发调试

This commit is contained in:
spiritlhl 2025-04-06 12:51:53 +00:00
parent 1a985cfbbe
commit c9c62e86f3
3 changed files with 31 additions and 30 deletions

View File

@ -5,7 +5,8 @@ import (
"time" "time"
) )
func BackTrace() { func BackTrace(test bool) {
if !test {
// 获取IP地址数量 // 获取IP地址数量
ipCount := len(ipv4s) ipCount := len(ipv4s)
var ( var (
@ -16,8 +17,7 @@ func BackTrace() {
for i := range ipv4s { for i := range ipv4s {
go trace(c, i) go trace(c, i)
} }
loop:
loop:
for range s { for range s {
select { select {
case o := <-c: case o := <-c:
@ -26,10 +26,10 @@ loop:
break loop break loop
} }
} }
for _, r := range s { for _, r := range s {
if r != "" { if r != "" {
fmt.Println(r) fmt.Println(r)
} }
} }
}
} }

View File

@ -16,5 +16,5 @@ import (
//} //}
func TestBackTrace(t *testing.T) { func TestBackTrace(t *testing.T) {
BackTrace() BackTrace(false)
} }

View File

@ -25,12 +25,13 @@ func main() {
http.Get("https://hits.spiritlhl.net/backtrace.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false") http.Get("https://hits.spiritlhl.net/backtrace.svg?action=hit&title=Hits&title_bg=%23555555&count_bg=%230eecf8&edge_flat=false")
}() }()
fmt.Println(Green("项目地址:"), Yellow("https://github.com/oneclickvirt/backtrace")) fmt.Println(Green("项目地址:"), Yellow("https://github.com/oneclickvirt/backtrace"))
var showVersion, showIpInfo, help bool var showVersion, showIpInfo, help, test bool
backtraceFlag := flag.NewFlagSet("backtrace", flag.ContinueOnError) backtraceFlag := flag.NewFlagSet("backtrace", flag.ContinueOnError)
backtraceFlag.BoolVar(&help, "h", false, "Show help information") backtraceFlag.BoolVar(&help, "h", false, "Show help information")
backtraceFlag.BoolVar(&showVersion, "v", false, "Show version") backtraceFlag.BoolVar(&showVersion, "v", false, "Show version")
backtraceFlag.BoolVar(&showIpInfo, "s", true, "Disabe show ip info") backtraceFlag.BoolVar(&showIpInfo, "s", true, "Disabe show ip info")
backtraceFlag.BoolVar(&backtrace.EnableLoger, "e", false, "Enable logging") backtraceFlag.BoolVar(&backtrace.EnableLoger, "e", false, "Enable logging")
backtraceFlag.BoolVar(&test, "test", false, "Test Mode")
backtraceFlag.Parse(os.Args[1:]) backtraceFlag.Parse(os.Args[1:])
if help { if help {
fmt.Printf("Usage: %s [options]\n", os.Args[0]) fmt.Printf("Usage: %s [options]\n", os.Args[0])
@ -56,7 +57,7 @@ func main() {
} }
} }
} }
backtrace.BackTrace() backtrace.BackTrace(test)
fmt.Println(Yellow("准确线路自行查看详细路由,本测试结果仅作参考")) fmt.Println(Yellow("准确线路自行查看详细路由,本测试结果仅作参考"))
fmt.Println(Yellow("同一目标地址多个线路时,可能检测已越过汇聚层,除了第一个线路外,后续信息可能无效")) fmt.Println(Yellow("同一目标地址多个线路时,可能检测已越过汇聚层,除了第一个线路外,后续信息可能无效"))
if runtime.GOOS == "windows" || runtime.GOOS == "darwin" { if runtime.GOOS == "windows" || runtime.GOOS == "darwin" {