Skip to content

Commit

Permalink
Adding p4info_helper_test.cc to test/lib.
Browse files Browse the repository at this point in the history
  • Loading branch information
kishanps authored and Bibhuprasad Singh committed Dec 9, 2024
1 parent 560e3cc commit e5f288f
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
10 changes: 10 additions & 0 deletions tests/lib/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@ cc_library(
],
)

cc_test(
name = "p4info_helper_test",
srcs = ["p4info_helper_test.cc"],
deps = [
":p4info_helper",
"//p4_pdpi:ir_cc_proto",
"@com_google_googletest//:gtest_main",
],
)

cc_library(
name = "p4rt_fixed_table_programming_helper",
testonly = True,
Expand Down
39 changes: 39 additions & 0 deletions tests/lib/p4info_helper_test.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright 2024 Google LLC
//
// 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
//
// https://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 "tests/lib/p4info_helper.h"

#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "p4_pdpi/ir.pb.h"

namespace gpins {
namespace {

TEST(P4InfoHelperTest, TableHasMatchField) {
// Add a 'good' match field to a table definition.
pdpi::IrTableDefinition table_def;
table_def.mutable_match_fields_by_name()->insert(
{"good_match", pdpi::IrMatchFieldDefinition{}});

// Then add that table definition to an IrP4Info.
pdpi::IrP4Info ir_p4info;
ir_p4info.mutable_tables_by_name()->insert({"good_table", table_def});

EXPECT_TRUE(pins::TableHasMatchField(ir_p4info, "good_table", "good_match"));
EXPECT_FALSE(pins::TableHasMatchField(ir_p4info, "bad_table", "good_match"));
EXPECT_FALSE(pins::TableHasMatchField(ir_p4info, "good_table", "bad_match"));
}

} // namespace
} // namespace gpins

0 comments on commit e5f288f

Please sign in to comment.