2022-10-04 15:23:42 +00:00
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
//
|
2022-12-05 17:58:23 +00:00
|
|
|
// SCSI Target Emulator PiSCSI
|
2022-10-04 15:23:42 +00:00
|
|
|
// for Raspberry Pi
|
|
|
|
//
|
|
|
|
// Copyright (C) 2022 Uwe Seimet
|
|
|
|
//
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
#include "mocks.h"
|
|
|
|
#include "controllers/phase_handler.h"
|
|
|
|
|
|
|
|
TEST(PhaseHandlerTest, Phases)
|
|
|
|
{
|
|
|
|
MockPhaseHandler handler;
|
|
|
|
|
2022-12-03 04:20:27 +00:00
|
|
|
handler.SetPhase(phase_t::selection);
|
2022-10-04 15:23:42 +00:00
|
|
|
EXPECT_TRUE(handler.IsSelection());
|
2022-10-08 17:26:04 +00:00
|
|
|
EXPECT_FALSE(handler.IsBusFree());
|
|
|
|
EXPECT_FALSE(handler.IsCommand());
|
|
|
|
EXPECT_FALSE(handler.IsStatus());
|
|
|
|
EXPECT_FALSE(handler.IsDataIn());
|
|
|
|
EXPECT_FALSE(handler.IsDataOut());
|
|
|
|
EXPECT_FALSE(handler.IsMsgIn());
|
|
|
|
EXPECT_FALSE(handler.IsMsgOut());
|
2022-10-04 15:23:42 +00:00
|
|
|
|
2022-12-03 04:20:27 +00:00
|
|
|
handler.SetPhase(phase_t::busfree);
|
2022-10-04 15:23:42 +00:00
|
|
|
EXPECT_TRUE(handler.IsBusFree());
|
2022-10-08 17:26:04 +00:00
|
|
|
EXPECT_FALSE(handler.IsSelection());
|
|
|
|
EXPECT_FALSE(handler.IsCommand());
|
|
|
|
EXPECT_FALSE(handler.IsStatus());
|
|
|
|
EXPECT_FALSE(handler.IsDataIn());
|
|
|
|
EXPECT_FALSE(handler.IsDataOut());
|
|
|
|
EXPECT_FALSE(handler.IsMsgIn());
|
|
|
|
EXPECT_FALSE(handler.IsMsgOut());
|
2022-10-04 15:23:42 +00:00
|
|
|
|
2022-12-03 04:20:27 +00:00
|
|
|
handler.SetPhase(phase_t::command);
|
2022-10-04 15:23:42 +00:00
|
|
|
EXPECT_TRUE(handler.IsCommand());
|
2022-10-08 17:26:04 +00:00
|
|
|
EXPECT_FALSE(handler.IsBusFree());
|
|
|
|
EXPECT_FALSE(handler.IsSelection());
|
|
|
|
EXPECT_FALSE(handler.IsStatus());
|
|
|
|
EXPECT_FALSE(handler.IsDataIn());
|
|
|
|
EXPECT_FALSE(handler.IsDataOut());
|
|
|
|
EXPECT_FALSE(handler.IsMsgIn());
|
|
|
|
EXPECT_FALSE(handler.IsMsgOut());
|
2022-10-04 15:23:42 +00:00
|
|
|
|
2022-12-03 04:20:27 +00:00
|
|
|
handler.SetPhase(phase_t::status);
|
2022-10-04 15:23:42 +00:00
|
|
|
EXPECT_TRUE(handler.IsStatus());
|
2022-10-08 17:26:04 +00:00
|
|
|
EXPECT_FALSE(handler.IsBusFree());
|
|
|
|
EXPECT_FALSE(handler.IsSelection());
|
|
|
|
EXPECT_FALSE(handler.IsCommand());
|
|
|
|
EXPECT_FALSE(handler.IsDataIn());
|
|
|
|
EXPECT_FALSE(handler.IsDataOut());
|
|
|
|
EXPECT_FALSE(handler.IsMsgIn());
|
|
|
|
EXPECT_FALSE(handler.IsMsgOut());
|
2022-10-04 15:23:42 +00:00
|
|
|
|
2022-12-03 04:20:27 +00:00
|
|
|
handler.SetPhase(phase_t::datain);
|
2022-10-04 15:23:42 +00:00
|
|
|
EXPECT_TRUE(handler.IsDataIn());
|
2022-10-08 17:26:04 +00:00
|
|
|
EXPECT_FALSE(handler.IsBusFree());
|
|
|
|
EXPECT_FALSE(handler.IsSelection());
|
|
|
|
EXPECT_FALSE(handler.IsCommand());
|
|
|
|
EXPECT_FALSE(handler.IsStatus());
|
|
|
|
EXPECT_FALSE(handler.IsDataOut());
|
|
|
|
EXPECT_FALSE(handler.IsMsgIn());
|
|
|
|
EXPECT_FALSE(handler.IsMsgOut());
|
2022-10-04 15:23:42 +00:00
|
|
|
|
2022-12-03 04:20:27 +00:00
|
|
|
handler.SetPhase(phase_t::dataout);
|
2022-10-04 15:23:42 +00:00
|
|
|
EXPECT_TRUE(handler.IsDataOut());
|
2022-10-08 17:26:04 +00:00
|
|
|
EXPECT_FALSE(handler.IsBusFree());
|
|
|
|
EXPECT_FALSE(handler.IsSelection());
|
|
|
|
EXPECT_FALSE(handler.IsCommand());
|
|
|
|
EXPECT_FALSE(handler.IsStatus());
|
|
|
|
EXPECT_FALSE(handler.IsDataIn());
|
|
|
|
EXPECT_FALSE(handler.IsMsgIn());
|
|
|
|
EXPECT_FALSE(handler.IsMsgOut());
|
2022-10-04 15:23:42 +00:00
|
|
|
|
2022-12-03 04:20:27 +00:00
|
|
|
handler.SetPhase(phase_t::msgin);
|
2022-10-04 15:23:42 +00:00
|
|
|
EXPECT_TRUE(handler.IsMsgIn());
|
2022-10-08 17:26:04 +00:00
|
|
|
EXPECT_FALSE(handler.IsBusFree());
|
|
|
|
EXPECT_FALSE(handler.IsSelection());
|
|
|
|
EXPECT_FALSE(handler.IsCommand());
|
|
|
|
EXPECT_FALSE(handler.IsStatus());
|
|
|
|
EXPECT_FALSE(handler.IsDataIn());
|
|
|
|
EXPECT_FALSE(handler.IsDataOut());
|
|
|
|
EXPECT_FALSE(handler.IsMsgOut());
|
2022-10-04 15:23:42 +00:00
|
|
|
|
2022-12-03 04:20:27 +00:00
|
|
|
handler.SetPhase(phase_t::msgout);
|
2022-10-04 15:23:42 +00:00
|
|
|
EXPECT_TRUE(handler.IsMsgOut());
|
2022-10-08 17:26:04 +00:00
|
|
|
EXPECT_FALSE(handler.IsBusFree());
|
|
|
|
EXPECT_FALSE(handler.IsSelection());
|
|
|
|
EXPECT_FALSE(handler.IsCommand());
|
|
|
|
EXPECT_FALSE(handler.IsStatus());
|
|
|
|
EXPECT_FALSE(handler.IsDataIn());
|
|
|
|
EXPECT_FALSE(handler.IsDataOut());
|
|
|
|
EXPECT_FALSE(handler.IsMsgIn());
|
2022-10-04 15:23:42 +00:00
|
|
|
}
|