forked from google/centipede
-
Notifications
You must be signed in to change notification settings - Fork 5
/
reverse_pc_table_test.cc
47 lines (39 loc) · 1.57 KB
/
reverse_pc_table_test.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Copyright 2022 The Centipede Authors.
//
// 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 "./reverse_pc_table.h"
#include "googletest/include/gtest/gtest.h"
namespace centipede {
namespace {
TEST(ReversePCTable, ReversePCTable) {
ReversePCTable table;
table.SetFromPCs({500, 400, 100, 200, 300});
EXPECT_EQ(table.NumPcs(), 5);
EXPECT_EQ(table.GetPCIndex(0), ReversePCTable::kUnknownPC);
EXPECT_EQ(table.GetPCIndex(50), ReversePCTable::kUnknownPC);
EXPECT_EQ(table.GetPCIndex(150), ReversePCTable::kUnknownPC);
EXPECT_EQ(table.GetPCIndex(501), ReversePCTable::kUnknownPC);
EXPECT_EQ(table.GetPCIndex(500), 0);
EXPECT_EQ(table.GetPCIndex(400), 1);
EXPECT_EQ(table.GetPCIndex(100), 2);
EXPECT_EQ(table.GetPCIndex(200), 3);
EXPECT_EQ(table.GetPCIndex(300), 4);
// Reset the table and try new values.
table.SetFromPCs({40, 20, 30});
EXPECT_EQ(table.GetPCIndex(200), ReversePCTable::kUnknownPC);
EXPECT_EQ(table.GetPCIndex(40), 0);
EXPECT_EQ(table.GetPCIndex(20), 1);
EXPECT_EQ(table.GetPCIndex(30), 2);
}
} // namespace
} // namespace centipede