mirror of
https://github.com/golang/go
synced 2024-11-18 11:14:39 -07:00
34 lines
704 B
Go
34 lines
704 B
Go
|
// run
|
||
|
|
||
|
// Copyright 2016 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.
|
||
|
|
||
|
// Verify that //line directives with filenames
|
||
|
// containing ':' (Windows) are correctly parsed.
|
||
|
// (For a related issue, see test/fixedbugs/bug305.go)
|
||
|
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"runtime"
|
||
|
)
|
||
|
|
||
|
func check(file string, line int) {
|
||
|
_, f, l, ok := runtime.Caller(1)
|
||
|
if !ok {
|
||
|
panic("runtime.Caller(1) failed")
|
||
|
}
|
||
|
if f != file || l != line {
|
||
|
panic(fmt.Sprintf("got %s:%d; want %s:%d", f, l, file, line))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
//line /foo/bar.go:123
|
||
|
check(`/foo/bar.go`, 123)
|
||
|
//line c:/foo/bar.go:987
|
||
|
check(`c:/foo/bar.go`, 987)
|
||
|
}
|