mirror of
https://github.com/akuker/RASCSI.git
synced 2026-04-19 20:16:52 +00:00
Issues 1179 and 1182 (#1232)
* Update logging * Remove duplicate code * Update unit tests * Clean up includes * Merge ProtobufSerializer into protobuf_util namespace * Precompile regex * Add const * Add Split() convenience method, update log level/ID parsing * Move log.h to legacy folder * Elimininate gotos * Fixes for gcc 13 * Update compiler flags * Update default folder handling * Use references instead of pointers * Move code for better encapsulation * Move code * Remove unused method argument * Move device logger * Remove redundant to_string * Rename for consistency * Update handling of protobuf pointers * Simplify protobuf usage * Memory handling update * Add hasher
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
// SCSI Target Emulator PiSCSI
|
||||
// for Raspberry Pi
|
||||
//
|
||||
// Copyright (C) 2022 Uwe Seimet
|
||||
// Copyright (C) 2022-2023 Uwe Seimet
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
@@ -94,3 +94,50 @@ TEST(PhaseHandlerTest, Phases)
|
||||
EXPECT_FALSE(handler.IsDataOut());
|
||||
EXPECT_FALSE(handler.IsMsgIn());
|
||||
}
|
||||
|
||||
TEST(PhaseHandlerTest, ProcessPhase)
|
||||
{
|
||||
MockPhaseHandler handler;
|
||||
|
||||
handler.SetPhase(phase_t::selection);
|
||||
EXPECT_CALL(handler, Selection);
|
||||
handler.ProcessPhase();
|
||||
|
||||
handler.SetPhase(phase_t::busfree);
|
||||
EXPECT_CALL(handler, BusFree);
|
||||
handler.ProcessPhase();
|
||||
|
||||
handler.SetPhase(phase_t::datain);
|
||||
EXPECT_CALL(handler, DataIn);
|
||||
handler.ProcessPhase();
|
||||
|
||||
handler.SetPhase(phase_t::dataout);
|
||||
EXPECT_CALL(handler, DataOut);
|
||||
handler.ProcessPhase();
|
||||
|
||||
handler.SetPhase(phase_t::command);
|
||||
EXPECT_CALL(handler, Command);
|
||||
handler.ProcessPhase();
|
||||
|
||||
handler.SetPhase(phase_t::status);
|
||||
EXPECT_CALL(handler, Status);
|
||||
handler.ProcessPhase();
|
||||
|
||||
handler.SetPhase(phase_t::msgin);
|
||||
EXPECT_CALL(handler, MsgIn);
|
||||
handler.ProcessPhase();
|
||||
|
||||
handler.SetPhase(phase_t::msgout);
|
||||
EXPECT_CALL(handler, MsgOut);
|
||||
handler.ProcessPhase();
|
||||
|
||||
handler.SetPhase(phase_t::reselection);
|
||||
EXPECT_THAT([&] { handler.ProcessPhase(); }, Throws<scsi_exception>(AllOf(
|
||||
Property(&scsi_exception::get_sense_key, sense_key::aborted_command),
|
||||
Property(&scsi_exception::get_asc, asc::no_additional_sense_information))));
|
||||
|
||||
handler.SetPhase(phase_t::reserved);
|
||||
EXPECT_THAT([&] { handler.ProcessPhase(); }, Throws<scsi_exception>(AllOf(
|
||||
Property(&scsi_exception::get_sense_key, sense_key::aborted_command),
|
||||
Property(&scsi_exception::get_asc, asc::no_additional_sense_information))));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user