/* * * Copyright (C) 2017-2020 The Project X-Ray Authors. * * Use of this source code is governed by a ISC-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/ISC * * SPDX-License-Identifier: ISC */ #include #include #include #include TEST(SegbitsFileReaderTest, NonExistantFileReturnsNull) { EXPECT_FALSE( prjxray::SegbitsFileReader::InitWithFile("does_not_exist")); } TEST(SegbitsFileReaderTest, ZeroLengthFileYieldsNoItems) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile("empty_file"); ASSERT_TRUE(segbits_reader); EXPECT_EQ(segbits_reader->begin(), segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithOneEntry) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile("one_entry.segbits"); ASSERT_TRUE(segbits_reader); auto begin_iter = segbits_reader->begin(); EXPECT_EQ(begin_iter->tag(), "CLBLL_L.SLICEL_X0.A5FF.ZINI"); EXPECT_EQ(begin_iter->bit(), "31_06"); EXPECT_EQ(++begin_iter, segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithOneEntryWithEmptyTag) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile( "one_entry_empty_tag.segbits"); ASSERT_TRUE(segbits_reader); auto begin_iter = segbits_reader->begin(); EXPECT_EQ(begin_iter->tag(), ""); EXPECT_EQ(begin_iter->bit(), "31_06"); EXPECT_EQ(++begin_iter, segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithOneEntryMissingBit) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile( "one_entry_missing_bit.segbits"); ASSERT_TRUE(segbits_reader); auto begin_iter = segbits_reader->begin(); EXPECT_EQ(begin_iter->tag(), "CLBLL_L.SLICEL_X0.A5FF.ZINI"); EXPECT_EQ(begin_iter->bit(), ""); EXPECT_EQ(++begin_iter, segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithOneEntryWithExtraWhitespace) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile( "one_entry_extra_whitespace.segbits"); ASSERT_TRUE(segbits_reader); auto begin_iter = segbits_reader->begin(); EXPECT_EQ(begin_iter->tag(), "CLBLL_L.SLICEL_X0.A5FF.ZINI"); EXPECT_EQ(begin_iter->bit(), "31_06"); EXPECT_EQ(++begin_iter, segbits_reader->end()); } TEST(SegbitsFileReaderTest, FileWithTwoEntries) { auto segbits_reader = prjxray::SegbitsFileReader::InitWithFile("two_entries.segbits"); ASSERT_TRUE(segbits_reader); auto iter = segbits_reader->begin(); EXPECT_EQ(iter->tag(), "CLBLL_L.SLICEL_X0.A5FF.ZINI"); EXPECT_EQ(iter->bit(), "31_06"); ++iter; EXPECT_EQ(iter->tag(), "CLBLL_L.SLICEL_X0.AFF.ZINI"); EXPECT_EQ(iter->bit(), "31_03"); EXPECT_EQ(++iter, segbits_reader->end()); }