TestLogging.cpp (2652B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=2 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 5 * You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "gtest/gtest.h" 8 9 #include "mozilla/ipc/ProtocolUtils.h" 10 11 namespace mozilla::ipc { 12 13 #if defined(DEBUG) || defined(FUZZING) 14 TEST(IPCLogging, EmptyFilter) 15 { 16 const char* emptyFilter = ""; 17 EXPECT_FALSE(LoggingEnabledFor("PContent", ParentSide, emptyFilter)); 18 EXPECT_FALSE(LoggingEnabledFor("PContent", ChildSide, emptyFilter)); 19 } 20 21 TEST(IPCLogging, SingleProtocolFilter) 22 { 23 const char* contentParentFilter = "PContentParent"; 24 EXPECT_TRUE(LoggingEnabledFor("PContent", ParentSide, contentParentFilter)); 25 EXPECT_FALSE(LoggingEnabledFor("PContent", ChildSide, contentParentFilter)); 26 } 27 28 TEST(IPCLogging, CommaDelimitedProtocolsFilter) 29 { 30 const char* gmpContentFilter = "PGMPContentChild,PGMPContentParent"; 31 EXPECT_TRUE(LoggingEnabledFor("PGMPContent", ChildSide, gmpContentFilter)); 32 EXPECT_TRUE(LoggingEnabledFor("PGMPContent", ParentSide, gmpContentFilter)); 33 EXPECT_FALSE(LoggingEnabledFor("PContent", ParentSide, gmpContentFilter)); 34 EXPECT_FALSE(LoggingEnabledFor("PContent", ChildSide, gmpContentFilter)); 35 } 36 37 TEST(IPCLogging, SpaceDelimitedProtocolsFilter) 38 { 39 const char* gmpContentFilter = "PGMPContentChild PGMPContentParent"; 40 EXPECT_TRUE(LoggingEnabledFor("PGMPContent", ChildSide, gmpContentFilter)); 41 EXPECT_TRUE(LoggingEnabledFor("PGMPContent", ParentSide, gmpContentFilter)); 42 EXPECT_FALSE(LoggingEnabledFor("PContent", ParentSide, gmpContentFilter)); 43 EXPECT_FALSE(LoggingEnabledFor("PContent", ChildSide, gmpContentFilter)); 44 } 45 46 TEST(IPCLogging, CatchAllFilter) 47 { 48 const char* catchAllFilter = "1"; 49 EXPECT_TRUE(LoggingEnabledFor("PGMPContent", ChildSide, catchAllFilter)); 50 EXPECT_TRUE(LoggingEnabledFor("PGMPContent", ParentSide, catchAllFilter)); 51 EXPECT_TRUE(LoggingEnabledFor("PContent", ParentSide, catchAllFilter)); 52 EXPECT_TRUE(LoggingEnabledFor("PContent", ChildSide, catchAllFilter)); 53 } 54 55 TEST(IPCLogging, BothSidesFilter) 56 { 57 const char* gmpContentFilter = "PGMPContent,PContentParent"; 58 EXPECT_TRUE(LoggingEnabledFor("PGMPContent", ChildSide, gmpContentFilter)); 59 EXPECT_TRUE(LoggingEnabledFor("PGMPContent", ParentSide, gmpContentFilter)); 60 EXPECT_TRUE(LoggingEnabledFor("PContent", ParentSide, gmpContentFilter)); 61 EXPECT_FALSE(LoggingEnabledFor("PContent", ChildSide, gmpContentFilter)); 62 } 63 #endif // defined(DEBUG) || defined(FUZZING) 64 65 } // namespace mozilla::ipc