diff --git a/tests/unit/kernel/cellTypesTest.cc b/tests/unit/kernel/cellTypesTest.cc new file mode 100644 index 000000000..1743ef7a0 --- /dev/null +++ b/tests/unit/kernel/cellTypesTest.cc @@ -0,0 +1,37 @@ +#include +#include "kernel/yosys.h" +#include "kernel/yosys_common.h" +#include "kernel/celltypes.h" +#include "kernel/newcelltypes.h" + +#include + +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