fix FileWithLineNum func and add gormSourceDir unit test
This commit is contained in:
parent
3f2a3be940
commit
b2742c2b18
@ -3,6 +3,7 @@ package utils
|
|||||||
import (
|
import (
|
||||||
"database/sql/driver"
|
"database/sql/driver"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"path/filepath"
|
||||||
"reflect"
|
"reflect"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -14,17 +15,22 @@ var gormSourceDir string
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
_, file, _, _ := runtime.Caller(0)
|
_, file, _, _ := runtime.Caller(0)
|
||||||
gormSourceDir = strings.Replace(file, `utils.utils.go`, "", -1)
|
// Here is the directory to get the gorm source code. Here, the filepath.Dir mode is enough,
|
||||||
|
// and the filepath is compatible with various operating systems
|
||||||
|
gormSourceDir = filepath.Dir(filepath.Dir(file))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FileWithLineNum return the file name and line number of the current file
|
||||||
func FileWithLineNum() string {
|
func FileWithLineNum() string {
|
||||||
for i := 2; i < 15; i++ {
|
for i := 1; i < 15; i++ {
|
||||||
_, file, line, ok := runtime.Caller(i)
|
_, file, line, ok := runtime.Caller(i)
|
||||||
|
|
||||||
|
// fmt.Println("file:", file, " line: ", line, "ok: ", ok)
|
||||||
if ok && (!strings.HasPrefix(file, gormSourceDir) || strings.HasSuffix(file, "_test.go")) {
|
if ok && (!strings.HasPrefix(file, gormSourceDir) || strings.HasSuffix(file, "_test.go")) {
|
||||||
return file + ":" + strconv.FormatInt(int64(line), 10)
|
return file + ":" + strconv.FormatInt(int64(line), 10)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
utils_filenum_test.go
Normal file
12
utils_filenum_test.go
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package gorm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"gorm.io/gorm/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestFileWithLineNum(t *testing.T) {
|
||||||
|
log.Println("FileWithLineNum: ", utils.FileWithLineNum())
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user