@@ -1018,29 +1018,62 @@ func FuzzRequest(f *testing.F) {
10181018}
10191019
10201020func TestFrankenPHPLog (t * testing.T ) {
1021- var buf bytes.Buffer
1022- handler := slog .NewTextHandler (& buf , & slog.HandlerOptions {Level : slog .LevelDebug })
1023- logger := slog .New (handler )
1021+ type tcase struct {
1022+ name , file string
1023+ cases map [string ]string
1024+ }
10241025
1025- runTest (t , func (handler func (http.ResponseWriter , * http.Request ), _ * httptest.Server , _ int ) {
1026- body , _ := testGet ("http://example.com/logging.php" , handler , t )
1027- assert .Empty (t , body )
1028- }, & testOptions {
1029- logger : logger ,
1030- nbParallelRequests : 1 ,
1031- nbWorkers : 1 ,
1032- })
1026+ test := func (t * testing.T , tc tcase ) {
1027+ t .Helper ()
1028+ t .Run (tc .name , func (t * testing.T ) {
1029+ t .Helper ()
1030+
1031+ var buf bytes.Buffer
1032+ handler := slog .NewTextHandler (& buf , & slog.HandlerOptions {Level : slog .LevelDebug })
1033+ logger := slog .New (handler )
1034+
1035+ runTest (t , func (handler func (http.ResponseWriter , * http.Request ), _ * httptest.Server , _ int ) {
1036+ body , _ := testGet ("http://example.com/" + tc .file , handler , t )
1037+ assert .Empty (t , body )
1038+ }, & testOptions {
1039+ logger : logger ,
1040+ nbParallelRequests : 1 ,
1041+ nbWorkers : 1 ,
1042+ })
10331043
1034- logOutput := buf .String ()
1044+ logOutput := buf .String ()
10351045
1036- t .Logf ("captured logs : %s" , logOutput )
1046+ t .Logf ("captured log output : %s" , logOutput )
10371047
1038- for level , needle := range map [string ]string {
1039- "debug attrs" : `level=DEBUG msg="some debug message" "key int"=1` ,
1040- "info attrs" : `level=INFO msg="some info message" "key string"=string` ,
1041- "warn attrs" : `level=WARN msg="some warn message"` ,
1042- "error attrs" : `level=ERROR msg="some error message" err="[a v]"` ,
1043- } {
1044- assert .Containsf (t , logOutput , needle , "should contains %q log" , level )
1048+ for level , needle := range tc .cases {
1049+ assert .Containsf (t , logOutput , needle , "should contains %q log" , level )
1050+ }
1051+ })
10451052 }
1053+
1054+ test (t , tcase {
1055+ name : "syslog to slog" ,
1056+ file : "log_syslog_to_slog.php" ,
1057+ cases : map [string ]string {
1058+ "emerg" : "level=ERROR msg=\" testing emerg as ERROR\" syslog_level=emerg\n " ,
1059+ "alert" : "level=ERROR msg=\" testing alert as ERROR\" syslog_level=alert\n " ,
1060+ "crit" : "level=ERROR msg=\" testing crit as ERROR\" syslog_level=crit\n " ,
1061+ "error" : "level=ERROR msg=\" testing error as ERROR\" syslog_level=err\n " ,
1062+ "warn" : "level=WARN msg=\" testing warning as WARN\" syslog_level=warning\n " ,
1063+ "notice" : "level=INFO msg=\" testing notice as INFO\" syslog_level=notice\n " ,
1064+ "info" : "level=INFO msg=\" testing info as INFO\" syslog_level=info\n " ,
1065+ "debug" : "level=DEBUG msg=\" testing debug as DEBUG\" syslog_level=debug\n " ,
1066+ },
1067+ })
1068+
1069+ test (t , tcase {
1070+ name : "log to slog attrs" ,
1071+ file : "log_to_slog.php" ,
1072+ cases : map [string ]string {
1073+ "debug attrs" : `level=DEBUG msg="some debug message" "key int"=1` ,
1074+ "info attrs" : `level=INFO msg="some info message" "key string"=string` ,
1075+ "warn attrs" : `level=WARN msg="some warn message"` ,
1076+ "error attrs" : `level=ERROR msg="some error message" err="[a v]"` ,
1077+ },
1078+ })
10461079}
0 commit comments