//go:build unit // +build unit // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"). You may // not use this file except in compliance with the License. A copy of the // License is located at // // http://aws.amazon.com/apache2.0/ // // or in the "license" file accompanying this file. This file 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. package logger import ( "testing" "github.com/cihub/seelog" "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" mock_seelog "github.com/aws/amazon-ecs-agent/ecs-agent/logger/mocks" ) func TestGlobal_Init(t *testing.T) { gl := getGlobalStructuredLogger() assert.NotNil(t, gl) assert.Equal(t, defaultStructuredTextFormatter, gl.formatter) } func TestSetGlobalLogger(t *testing.T) { defer globalLoggerBackup()() ctrl := gomock.NewController(t) defer ctrl.Finish() mockReceiver := mock_seelog.NewMockCustomReceiver(ctrl) mockReceiver.EXPECT().Flush().AnyTimes() mockReceiver.EXPECT().Close().AnyTimes() seeLog, err := seelog.LoggerFromCustomReceiver(mockReceiver) require.NoError(t, err) prevGlobalStructuredLogger := getGlobalStructuredLogger() setGlobalLogger(seeLog, jsonFmt) loggerMux.RLock() defer loggerMux.RUnlock() assert.Equal(t, seeLog, seelog.Current) assert.NotNil(t, globalStructuredLogger) assert.NotEqual(t, prevGlobalStructuredLogger, globalStructuredLogger) }