| 
									
										
										
										
											2015-09-18 14:49:06 +08:00
										 |  |  | /* | 
					
						
							|  |  |  |  * Minio Cloud Storage (C) 2015 Minio, Inc. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  |  * you may not use this file except in compliance with the License. | 
					
						
							|  |  |  |  * You may obtain a copy of the License at | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *     http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  * distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  |  * See the License for the specific language governing permissions and | 
					
						
							|  |  |  |  * limitations under the License. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-19 07:23:42 +08:00
										 |  |  | package cmd | 
					
						
							| 
									
										
										
										
											2015-09-18 14:49:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-19 14:32:31 +08:00
										 |  |  | import ( | 
					
						
							|  |  |  | 	"bytes" | 
					
						
							|  |  |  | 	"encoding/json" | 
					
						
							|  |  |  | 	"errors" | 
					
						
							| 
									
										
										
										
											2016-10-11 15:50:27 +08:00
										 |  |  | 	"testing" | 
					
						
							| 
									
										
										
										
											2015-09-18 14:49:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-19 14:32:31 +08:00
										 |  |  | 	"github.com/Sirupsen/logrus" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-29 17:34:16 +08:00
										 |  |  | // Tests callerLocation.
 | 
					
						
							|  |  |  | func TestCallerLocation(t *testing.T) { | 
					
						
							|  |  |  | 	currentLocation := func() string { return callerLocation() } | 
					
						
							|  |  |  | 	gotLocation := currentLocation() | 
					
						
							|  |  |  | 	expectedLocation := "[logger_test.go:31:TestCallerLocation()]" | 
					
						
							|  |  |  | 	if gotLocation != expectedLocation { | 
					
						
							|  |  |  | 		t.Errorf("expected : %s, got : %s", expectedLocation, gotLocation) | 
					
						
							| 
									
										
										
										
											2016-10-11 15:50:27 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2015-09-19 15:52:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-11 15:50:27 +08:00
										 |  |  | // Tests error logger.
 | 
					
						
							|  |  |  | func TestLogger(t *testing.T) { | 
					
						
							| 
									
										
										
										
											2015-09-19 14:32:31 +08:00
										 |  |  | 	var buffer bytes.Buffer | 
					
						
							|  |  |  | 	var fields logrus.Fields | 
					
						
							| 
									
										
										
										
											2016-11-24 03:35:04 +08:00
										 |  |  | 	testLog := logrus.New() | 
					
						
							|  |  |  | 	testLog.Out = &buffer | 
					
						
							|  |  |  | 	testLog.Formatter = new(logrus.JSONFormatter) | 
					
						
							|  |  |  | 	log.mu.Lock() | 
					
						
							|  |  |  | 	log.loggers = append(log.loggers, testLog) | 
					
						
							|  |  |  | 	log.mu.Unlock() | 
					
						
							| 
									
										
										
										
											2015-09-19 14:32:31 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-17 05:31:28 +08:00
										 |  |  | 	errorIf(errors.New("Fake error"), "Failed with error.") | 
					
						
							| 
									
										
										
										
											2015-09-19 14:32:31 +08:00
										 |  |  | 	err := json.Unmarshal(buffer.Bytes(), &fields) | 
					
						
							| 
									
										
										
										
											2016-10-11 15:50:27 +08:00
										 |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		t.Fatal(err) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	if fields["level"] != "error" { | 
					
						
							|  |  |  | 		t.Fatalf("Expected error, got %s", fields["level"]) | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2016-05-17 05:31:28 +08:00
										 |  |  | 	msg, ok := fields["cause"] | 
					
						
							| 
									
										
										
										
											2016-10-11 15:50:27 +08:00
										 |  |  | 	if !ok { | 
					
						
							|  |  |  | 		t.Fatal("Cause field missing") | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	if msg != "Fake error" { | 
					
						
							|  |  |  | 		t.Fatal("Cause field has unexpected message", msg) | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2015-09-18 14:49:06 +08:00
										 |  |  | } |