| Matt Spinler | 97f7abc | 2019-11-06 09:40:23 -0600 | [diff] [blame] | 1 | /** | 
 | 2 |  * Copyright © 2019 IBM Corporation | 
 | 3 |  * | 
 | 4 |  * Licensed under the Apache License, Version 2.0 (the "License"); | 
 | 5 |  * you may not use this file except in compliance with the License. | 
 | 6 |  * You may obtain a copy of the License at | 
 | 7 |  * | 
 | 8 |  *     http://www.apache.org/licenses/LICENSE-2.0 | 
 | 9 |  * | 
 | 10 |  * Unless required by applicable law or agreed to in writing, software | 
 | 11 |  * distributed under the License is distributed on an "AS IS" BASIS, | 
 | 12 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 | 13 |  * See the License for the specific language governing permissions and | 
 | 14 |  * limitations under the License. | 
 | 15 |  */ | 
| Matt Spinler | 8c686cc | 2019-09-20 13:46:02 -0500 | [diff] [blame] | 16 | #include "extensions/openpower-pels/severity.hpp" | 
 | 17 |  | 
 | 18 | #include <gtest/gtest.h> | 
 | 19 |  | 
 | 20 | using namespace openpower::pels; | 
 | 21 | using LogSeverity = phosphor::logging::Entry::Level; | 
 | 22 |  | 
 | 23 | TEST(SeverityTest, SeverityMapTest) | 
 | 24 | { | 
 | 25 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Informational), 0x00); | 
 | 26 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Notice), 0x00); | 
 | 27 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Debug), 0x00); | 
 | 28 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Warning), 0x20); | 
 | 29 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Critical), 0x50); | 
 | 30 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Emergency), 0x40); | 
 | 31 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Alert), 0x40); | 
 | 32 |     ASSERT_EQ(convertOBMCSeverityToPEL(LogSeverity::Error), 0x40); | 
 | 33 | } | 
| Matt Spinler | 8b81ec0 | 2022-07-12 13:25:37 -0500 | [diff] [blame] | 34 |  | 
 | 35 | TEST(SeverityTest, fixupLogSeverityTest) | 
 | 36 | { | 
 | 37 |     struct TestParams | 
 | 38 |     { | 
 | 39 |         LogSeverity sevIn; | 
 | 40 |         SeverityType pelSevIn; | 
 | 41 |         std::optional<LogSeverity> sevOut; | 
 | 42 |     }; | 
 | 43 |  | 
 | 44 |     const std::vector<TestParams> testParams{ | 
 | 45 |         // Convert nonInfo sevs to info | 
 | 46 |         {LogSeverity::Error, SeverityType::nonError, | 
 | 47 |          LogSeverity::Informational}, | 
 | 48 |         {LogSeverity::Critical, SeverityType::recovered, | 
 | 49 |          LogSeverity::Informational}, | 
 | 50 |         {LogSeverity::Warning, SeverityType::nonError, | 
 | 51 |          LogSeverity::Informational}, | 
 | 52 |  | 
 | 53 |         // Convert info sevs to nonInfo | 
 | 54 |         {LogSeverity::Informational, SeverityType::predictive, | 
 | 55 |          LogSeverity::Warning}, | 
 | 56 |         {LogSeverity::Notice, SeverityType::unrecoverable, LogSeverity::Error}, | 
 | 57 |         {LogSeverity::Debug, SeverityType::critical, LogSeverity::Critical}, | 
 | 58 |  | 
 | 59 |         // Convert non-critical to critical | 
 | 60 |         {LogSeverity::Warning, SeverityType::critical, LogSeverity::Critical}, | 
 | 61 |  | 
 | 62 |         // No change | 
 | 63 |         {LogSeverity::Informational, SeverityType::nonError, std::nullopt}, | 
 | 64 |         {LogSeverity::Debug, SeverityType::recovered, std::nullopt}, | 
 | 65 |         {LogSeverity::Notice, SeverityType::nonError, std::nullopt}, | 
 | 66 |         {LogSeverity::Error, SeverityType::unrecoverable, std::nullopt}, | 
 | 67 |         {LogSeverity::Critical, SeverityType::unrecoverable, std::nullopt}}; | 
 | 68 |  | 
 | 69 |     for (const auto& test : testParams) | 
 | 70 |     { | 
 | 71 |         EXPECT_EQ(fixupLogSeverity(test.sevIn, test.pelSevIn), test.sevOut); | 
 | 72 |     } | 
 | 73 | } |