mirror of
https://github.com/akuker/RASCSI.git
synced 2026-04-24 07:16:46 +00:00
Move sector sizes lists from DeviceFactory to the respective devices (#1323)
This commit is contained in:
@@ -39,41 +39,6 @@ TEST(DeviceFactoryTest, GetTypeForFile)
|
||||
EXPECT_EQ(device_factory.GetTypeForFile("test.iso.suffix"), UNDEFINED);
|
||||
}
|
||||
|
||||
TEST(DeviceFactoryTest, GetSectorSizes)
|
||||
{
|
||||
DeviceFactory device_factory;
|
||||
|
||||
unordered_set<uint32_t> sector_sizes = device_factory.GetSectorSizes(SCHD);
|
||||
EXPECT_EQ(4, sector_sizes.size());
|
||||
|
||||
EXPECT_TRUE(sector_sizes.contains(512));
|
||||
EXPECT_TRUE(sector_sizes.contains(1024));
|
||||
EXPECT_TRUE(sector_sizes.contains(2048));
|
||||
EXPECT_TRUE(sector_sizes.contains(4096));
|
||||
|
||||
sector_sizes = device_factory.GetSectorSizes(SCRM);
|
||||
EXPECT_EQ(4, sector_sizes.size());
|
||||
|
||||
EXPECT_TRUE(sector_sizes.contains(512));
|
||||
EXPECT_TRUE(sector_sizes.contains(1024));
|
||||
EXPECT_TRUE(sector_sizes.contains(2048));
|
||||
EXPECT_TRUE(sector_sizes.contains(4096));
|
||||
|
||||
sector_sizes = device_factory.GetSectorSizes(SCMO);
|
||||
EXPECT_EQ(4, sector_sizes.size());
|
||||
|
||||
EXPECT_TRUE(sector_sizes.contains(512));
|
||||
EXPECT_TRUE(sector_sizes.contains(1024));
|
||||
EXPECT_TRUE(sector_sizes.contains(2048));
|
||||
EXPECT_TRUE(sector_sizes.contains(4096));
|
||||
|
||||
sector_sizes = device_factory.GetSectorSizes(SCCD);
|
||||
EXPECT_EQ(2, sector_sizes.size());
|
||||
|
||||
EXPECT_TRUE(sector_sizes.contains(512));
|
||||
EXPECT_TRUE(sector_sizes.contains(2048));
|
||||
}
|
||||
|
||||
TEST(DeviceFactoryTest, GetExtensionMapping)
|
||||
{
|
||||
DeviceFactory device_factory;
|
||||
|
||||
+3
-10
@@ -774,14 +774,8 @@ TEST(DiskTest, SectorSize)
|
||||
{
|
||||
MockDisk disk;
|
||||
|
||||
unordered_set<uint32_t> sizes = { 512, 1024 };
|
||||
disk.SetSectorSizes(sizes);
|
||||
EXPECT_TRUE(disk.IsSectorSizeConfigurable());
|
||||
|
||||
sizes.clear();
|
||||
disk.SetSectorSizes(sizes);
|
||||
EXPECT_FALSE(disk.IsSectorSizeConfigurable());
|
||||
|
||||
disk.SetSectorSizeShiftCount(9);
|
||||
EXPECT_EQ(9, disk.GetSectorSizeShiftCount());
|
||||
EXPECT_EQ(512, disk.GetSectorSizeInBytes());
|
||||
@@ -815,13 +809,12 @@ TEST(DiskTest, SectorSize)
|
||||
|
||||
TEST(DiskTest, ConfiguredSectorSize)
|
||||
{
|
||||
DeviceFactory device_factory;
|
||||
MockSCSIHD disk(0, {}, false);
|
||||
MockSCSIHD disk(0, false);
|
||||
|
||||
EXPECT_TRUE(disk.SetConfiguredSectorSize(device_factory, 512));
|
||||
EXPECT_TRUE(disk.SetConfiguredSectorSize(512));
|
||||
EXPECT_EQ(512, disk.GetConfiguredSectorSize());
|
||||
|
||||
EXPECT_FALSE(disk.SetConfiguredSectorSize(device_factory, 1234));
|
||||
EXPECT_FALSE(disk.SetConfiguredSectorSize(1234));
|
||||
EXPECT_EQ(512, disk.GetConfiguredSectorSize());
|
||||
}
|
||||
|
||||
|
||||
+9
-3
@@ -352,7 +352,7 @@ public:
|
||||
MOCK_METHOD(void, FlushCache, (), (override));
|
||||
MOCK_METHOD(void, Open, (), (override));
|
||||
|
||||
MockDisk() : Disk(SCHD, 0) {}
|
||||
MockDisk() : Disk(SCHD, 0, { 512, 1024, 2048, 4096 }) {}
|
||||
~MockDisk() override = default;
|
||||
};
|
||||
|
||||
@@ -363,10 +363,15 @@ class MockSCSIHD : public SCSIHD //NOSONAR Ignore inheritance hierarchy depth in
|
||||
FRIEND_TEST(ScsiHdTest, FinalizeSetup);
|
||||
FRIEND_TEST(ScsiHdTest, GetProductData);
|
||||
FRIEND_TEST(ScsiHdTest, SetUpModePages);
|
||||
FRIEND_TEST(PiscsiExecutorTest, SetSectorSize);
|
||||
FRIEND_TEST(ScsiHdTest, GetSectorSizes);
|
||||
FRIEND_TEST(ScsiHdTest, ModeSelect);
|
||||
FRIEND_TEST(PiscsiExecutorTest, SetSectorSize);
|
||||
|
||||
using SCSIHD::SCSIHD;
|
||||
public:
|
||||
|
||||
MockSCSIHD(int lun, bool removable) : SCSIHD(lun, removable, scsi_level::scsi_2) {}
|
||||
explicit MockSCSIHD(const unordered_set<uint32_t>& sector_sizes) : SCSIHD(0, false, scsi_level::scsi_2, sector_sizes) {}
|
||||
~MockSCSIHD() override = default;
|
||||
};
|
||||
|
||||
class MockSCSIHD_NEC : public SCSIHD_NEC //NOSONAR Ignore inheritance hierarchy depth in unit tests
|
||||
@@ -382,6 +387,7 @@ class MockSCSIHD_NEC : public SCSIHD_NEC //NOSONAR Ignore inheritance hierarchy
|
||||
|
||||
class MockSCSICD : public SCSICD //NOSONAR Ignore inheritance hierarchy depth in unit tests
|
||||
{
|
||||
FRIEND_TEST(ScsiCdTest, GetSectorSizes);
|
||||
FRIEND_TEST(ScsiCdTest, SetUpModePages);
|
||||
FRIEND_TEST(ScsiCdTest, ReadToc);
|
||||
|
||||
|
||||
@@ -252,8 +252,6 @@ TEST(PiscsiExecutorTest, Attach)
|
||||
|
||||
TEST(PiscsiExecutorTest, Insert)
|
||||
{
|
||||
DeviceFactory device_factory;
|
||||
|
||||
auto bus = make_shared<MockBus>();
|
||||
ControllerManager controller_manager;
|
||||
auto [controller, device] = CreateDevice(SCHD);
|
||||
@@ -500,13 +498,17 @@ TEST(PiscsiExecutorTest, SetSectorSize)
|
||||
CommandContext context(command, "", "");
|
||||
|
||||
unordered_set<uint32_t> sizes;
|
||||
auto hd = make_shared<MockSCSIHD>(0, sizes, false);
|
||||
auto hd = make_shared<MockSCSIHD>(sizes);
|
||||
EXPECT_FALSE(executor.SetSectorSize(context, hd, 512));
|
||||
|
||||
sizes.insert(512);
|
||||
hd = make_shared<MockSCSIHD>(0, sizes, false);
|
||||
hd = make_shared<MockSCSIHD>(sizes);
|
||||
EXPECT_TRUE(executor.SetSectorSize(context, hd, 0));
|
||||
EXPECT_FALSE(executor.SetSectorSize(context, hd, 1));
|
||||
EXPECT_FALSE(executor.SetSectorSize(context, hd, 512));
|
||||
|
||||
sizes.insert(1024);
|
||||
hd = make_shared<MockSCSIHD>(sizes);
|
||||
EXPECT_TRUE(executor.SetSectorSize(context, hd, 512));
|
||||
}
|
||||
|
||||
|
||||
@@ -34,10 +34,21 @@ TEST(ScsiCdTest, Inquiry)
|
||||
TestInquiry::Inquiry(SCCD, device_type::cd_rom, scsi_level::scsi_1_ccs, "PiSCSI SCSI CD-ROM ", 0x1f, true, "file.is1");
|
||||
}
|
||||
|
||||
TEST(ScsiCdTest, GetSectorSizes)
|
||||
{
|
||||
MockSCSICD cd(0);
|
||||
|
||||
const auto& sector_sizes = cd.GetSupportedSectorSizes();
|
||||
EXPECT_EQ(2, sector_sizes.size());
|
||||
|
||||
EXPECT_TRUE(sector_sizes.contains(512));
|
||||
EXPECT_TRUE(sector_sizes.contains(2048));
|
||||
}
|
||||
|
||||
TEST(ScsiCdTest, SetUpModePages)
|
||||
{
|
||||
map<int, vector<byte>> pages;
|
||||
MockSCSICD cd(0, {});
|
||||
MockSCSICD cd(0);
|
||||
|
||||
// Non changeable
|
||||
cd.SetUpModePages(pages, 0x3f, false);
|
||||
@@ -51,10 +62,10 @@ TEST(ScsiCdTest, SetUpModePages)
|
||||
|
||||
TEST(ScsiCdTest, Open)
|
||||
{
|
||||
MockSCSICD cd_iso(0, {});
|
||||
MockSCSICD cd_cue(0, {});
|
||||
MockSCSICD cd_raw(0, {});
|
||||
MockSCSICD cd_physical(0, {});
|
||||
MockSCSICD cd_iso(0);
|
||||
MockSCSICD cd_cue(0);
|
||||
MockSCSICD cd_raw(0);
|
||||
MockSCSICD cd_physical(0);
|
||||
|
||||
EXPECT_THROW(cd_iso.Open(), io_exception) << "Missing filename";
|
||||
|
||||
@@ -111,8 +122,7 @@ TEST(ScsiCdTest, Open)
|
||||
TEST(ScsiCdTest, ReadToc)
|
||||
{
|
||||
auto controller = make_shared<MockAbstractController>();
|
||||
const unordered_set<uint32_t> sector_sizes;
|
||||
auto cd = make_shared<MockSCSICD>(0, sector_sizes);
|
||||
auto cd = make_shared<MockSCSICD>(0);
|
||||
EXPECT_TRUE(cd->Init({}));
|
||||
|
||||
controller->AddDevice(cd);
|
||||
|
||||
@@ -30,14 +30,14 @@ TEST(ScsiHdTest, Inquiry)
|
||||
|
||||
TEST(ScsiHdTest, SupportsSaveParameters)
|
||||
{
|
||||
MockSCSIHD hd(0, {}, false);
|
||||
MockSCSIHD hd(0, false);
|
||||
|
||||
EXPECT_TRUE(hd.SupportsSaveParameters());
|
||||
}
|
||||
|
||||
TEST(ScsiHdTest, FinalizeSetup)
|
||||
{
|
||||
MockSCSIHD hd(0, {}, false);
|
||||
MockSCSIHD hd(0, false);
|
||||
|
||||
hd.SetSectorSizeInBytes(1024);
|
||||
EXPECT_THROW(hd.FinalizeSetup(0), io_exception) << "Device has 0 blocks";
|
||||
@@ -45,9 +45,9 @@ TEST(ScsiHdTest, FinalizeSetup)
|
||||
|
||||
TEST(ScsiHdTest, GetProductData)
|
||||
{
|
||||
MockSCSIHD hd_kb(0, {}, false);
|
||||
MockSCSIHD hd_mb(0, {}, false);
|
||||
MockSCSIHD hd_gb(0, {}, false);
|
||||
MockSCSIHD hd_kb(0, false);
|
||||
MockSCSIHD hd_mb(0, false);
|
||||
MockSCSIHD hd_gb(0, false);
|
||||
|
||||
const path filename = CreateTempFile(1);
|
||||
hd_kb.SetFilename(string(filename));
|
||||
@@ -73,10 +73,23 @@ TEST(ScsiHdTest, GetProductData)
|
||||
remove(filename);
|
||||
}
|
||||
|
||||
TEST(ScsiHdTest, GetSectorSizes)
|
||||
{
|
||||
MockSCSIHD hd(0, false);
|
||||
|
||||
const auto& sector_sizes = hd.GetSupportedSectorSizes();
|
||||
EXPECT_EQ(4, sector_sizes.size());
|
||||
|
||||
EXPECT_TRUE(sector_sizes.contains(512));
|
||||
EXPECT_TRUE(sector_sizes.contains(1024));
|
||||
EXPECT_TRUE(sector_sizes.contains(2048));
|
||||
EXPECT_TRUE(sector_sizes.contains(4096));
|
||||
}
|
||||
|
||||
TEST(ScsiHdTest, SetUpModePages)
|
||||
{
|
||||
map<int, vector<byte>> pages;
|
||||
MockSCSIHD hd(0, {}, false);
|
||||
MockSCSIHD hd(0, false);
|
||||
|
||||
// Non changeable
|
||||
hd.SetUpModePages(pages, 0x3f, false);
|
||||
@@ -90,7 +103,7 @@ TEST(ScsiHdTest, SetUpModePages)
|
||||
|
||||
TEST(ScsiHdTest, ModeSelect)
|
||||
{
|
||||
MockSCSIHD hd(0, { 512 }, false);
|
||||
MockSCSIHD hd({ 512 });
|
||||
vector<int> cmd(10);
|
||||
vector<uint8_t> buf(255);
|
||||
|
||||
|
||||
@@ -28,15 +28,28 @@ TEST(ScsiMoTest, Inquiry)
|
||||
TEST(ScsiMoTest, SupportsSaveParameters)
|
||||
{
|
||||
map<int, vector<byte>> pages;
|
||||
MockSCSIMO mo(0, {});
|
||||
MockSCSIMO mo(0);
|
||||
|
||||
EXPECT_TRUE(mo.SupportsSaveParameters());
|
||||
}
|
||||
|
||||
TEST(ScsiMoTest, GetSectorSizes)
|
||||
{
|
||||
MockSCSIMO mo(0);
|
||||
|
||||
const auto& sector_sizes = mo.GetSupportedSectorSizes();
|
||||
EXPECT_EQ(4, sector_sizes.size());
|
||||
|
||||
EXPECT_TRUE(sector_sizes.contains(512));
|
||||
EXPECT_TRUE(sector_sizes.contains(1024));
|
||||
EXPECT_TRUE(sector_sizes.contains(2048));
|
||||
EXPECT_TRUE(sector_sizes.contains(4096));
|
||||
}
|
||||
|
||||
TEST(ScsiMoTest, SetUpModePages)
|
||||
{
|
||||
map<int, vector<byte>> pages;
|
||||
MockSCSIMO mo(0, {});
|
||||
MockSCSIMO mo(0);
|
||||
|
||||
// Non changeable
|
||||
mo.SetUpModePages(pages, 0x3f, false);
|
||||
@@ -51,7 +64,7 @@ TEST(ScsiMoTest, SetUpModePages)
|
||||
TEST(ScsiMoTest, TestAddVendorPage)
|
||||
{
|
||||
map<int, vector<byte>> pages;
|
||||
MockSCSIMO mo(0, {});
|
||||
MockSCSIMO mo(0);
|
||||
|
||||
mo.SetReady(true);
|
||||
mo.SetUpModePages(pages, 0x21, false);
|
||||
@@ -122,7 +135,7 @@ TEST(ScsiMoTest, TestAddVendorPage)
|
||||
|
||||
TEST(ScsiMoTest, ModeSelect)
|
||||
{
|
||||
MockSCSIMO mo(0, { 1024, 2048 });
|
||||
MockSCSIMO mo(0);
|
||||
vector<int> cmd(10);
|
||||
vector<uint8_t> buf(255);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user