diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/dummy/main.cc (renamed from tests/dummy/main.cpp) | 10 | ||||
| -rw-r--r-- | tests/ice40/hx1k.cc | 88 | ||||
| -rw-r--r-- | tests/ice40/hx8k.cc | 88 | ||||
| -rw-r--r-- | tests/ice40/lp1k.cc | 88 | ||||
| -rw-r--r-- | tests/ice40/lp384.cc | 88 | ||||
| -rw-r--r-- | tests/ice40/lp8k.cc | 88 | ||||
| -rw-r--r-- | tests/ice40/main.cc (renamed from tests/ice40/main.cpp) | 11 | ||||
| -rw-r--r-- | tests/ice40/up5k.cc | 88 | 
8 files changed, 528 insertions, 21 deletions
| diff --git a/tests/dummy/main.cpp b/tests/dummy/main.cc index b8d22138..13f071ce 100644 --- a/tests/dummy/main.cpp +++ b/tests/dummy/main.cc @@ -6,13 +6,3 @@ int main(int argc, char **argv) {    ::testing::InitGoogleTest(&argc, argv);    return RUN_ALL_TESTS();  } - -TEST(example, sum_zero) { -  auto result = 0; -  ASSERT_EQ(result, 0); -} - -TEST(example, sum_five) { -  auto result = 15; -  ASSERT_EQ(result, 15); -} diff --git a/tests/ice40/hx1k.cc b/tests/ice40/hx1k.cc new file mode 100644 index 00000000..deea1d34 --- /dev/null +++ b/tests/ice40/hx1k.cc @@ -0,0 +1,88 @@ +#include "gtest/gtest.h" +#include "nextpnr.h" +#include <vector> + +USING_NEXTPNR_NAMESPACE + +class HX1KTest : public ::testing::Test { + protected: +  virtual void SetUp()  +  {     +    chipArgs.type = ChipArgs::HX1K; +    design = new Design(chipArgs); +  } +   +  virtual void TearDown() { +    delete design; +  } + +  ChipArgs chipArgs; +  Design *design; +}; + +TEST_F(HX1KTest, bel_names)  +{ +  int bel_count = 0; +  for (auto bel : design->chip.getBels()) { +      auto name = design->chip.getBelName(bel); +      ASSERT_EQ(bel,design->chip.getBelByName(name)); +      bel_count++; +  } +  ASSERT_EQ(bel_count,1416); +} + +TEST_F(HX1KTest, wire_names)  +{ +  int wire_count = 0; +  for (auto wire : design->chip.getWires()) { +      auto name = design->chip.getWireName(wire); +      assert(wire == design->chip.getWireByName(name)); +      wire_count++; +  } +  ASSERT_EQ(wire_count,27682); +} + +TEST_F(HX1KTest, pip_names)  +{ +  int pip_count = 0; +  for (auto pip : design->chip.getPips()) { +      auto name = design->chip.getPipName(pip); +      assert(pip == design->chip.getPipByName(name)); +      pip_count++; +  } +  ASSERT_EQ(pip_count,319904); +} + +TEST_F(HX1KTest, uphill_to_downhill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto uphill_pip : design->chip.getPipsUphill(dst)) { +          bool found_downhill = false; +          for (auto downhill_pip : design->chip.getPipsDownhill( +                        design->chip.getPipSrcWire(uphill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_downhill); +                  found_downhill = true; +              } +          } +          ASSERT_TRUE(found_downhill); +      } +  } +} + +TEST_F(HX1KTest, downhill_to_uphill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto downhill_pip : design->chip.getPipsDownhill(dst)) { +          bool found_uphill = false; +          for (auto uphill_pip : design->chip.getPipsUphill( +                        design->chip.getPipDstWire(downhill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_uphill); +                  found_uphill = true; +              } +          } +          ASSERT_TRUE(found_uphill); +      } +  } +} diff --git a/tests/ice40/hx8k.cc b/tests/ice40/hx8k.cc new file mode 100644 index 00000000..7c0ae167 --- /dev/null +++ b/tests/ice40/hx8k.cc @@ -0,0 +1,88 @@ +#include "gtest/gtest.h" +#include "nextpnr.h" +#include <vector> + +USING_NEXTPNR_NAMESPACE + +class HX8KTest : public ::testing::Test { + protected: +  virtual void SetUp()  +  {     +    chipArgs.type = ChipArgs::HX8K; +    design = new Design(chipArgs); +  } +   +  virtual void TearDown() { +    delete design; +  } + +  ChipArgs chipArgs; +  Design *design; +}; + +TEST_F(HX8KTest, bel_names)  +{ +  int bel_count = 0; +  for (auto bel : design->chip.getBels()) { +      auto name = design->chip.getBelName(bel); +      ASSERT_EQ(bel,design->chip.getBelByName(name)); +      bel_count++; +  } +  ASSERT_EQ(bel_count,7968); +} + +TEST_F(HX8KTest, wire_names)  +{ +  int wire_count = 0; +  for (auto wire : design->chip.getWires()) { +      auto name = design->chip.getWireName(wire); +      assert(wire == design->chip.getWireByName(name)); +      wire_count++; +  } +  ASSERT_EQ(wire_count,135174); +} + +TEST_F(HX8KTest, pip_names)  +{ +  int pip_count = 0; +  for (auto pip : design->chip.getPips()) { +      auto name = design->chip.getPipName(pip); +      assert(pip == design->chip.getPipByName(name)); +      pip_count++; +  } +  ASSERT_EQ(pip_count,1652480); +} + +TEST_F(HX8KTest, uphill_to_downhill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto uphill_pip : design->chip.getPipsUphill(dst)) { +          bool found_downhill = false; +          for (auto downhill_pip : design->chip.getPipsDownhill( +                        design->chip.getPipSrcWire(uphill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_downhill); +                  found_downhill = true; +              } +          } +          ASSERT_TRUE(found_downhill); +      } +  } +} + +TEST_F(HX8KTest, downhill_to_uphill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto downhill_pip : design->chip.getPipsDownhill(dst)) { +          bool found_uphill = false; +          for (auto uphill_pip : design->chip.getPipsUphill( +                        design->chip.getPipDstWire(downhill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_uphill); +                  found_uphill = true; +              } +          } +          ASSERT_TRUE(found_uphill); +      } +  } +} diff --git a/tests/ice40/lp1k.cc b/tests/ice40/lp1k.cc new file mode 100644 index 00000000..700b593d --- /dev/null +++ b/tests/ice40/lp1k.cc @@ -0,0 +1,88 @@ +#include "gtest/gtest.h" +#include "nextpnr.h" +#include <vector> + +USING_NEXTPNR_NAMESPACE + +class LP1KTest : public ::testing::Test { + protected: +  virtual void SetUp()  +  {     +    chipArgs.type = ChipArgs::LP1K; +    design = new Design(chipArgs); +  } +   +  virtual void TearDown() { +    delete design; +  } + +  ChipArgs chipArgs; +  Design *design; +}; + +TEST_F(LP1KTest, bel_names)  +{ +  int bel_count = 0; +  for (auto bel : design->chip.getBels()) { +      auto name = design->chip.getBelName(bel); +      ASSERT_EQ(bel,design->chip.getBelByName(name)); +      bel_count++; +  } +  ASSERT_EQ(bel_count,1416); +} + +TEST_F(LP1KTest, wire_names)  +{ +  int wire_count = 0; +  for (auto wire : design->chip.getWires()) { +      auto name = design->chip.getWireName(wire); +      assert(wire == design->chip.getWireByName(name)); +      wire_count++; +  } +  ASSERT_EQ(wire_count,27682); +} + +TEST_F(LP1KTest, pip_names)  +{ +  int pip_count = 0; +  for (auto pip : design->chip.getPips()) { +      auto name = design->chip.getPipName(pip); +      assert(pip == design->chip.getPipByName(name)); +      pip_count++; +  } +  ASSERT_EQ(pip_count,319904); +} + +TEST_F(LP1KTest, uphill_to_downhill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto uphill_pip : design->chip.getPipsUphill(dst)) { +          bool found_downhill = false; +          for (auto downhill_pip : design->chip.getPipsDownhill( +                        design->chip.getPipSrcWire(uphill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_downhill); +                  found_downhill = true; +              } +          } +          ASSERT_TRUE(found_downhill); +      } +  } +} + +TEST_F(LP1KTest, downhill_to_uphill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto downhill_pip : design->chip.getPipsDownhill(dst)) { +          bool found_uphill = false; +          for (auto uphill_pip : design->chip.getPipsUphill( +                        design->chip.getPipDstWire(downhill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_uphill); +                  found_uphill = true; +              } +          } +          ASSERT_TRUE(found_uphill); +      } +  } +} diff --git a/tests/ice40/lp384.cc b/tests/ice40/lp384.cc new file mode 100644 index 00000000..481142b9 --- /dev/null +++ b/tests/ice40/lp384.cc @@ -0,0 +1,88 @@ +#include "gtest/gtest.h" +#include "nextpnr.h" +#include <vector> + +USING_NEXTPNR_NAMESPACE + +class LP384Test : public ::testing::Test { + protected: +  virtual void SetUp()  +  {     +    chipArgs.type = ChipArgs::LP384; +    design = new Design(chipArgs); +  } +   +  virtual void TearDown() { +    delete design; +  } + +  ChipArgs chipArgs; +  Design *design; +}; + +TEST_F(LP384Test, bel_names)  +{ +  int bel_count = 0; +  for (auto bel : design->chip.getBels()) { +      auto name = design->chip.getBelName(bel); +      ASSERT_EQ(bel,design->chip.getBelByName(name)); +      bel_count++; +  } +  ASSERT_EQ(bel_count,440); +} + +TEST_F(LP384Test, wire_names)  +{ +  int wire_count = 0; +  for (auto wire : design->chip.getWires()) { +      auto name = design->chip.getWireName(wire); +      assert(wire == design->chip.getWireByName(name)); +      wire_count++; +  } +  ASSERT_EQ(wire_count,8294); +} + +TEST_F(LP384Test, pip_names)  +{ +  int pip_count = 0; +  for (auto pip : design->chip.getPips()) { +      auto name = design->chip.getPipName(pip); +      assert(pip == design->chip.getPipByName(name)); +      pip_count++; +  } +  ASSERT_EQ(pip_count,86864); +} + +TEST_F(LP384Test, uphill_to_downhill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto uphill_pip : design->chip.getPipsUphill(dst)) { +          bool found_downhill = false; +          for (auto downhill_pip : design->chip.getPipsDownhill( +                        design->chip.getPipSrcWire(uphill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_downhill); +                  found_downhill = true; +              } +          } +          ASSERT_TRUE(found_downhill); +      } +  } +} + +TEST_F(LP384Test, downhill_to_uphill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto downhill_pip : design->chip.getPipsDownhill(dst)) { +          bool found_uphill = false; +          for (auto uphill_pip : design->chip.getPipsUphill( +                        design->chip.getPipDstWire(downhill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_uphill); +                  found_uphill = true; +              } +          } +          ASSERT_TRUE(found_uphill); +      } +  } +} diff --git a/tests/ice40/lp8k.cc b/tests/ice40/lp8k.cc new file mode 100644 index 00000000..5dbb7674 --- /dev/null +++ b/tests/ice40/lp8k.cc @@ -0,0 +1,88 @@ +#include "gtest/gtest.h" +#include "nextpnr.h" +#include <vector> + +USING_NEXTPNR_NAMESPACE + +class LP8KTest : public ::testing::Test { + protected: +  virtual void SetUp()  +  {     +    chipArgs.type = ChipArgs::LP8K; +    design = new Design(chipArgs); +  } +   +  virtual void TearDown() { +    delete design; +  } + +  ChipArgs chipArgs; +  Design *design; +}; + +TEST_F(LP8KTest, bel_names)  +{ +  int bel_count = 0; +  for (auto bel : design->chip.getBels()) { +      auto name = design->chip.getBelName(bel); +      ASSERT_EQ(bel,design->chip.getBelByName(name)); +      bel_count++; +  } +  ASSERT_EQ(bel_count,7968); +} + +TEST_F(LP8KTest, wire_names)  +{ +  int wire_count = 0; +  for (auto wire : design->chip.getWires()) { +      auto name = design->chip.getWireName(wire); +      assert(wire == design->chip.getWireByName(name)); +      wire_count++; +  } +  ASSERT_EQ(wire_count,135174); +} + +TEST_F(LP8KTest, pip_names)  +{ +  int pip_count = 0; +  for (auto pip : design->chip.getPips()) { +      auto name = design->chip.getPipName(pip); +      assert(pip == design->chip.getPipByName(name)); +      pip_count++; +  } +  ASSERT_EQ(pip_count,1652480); +} + +TEST_F(LP8KTest, uphill_to_downhill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto uphill_pip : design->chip.getPipsUphill(dst)) { +          bool found_downhill = false; +          for (auto downhill_pip : design->chip.getPipsDownhill( +                        design->chip.getPipSrcWire(uphill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_downhill); +                  found_downhill = true; +              } +          } +          ASSERT_TRUE(found_downhill); +      } +  } +} + +TEST_F(LP8KTest, downhill_to_uphill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto downhill_pip : design->chip.getPipsDownhill(dst)) { +          bool found_uphill = false; +          for (auto uphill_pip : design->chip.getPipsUphill( +                        design->chip.getPipDstWire(downhill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_uphill); +                  found_uphill = true; +              } +          } +          ASSERT_TRUE(found_uphill); +      } +  } +} diff --git a/tests/ice40/main.cpp b/tests/ice40/main.cc index b8d22138..465bcd41 100644 --- a/tests/ice40/main.cpp +++ b/tests/ice40/main.cc @@ -1,18 +1,7 @@  #include "gtest/gtest.h" -  #include <vector>  int main(int argc, char **argv) {    ::testing::InitGoogleTest(&argc, argv);    return RUN_ALL_TESTS();  } - -TEST(example, sum_zero) { -  auto result = 0; -  ASSERT_EQ(result, 0); -} - -TEST(example, sum_five) { -  auto result = 15; -  ASSERT_EQ(result, 15); -} diff --git a/tests/ice40/up5k.cc b/tests/ice40/up5k.cc new file mode 100644 index 00000000..eb6dd732 --- /dev/null +++ b/tests/ice40/up5k.cc @@ -0,0 +1,88 @@ +#include "gtest/gtest.h" +#include "nextpnr.h" +#include <vector> + +USING_NEXTPNR_NAMESPACE + +class UP5KTest : public ::testing::Test { + protected: +  virtual void SetUp()  +  {     +    chipArgs.type = ChipArgs::UP5K; +    design = new Design(chipArgs); +  } +   +  virtual void TearDown() { +    delete design; +  } + +  ChipArgs chipArgs; +  Design *design; +}; + +TEST_F(UP5KTest, bel_names)  +{ +  int bel_count = 0; +  for (auto bel : design->chip.getBels()) { +      auto name = design->chip.getBelName(bel); +      ASSERT_EQ(bel,design->chip.getBelByName(name)); +      bel_count++; +  } +  ASSERT_EQ(bel_count,5414); +} + +TEST_F(UP5KTest, wire_names)  +{ +  int wire_count = 0; +  for (auto wire : design->chip.getWires()) { +      auto name = design->chip.getWireName(wire); +      assert(wire == design->chip.getWireByName(name)); +      wire_count++; +  } +  ASSERT_EQ(wire_count,103383); +} + +TEST_F(UP5KTest, pip_names)  +{ +  int pip_count = 0; +  for (auto pip : design->chip.getPips()) { +      auto name = design->chip.getPipName(pip); +      assert(pip == design->chip.getPipByName(name)); +      pip_count++; +  } +  ASSERT_EQ(pip_count,1219104); +} + +TEST_F(UP5KTest, uphill_to_downhill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto uphill_pip : design->chip.getPipsUphill(dst)) { +          bool found_downhill = false; +          for (auto downhill_pip : design->chip.getPipsDownhill( +                        design->chip.getPipSrcWire(uphill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_downhill); +                  found_downhill = true; +              } +          } +          ASSERT_TRUE(found_downhill); +      } +  } +} + +TEST_F(UP5KTest, downhill_to_uphill)  +{ +  for (auto dst : design->chip.getWires()) { +      for (auto downhill_pip : design->chip.getPipsDownhill(dst)) { +          bool found_uphill = false; +          for (auto uphill_pip : design->chip.getPipsUphill( +                        design->chip.getPipDstWire(downhill_pip))) { +              if (uphill_pip == downhill_pip) { +                  ASSERT_FALSE(found_uphill); +                  found_uphill = true; +              } +          } +          ASSERT_TRUE(found_uphill); +      } +  } +} | 
