Skip to content
This repository was archived by the owner on Jan 5, 2023. It is now read-only.

Commit 47f40d5

Browse files
author
Sauyon Lee
committed
Add tests for log frameworks
1 parent 671b427 commit 47f40d5

File tree

14 files changed

+995
-0
lines changed

14 files changed

+995
-0
lines changed

ql/test/library-tests/semmle/go/concepts/LoggerCall/LoggerCall.expected

Whitespace-only changes.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import go
2+
import TestUtilities.InlineExpectationsTest
3+
4+
class LoggerTest extends InlineExpectationsTest {
5+
LoggerTest() { this = "LoggerTest" }
6+
7+
override string getARelevantTag() { result = "logger" }
8+
9+
override predicate hasActualResult(string file, int line, string element, string tag, string value) {
10+
exists(LoggerCall log |
11+
log.hasLocationInfo(file, line, _, _, _) and
12+
element = log.toString() and
13+
value = log.getAMessageComponent().toString() and
14+
tag = "logger"
15+
)
16+
}
17+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
//go:generate depstubber -vendor github.com/golang/glog "" Error,ErrorDepth,Errorf,Errorln,Exit,ExitDepth,Exitf,Exitln,Fatal,FatalDepth,Fatalf,Fatalln,Info,InfoDepth,Infof,Infoln,Warning,WarningDepth,Warningf,Warningln
2+
//go:generate depstubber -vendor k8s.io/klog "" Error,ErrorDepth,Errorf,Errorln,Exit,ExitDepth,Exitf,Exitln,Fatal,FatalDepth,Fatalf,Fatalln,Info,InfoDepth,Infof,Infoln,Warning,WarningDepth,Warningf,Warningln
3+
4+
package main
5+
6+
import (
7+
"github.com/golang/glog"
8+
"k8s.io/klog"
9+
)
10+
11+
func glogTest() {
12+
glog.Error(text) // $logger=text
13+
glog.ErrorDepth(0, text) // $f-:logger=text
14+
glog.Errorf(fmt, text) // $logger=fmt $logger=text
15+
glog.Errorln(text) // $logger=text
16+
glog.Exit(text) // $logger=text
17+
glog.ExitDepth(0, text) // $f-:logger=text
18+
glog.Exitf(fmt, text) // $logger=fmt $logger=text
19+
glog.Exitln(text) // $logger=text
20+
glog.Fatal(text) // $logger=text
21+
glog.FatalDepth(0, text) // $f-:logger=text
22+
glog.Fatalf(fmt, text) // $logger=fmt $logger=text
23+
glog.Fatalln(text) // $logger=text
24+
glog.Info(text) // $logger=text
25+
glog.InfoDepth(0, text) // $f-:logger=text
26+
glog.Infof(fmt, text) // $logger=fmt $logger=text
27+
glog.Infoln(text) // $logger=text
28+
glog.Warning(text) // $logger=text
29+
glog.WarningDepth(0, text) // $f-:logger=text
30+
glog.Warningf(fmt, text) // $logger=fmt $logger=text
31+
glog.Warningln(text) // $logger=text
32+
33+
klog.Error(text) // $logger=text
34+
klog.ErrorDepth(0, text) // $f-:logger=text
35+
klog.Errorf(fmt, text) // $logger=fmt $logger=text
36+
klog.Errorln(text) // $logger=text
37+
klog.Exit(text) // $logger=text
38+
klog.ExitDepth(0, text) // $f-:logger=text
39+
klog.Exitf(fmt, text) // $logger=fmt $logger=text
40+
klog.Exitln(text) // $logger=text
41+
klog.Fatal(text) // $logger=text
42+
klog.FatalDepth(0, text) // $f-:logger=text
43+
klog.Fatalf(fmt, text) // $logger=fmt $logger=text
44+
klog.Fatalln(text) // $logger=text
45+
klog.Info(text) // $logger=text
46+
klog.InfoDepth(0, text) // $f-:logger=text
47+
klog.Infof(fmt, text) // $logger=fmt $logger=text
48+
klog.Infoln(text) // $logger=text
49+
klog.Warning(text) // $logger=text
50+
klog.WarningDepth(0, text) // $f-:logger=text
51+
klog.Warningf(fmt, text) // $logger=fmt $logger=text
52+
klog.Warningln(text) // $logger=text
53+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module codeql-go-tests/concepts/loggercall
2+
3+
go 1.15
4+
5+
require (
6+
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
7+
github.com/sirupsen/logrus v1.7.0
8+
k8s.io/klog v1.0.0
9+
)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
//go:generate depstubber -vendor github.com/sirupsen/logrus Fields,LogFunction,Entry WithContext,WithError,WithFields,Error,Fatalf,Panicln,Infof,FatalFn
2+
3+
package main
4+
5+
import (
6+
"context"
7+
"errors"
8+
"github.com/sirupsen/logrus"
9+
)
10+
11+
func logSomething(entry *logrus.Entry) {
12+
entry.Traceln(text) // $logger=text $f-:logger=fields
13+
}
14+
15+
func logrusCalls() {
16+
err := errors.New("Error")
17+
var fields logrus.Fields = nil
18+
var fn logrus.LogFunction = nil
19+
var ctx context.Context
20+
tmp := logrus.WithContext(ctx) //
21+
tmp.Debugf(fmt, text) // $logger=ctx $logger=fmt $logger=text
22+
tmp = logrus.WithError(err) //
23+
tmp.Warn(text) // $logger=err $logger=text
24+
tmp = logrus.WithFields(fields) //
25+
tmp.Infoln(text) // $logger=fields $logger=text
26+
tmp = logrus.WithFields(fields) //
27+
logSomething(tmp)
28+
29+
logrus.Error(text) // $logger=text
30+
logrus.Fatalf(fmt, text) // $logger=fmt $logger=text
31+
logrus.Panicln(text) // $logger=text
32+
logrus.Infof(fmt, text) // $logger=fmt $logger=text
33+
logrus.FatalFn(fn) // $logger=fn
34+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package main
2+
3+
const fmt = "formatted %s string"
4+
const text = "test"
5+
6+
func main() {
7+
8+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package main
2+
3+
import (
4+
"log"
5+
)
6+
7+
func stdlib() {
8+
var logger log.Logger
9+
logger.SetPrefix("prefix: ")
10+
logger.Fatal(text) // $logger=text
11+
logger.Fatalf(fmt, text) // $logger=fmt $logger=text
12+
logger.Fatalln(text) // $logger=text
13+
logger.Panic(text) // $logger=text
14+
logger.Panicf(fmt, text) // $logger=fmt $logger=text
15+
logger.Panicln(text) // $logger=text
16+
logger.Print(text) // $logger=text
17+
logger.Printf(fmt, text) // $logger=fmt $logger=text
18+
logger.Println(text) // $logger=text
19+
20+
log.SetPrefix("prefix: ")
21+
log.Fatal(text) // $logger=text
22+
log.Fatalf(fmt, text) // $logger=fmt $logger=text
23+
log.Fatalln(text) // $logger=text
24+
log.Panic(text) // $logger=text
25+
log.Panicf(fmt, text) // $logger=fmt $logger=text
26+
log.Panicln(text) // $logger=text
27+
log.Print(text) // $logger=text
28+
log.Printf(fmt, text) // $logger=fmt $logger=text
29+
log.Println(text) // $logger=text
30+
}

ql/test/library-tests/semmle/go/concepts/LoggerCall/vendor/github.com/golang/glog/LICENSE

Lines changed: 191 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ql/test/library-tests/semmle/go/concepts/LoggerCall/vendor/github.com/golang/glog/stub.go

Lines changed: 50 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)