1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00

Fixed test ShouldFail cases

This commit is contained in:
Brian Fiete 2021-11-03 11:05:31 -07:00
parent a9872fcbac
commit 6c0b329d57
4 changed files with 38 additions and 12 deletions

View file

@ -214,18 +214,20 @@ static void TestReadCmd(Beefy::String& str);
static void Internal_FatalError(const char* error) static void Internal_FatalError(const char* error)
{ {
if (gClientPipe != NULL) if ((gClientPipe != NULL) && (!gTestBreakOnFailure))
{ {
Beefy::String str = ":TestFatal\t"; Beefy::String str = ":TestFatal\t";
str += error; str += error;
str.Replace('\n', '\r');
str += "\n"; str += "\n";
TestString(str); TestString(str);
Beefy::String result; Beefy::String result;
TestReadCmd(result); TestReadCmd(result);
exit(1);
} }
else
BfpSystem_FatalError(error, "BEEF FATAL ERROR"); BfpSystem_FatalError(error, "BEEF FATAL ERROR");
} }
extern "C" BFRT_EXPORT int BF_CALLTYPE ftoa(float val, char* str) extern "C" BFRT_EXPORT int BF_CALLTYPE ftoa(float val, char* str)
@ -396,6 +398,13 @@ void* Internal::UnsafeCastToPtr(Object* obj)
void Internal::ThrowIndexOutOfRange(intptr stackOffset) void Internal::ThrowIndexOutOfRange(intptr stackOffset)
{ {
if (gClientPipe != NULL)
{
Beefy::String str = ":TestFail\tIndex out of range\n";
TestString(str);
exit(1);
}
if ((stackOffset != -1) && (::IsDebuggerPresent())) if ((stackOffset != -1) && (::IsDebuggerPresent()))
{ {
SETUP_ERROR("Index out of range", (int)(2 + stackOffset)); SETUP_ERROR("Index out of range", (int)(2 + stackOffset));
@ -406,7 +415,17 @@ void Internal::ThrowIndexOutOfRange(intptr stackOffset)
} }
void Internal::FatalError(bf::System::String* error, intptr stackOffset) void Internal::FatalError(bf::System::String* error, intptr stackOffset)
{ {
if (gClientPipe != NULL)
{
Beefy::String str = ":TestFail\t";
str += error->CStr();
str.Replace('\n', '\r');
str += "\n";
TestString(str);
exit(1);
}
if ((stackOffset != -1) && (::IsDebuggerPresent())) if ((stackOffset != -1) && (::IsDebuggerPresent()))
{ {
SETUP_ERROR(error->CStr(), (int)(2 + stackOffset)); SETUP_ERROR(error->CStr(), (int)(2 + stackOffset));
@ -640,6 +659,7 @@ void Internal::Test_Error(char* error)
{ {
Beefy::String str = ":TestFail\t"; Beefy::String str = ":TestFail\t";
str += error; str += error;
str.Replace('\n', '\r');
str += "\n"; str += "\n";
TestString(str); TestString(str);
} }
@ -651,12 +671,7 @@ void Internal::Test_Write(char* strPtr)
{ {
Beefy::String str = ":TestWrite\t"; Beefy::String str = ":TestWrite\t";
str += strPtr; str += strPtr;
for (char& c : str) str.Replace('\n', '\r');
{
if (c == '\n')
c = '\r';
}
str += "\n"; str += "\n";
TestString(str); TestString(str);
} }

View file

@ -690,6 +690,16 @@ void StringImpl::ReplaceLargerHelper(const StringView& find, const StringView& r
mLength = (int_strsize)destLength; mLength = (int_strsize)destLength;
} }
void StringImpl::Replace(char find, char replace)
{
auto ptr = GetMutablePtr();
for (int i = 0; i < mLength; i++)
{
if (ptr[i] == find)
ptr[i] = replace;
}
}
void StringImpl::Replace(const StringView& find, const StringView & replace) void StringImpl::Replace(const StringView& find, const StringView & replace)
{ {
if (replace.mLength > find.mLength) if (replace.mLength > find.mLength)

View file

@ -1015,6 +1015,7 @@ public:
} }
void ReplaceLargerHelper(const StringView& find, const StringView& replace); void ReplaceLargerHelper(const StringView& find, const StringView& replace);
void Replace(char find, char replace);
void Replace(const StringView& find, const StringView& replace); void Replace(const StringView& find, const StringView& replace);
void TrimEnd(); void TrimEnd();
void TrimStart(); void TrimStart();

View file

@ -301,7 +301,7 @@ namespace IDE
testEntry.mExecuted = true; testEntry.mExecuted = true;
String clientCmd = scope $":TestRun\t{testInstance.mCurTestIdx}"; String clientCmd = scope $":TestRun\t{testInstance.mCurTestIdx}";
if ((gApp.mTestBreakOnFailure) && (mDebug)) if ((gApp.mTestBreakOnFailure) && (mDebug) && (!testEntry.mShouldFail))
clientCmd.Append("\tFailBreak"); clientCmd.Append("\tFailBreak");
clientCmd.Append("\n"); clientCmd.Append("\n");