| /** | 
 |  * Copyright © 2019 IBM Corporation | 
 |  * | 
 |  * 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. | 
 |  */ | 
 | #include "extensions/openpower-pels/severity.hpp" | 
 |  | 
 | #include <gtest/gtest.h> | 
 |  | 
 | using namespace openpower::pels; | 
 | using LogSeverity = phosphor::logging::Entry::Level; | 
 |  | 
 | TEST(SeverityTest, SeverityMapTest) | 
 | { | 
 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Informational), 0x00); | 
 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Notice), 0x00); | 
 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Debug), 0x00); | 
 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Warning), 0x20); | 
 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Critical), 0x50); | 
 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Emergency), 0x40); | 
 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Alert), 0x40); | 
 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Error), 0x40); | 
 | } | 
 |  | 
 | TEST(SeverityTest, fixupLogSeverityTest) | 
 | { | 
 |     struct TestParams | 
 |     { | 
 |         LogSeverity sevIn; | 
 |         SeverityType pelSevIn; | 
 |         std::optional<LogSeverity> sevOut; | 
 |     }; | 
 |  | 
 |     const std::vector<TestParams> testParams{ | 
 |         // Convert nonInfo sevs to info | 
 |         {LogSeverity::Error, SeverityType::nonError, | 
 |          LogSeverity::Informational}, | 
 |         {LogSeverity::Critical, SeverityType::recovered, | 
 |          LogSeverity::Informational}, | 
 |         {LogSeverity::Warning, SeverityType::nonError, | 
 |          LogSeverity::Informational}, | 
 |  | 
 |         // Convert info sevs to nonInfo | 
 |         {LogSeverity::Informational, SeverityType::predictive, | 
 |          LogSeverity::Warning}, | 
 |         {LogSeverity::Notice, SeverityType::unrecoverable, LogSeverity::Error}, | 
 |         {LogSeverity::Debug, SeverityType::critical, LogSeverity::Critical}, | 
 |  | 
 |         // Convert non-critical to critical | 
 |         {LogSeverity::Warning, SeverityType::critical, LogSeverity::Critical}, | 
 |  | 
 |         // No change | 
 |         {LogSeverity::Informational, SeverityType::nonError, std::nullopt}, | 
 |         {LogSeverity::Debug, SeverityType::recovered, std::nullopt}, | 
 |         {LogSeverity::Notice, SeverityType::nonError, std::nullopt}, | 
 |         {LogSeverity::Error, SeverityType::unrecoverable, std::nullopt}, | 
 |         {LogSeverity::Critical, SeverityType::unrecoverable, std::nullopt}}; | 
 |  | 
 |     for (const auto& test : testParams) | 
 |     { | 
 |         EXPECT_EQ(fixupLogSeverity(test.sevIn, test.pelSevIn), test.sevOut); | 
 |     } | 
 | } |