diff --git a/cpp/devices/scsicd.cpp b/cpp/devices/scsicd.cpp index a14e2c1e..71ffccc4 100644 --- a/cpp/devices/scsicd.cpp +++ b/cpp/devices/scsicd.cpp @@ -179,11 +179,7 @@ void SCSICD::ModeSelect(scsi_command cmd, cdb_t cdb, span buf, in ClearTrack(); CreateDataTrack(); FlushCache(); - string filename; - if ((filename = GetFilename()) != "") { - // DiskCache fails without a file to compute the cache size - ResizeCache(filename, GetRawMode()); - } + ResizeCache(GetFilename(), GetRawMode()); } if (const string result = scsi_command_util::ModeSelect(cmd, cdb, buf, length, sector_size); diff --git a/cpp/test/scsicd_test.cpp b/cpp/test/scsicd_test.cpp index cbef92bd..dd4d39ea 100644 --- a/cpp/test/scsicd_test.cpp +++ b/cpp/test/scsicd_test.cpp @@ -137,11 +137,9 @@ TEST(ScsiCdTest, ReadToc) TEST(ScsiCdTest, ModeSelect) { MockSCSICD cd(0); - MockSCSICD cd1(0); vector cmd(6); vector buf(255); - // dummy file for DiskCache resize after sector size change path filename = CreateTempFile(2* 2048); cd.SetFilename(string(filename)); cd.Open(); @@ -159,30 +157,7 @@ TEST(ScsiCdTest, ModeSelect) buf[12] = 0x01; EXPECT_NO_THROW(cd.ModeSelect(scsi_command::eCmdModeSelect6, cmd, buf, 255)) << "MODE SELECT(6) with sector size 2048 is supported"; - // 512 bytes per sector - ModeSelect6 + // 512 bytes per sector buf[10] = 0x02; EXPECT_NO_THROW(cd.ModeSelect(scsi_command::eCmdModeSelect6, cmd, buf, 255)) << "MODE SELECT(6) with sector size 512 is supported"; - - // 2048 bytes per sector - ModeSelect6 - buf[10] = 0x08; - EXPECT_NO_THROW(cd.ModeSelect(scsi_command::eCmdModeSelect6, cmd, buf, 255)) << "MODE SELECT(6) with sector size 2048 is supported"; - - // 512 bytes per sector - ModeSelect10 - buf[10] = 0x02; - EXPECT_NO_THROW(cd.ModeSelect(scsi_command::eCmdModeSelect10, cmd, buf, 255)) << "MODE SELECT(10) with sector size 512 is supported"; - - // unsupported sector size - ModeSelect6 - buf[10] = 0x04; - EXPECT_THROW(cd.ModeSelect(scsi_command::eCmdModeSelect6, cmd, buf, 255), io_exception) << "MODE SELECT(6) with sector size 1024 is unsupported"; - - // sector size not multiple of 512 - ModeSelect6 - buf[10] = 0x03; - EXPECT_THROW(cd.ModeSelect(scsi_command::eCmdModeSelect6, cmd, buf, 255), io_exception) << "MODE SELECT(6) with sector size 768 is unsupported"; - - // cd1 has no dummy file attached, simulating an empty CD drive - cd1.SetSectorSizeInBytes(2048); - - // 512 bytes per sector - ModeSelect6 - buf[10] = 0x02; - EXPECT_NO_THROW(cd1.ModeSelect(scsi_command::eCmdModeSelect6, cmd, buf, 255)) << "MODE SELECT(6), emtpy drive, with sector size 512 is supported"; }