From 5ee9d8724d0347027957921fe77fa83b75947b29 Mon Sep 17 00:00:00 2001 From: Robert burner Schadek Date: Mon, 26 Jan 2015 18:10:55 +0100 Subject: [PATCH] unittest to make sure everything is set right --- std/experimental/logger/core.d | 31 +++++++++++++++++---------- std/experimental/logger/filelogger.d | 8 +++++-- std/experimental/logger/multilogger.d | 9 +++++--- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/std/experimental/logger/core.d b/std/experimental/logger/core.d index b0f95428c6f..e5f71cb384c 100644 --- a/std/experimental/logger/core.d +++ b/std/experimental/logger/core.d @@ -107,13 +107,13 @@ bool isLoggingEnabled()(LogLevel ll, LogLevel loggerLL, } /** This template returns the $(D LogLevel) named "logLevel" of type $(D -LogLevel) defined in a user defined module where the filename has the +LogLevel) defined in a user defined module where the filename has the suffix "_loggerconfig.d". This $(D LogLevel) sets the minimal $(D LogLevel) of the module. A minimal $(D LogLevel) can be defined on a per module basis. In order to define a module $(D LogLevel) a file with a modulename -"MODULENAME_loggerconfig" must be found. If no such module exists and the +"MODULENAME_loggerconfig" must be found. If no such module exists and the module is a nested module, it is checked if there exists a "PARENT_MODULE_loggerconfig" module with such a symbol. If this module exists and it contains a $(D LogLevel) called logLevel this $(D @@ -2946,15 +2946,6 @@ private void trustedStore(T)(ref shared T dst, ref T src) @trusted atomicStore!(MemoryOrder.rel)(dst, src); } -@safe unittest -{ - stdThreadLocalLog.logLevel = LogLevel.all; - auto dl = cast(FileLogger)sharedLog; - assert(dl !is null); - assert(dl.logLevel == LogLevel.all); - assert(globalLogLevel == LogLevel.all); -} - // check that thread-local logging does not propagate // to shared logger unittest @@ -2993,6 +2984,12 @@ unittest } } + auto oldSharedLog = sharedLog; + scope(exit) + { + sharedLog = oldSharedLog; + } + sharedLog = new IgnoredLog; Thread[] spawned; @@ -3010,3 +3007,15 @@ unittest assert (atomicOp!"=="(logged_count, 4)); } + +@safe unittest +{ + auto dl = cast(FileLogger)sharedLog; + assert(dl !is null); + assert(dl.logLevel == LogLevel.all); + assert(globalLogLevel == LogLevel.all); + + auto tl = cast(StdForwardLogger)stdThreadLocalLog; + assert(tl !is null); + stdThreadLocalLog.logLevel = LogLevel.all; +} diff --git a/std/experimental/logger/filelogger.d b/std/experimental/logger/filelogger.d index edc7696c30f..270e962f475 100644 --- a/std/experimental/logger/filelogger.d +++ b/std/experimental/logger/filelogger.d @@ -189,10 +189,14 @@ unittest file.close(); } -unittest +@safe unittest { - auto dl = sharedLog; + auto dl = cast(FileLogger)sharedLog; assert(dl !is null); assert(dl.logLevel == LogLevel.all); assert(globalLogLevel == LogLevel.all); + + auto tl = cast(StdForwardLogger)stdThreadLocalLog; + assert(tl !is null); + stdThreadLocalLog.logLevel = LogLevel.all; } diff --git a/std/experimental/logger/multilogger.d b/std/experimental/logger/multilogger.d index 79e4db79499..18ec7213dcf 100644 --- a/std/experimental/logger/multilogger.d +++ b/std/experimental/logger/multilogger.d @@ -72,7 +72,7 @@ class MultiLogger : Logger import std.range.interfaces : back, popBack; for (size_t i = 0; i < this.logger.length; ++i) { - if (this.logger[i].name == toRemove) + if (this.logger[i].name == toRemove) { Logger ret = this.logger[i].logger; this.logger[i] = this.logger.back(); @@ -184,9 +184,12 @@ unittest @safe unittest { - auto dl = sharedLog; + auto dl = cast(FileLogger)sharedLog; assert(dl !is null); assert(dl.logLevel == LogLevel.all); assert(globalLogLevel == LogLevel.all); -} + auto tl = cast(StdForwardLogger)stdThreadLocalLog; + assert(tl !is null); + stdThreadLocalLog.logLevel = LogLevel.all; +}