include test to convert functions and change suggested by @gabime
This commit is contained in:
		@@ -15,7 +15,8 @@
 | 
				
			|||||||
#include <memory>
 | 
					#include <memory>
 | 
				
			||||||
#include <atomic>
 | 
					#include <atomic>
 | 
				
			||||||
#include <exception>
 | 
					#include <exception>
 | 
				
			||||||
#include<functional>
 | 
					#include <functional>
 | 
				
			||||||
 | 
					#include <unordered_map>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
 | 
					#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
 | 
				
			||||||
#include <codecvt>
 | 
					#include <codecvt>
 | 
				
			||||||
@@ -89,6 +90,17 @@ enum level_enum
 | 
				
			|||||||
    off = 6
 | 
					    off = 6
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static std::unordered_map<std::string, level_enum> name_to_level = {
 | 
				
			||||||
 | 
					                                                                        { "trace"   , level::trace },
 | 
				
			||||||
 | 
					                                                                        { "debug"   , level::debug },
 | 
				
			||||||
 | 
					                                                                        { "info"    , level::info },
 | 
				
			||||||
 | 
					                                                                        { "warning" , level::warn },
 | 
				
			||||||
 | 
					                                                                        { "error"   , level::err },
 | 
				
			||||||
 | 
					                                                                        { "critical", level::critical },
 | 
				
			||||||
 | 
					                                                                        { "off"     , level::off }
 | 
				
			||||||
 | 
					                                                                   };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if !defined(SPDLOG_LEVEL_NAMES)
 | 
					#if !defined(SPDLOG_LEVEL_NAMES)
 | 
				
			||||||
#define SPDLOG_LEVEL_NAMES { "trace", "debug", "info", "warning", "error", "critical", "off" }
 | 
					#define SPDLOG_LEVEL_NAMES { "trace", "debug", "info", "warning", "error", "critical", "off" }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
@@ -105,17 +117,19 @@ inline const char* to_short_str(spdlog::level::level_enum l)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    return short_level_names[l];
 | 
					    return short_level_names[l];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
inline spdlog::level::level_enum to_level_enum(const char* name)
 | 
					inline spdlog::level::level_enum to_level_enum(const std::string& name)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	for (size_t level = 0; level < size(level_names); level++)
 | 
					    auto ci = name_to_level.find(name);
 | 
				
			||||||
 | 
					    if (ci != name_to_level.end())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
		if (!strcmp(level_names[level], name))
 | 
					        return ci->second;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
			return (spdlog::level::level_enum) level;
 | 
					        return level::off;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return (spdlog::level::level_enum) 0;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using level_hasher = std::hash<int>;
 | 
					using level_hasher = std::hash<int>;
 | 
				
			||||||
} //level
 | 
					} //level
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,6 +42,39 @@ TEST_CASE("log_levels", "[log_levels]")
 | 
				
			|||||||
    REQUIRE(log_info("Hello", spdlog::level::trace) == "Hello");
 | 
					    REQUIRE(log_info("Hello", spdlog::level::trace) == "Hello");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TEST_CASE("to_str", "[convert_to_str]")
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_str(spdlog::level::trace)) == "trace");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_str(spdlog::level::debug)) == "debug");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_str(spdlog::level::info)) == "info");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_str(spdlog::level::warn)) == "warning");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_str(spdlog::level::err)) == "error");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_str(spdlog::level::critical)) == "critical");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_str(spdlog::level::off)) == "off");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TEST_CASE("to_short_str", "[convert_to_short_str]")
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_short_str(spdlog::level::trace)) == "T");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_short_str(spdlog::level::debug)) == "D");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_short_str(spdlog::level::info)) == "I");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_short_str(spdlog::level::warn)) == "W");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_short_str(spdlog::level::err)) == "E");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_short_str(spdlog::level::critical)) == "C");
 | 
				
			||||||
 | 
					    REQUIRE(std::string(spdlog::level::to_short_str(spdlog::level::off)) == "O");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TEST_CASE("to_level_enum", "[convert_to_level_enum]")
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    REQUIRE(spdlog::level::to_level_enum("trace") == spdlog::level::trace);
 | 
				
			||||||
 | 
					    REQUIRE(spdlog::level::to_level_enum("debug") == spdlog::level::debug);
 | 
				
			||||||
 | 
					    REQUIRE(spdlog::level::to_level_enum("info") == spdlog::level::info);
 | 
				
			||||||
 | 
					    REQUIRE(spdlog::level::to_level_enum("warning") == spdlog::level::warn);
 | 
				
			||||||
 | 
					    REQUIRE(spdlog::level::to_level_enum("error") == spdlog::level::err);
 | 
				
			||||||
 | 
					    REQUIRE(spdlog::level::to_level_enum("critical") == spdlog::level::critical);
 | 
				
			||||||
 | 
					    REQUIRE(spdlog::level::to_level_enum("off") == spdlog::level::off);
 | 
				
			||||||
 | 
					    REQUIRE(spdlog::level::to_level_enum("null") == spdlog::level::off);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user