newcelltypes: unit test

This commit is contained in:
Emil J. Tywoniak 2025-11-25 20:08:26 +01:00
parent f6e5ea3027
commit 79619a75e5
1 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,37 @@
#include <gtest/gtest.h>
#include "kernel/yosys.h"
#include "kernel/yosys_common.h"
#include "kernel/celltypes.h"
#include "kernel/newcelltypes.h"
#include <unordered_set>
YOSYS_NAMESPACE_BEGIN
TEST(CellTypesTest, basic)
{
yosys_setup();
log_files.push_back(stdout);
CellTypes older;
NewCellTypes newer;
log("setup nullptr\n");
older.setup(nullptr);
newer.setup(nullptr);
log("setup type bleh\n");
older.setup_type(ID(bleh), {ID::G}, {ID::H, ID::I}, false, true);
newer.setup_type(ID(bleh), {ID::G}, {ID::H, ID::I}, false, true);
EXPECT_EQ(older.cell_known(ID(aaaaa)), newer.cell_known(ID(aaaaa)));
EXPECT_EQ(older.cell_known(ID($and)), newer.cell_known(ID($and)));
for (size_t i = 0; i < 1000; i++) {
IdString type;
type.index_ = i;
if (older.cell_known(type) != newer.cell_known(type))
std::cout << i << " " << type.str() << "\n";
EXPECT_EQ(older.cell_known(type), newer.cell_known(type));
}
yosys_shutdown();
}
YOSYS_NAMESPACE_END