FB_TestStreamBuffer Function Block
Extends TcUnit.FB_TestSuite
Contains tests that verify the StreamBuffer function block methods
Variables
| Name | Type | Description |
|---|---|---|
Buffer |
ARRAY [0..TcUnit.GVL_Param_TcUnit.XUnitBufferSize - 1] OF BYTE |
Methods
Setup
PRIVATE
Implementation
// Clear buffer
MEMSET(ADR(Buffer), 0, SIZEOF(Buffer));
Test_Append
PRIVATE
Implementation
TEST('Test_Append');
Setup();
Stream.Setbuffer(ADR(Buffer), SIZEOF(Buffer));
Stream.Append := Str1;
Stream.Append := Str2;
// Search
TestResult := (Stream.Find(SearchString := Search, StartPos := 1) >= 0);
AssertTrue(Condition := TestResult,
Message := 'Append failed');
TEST_FINISHED();
Test_BufferOverflow
Implementation
TEST('Test_BufferOverflow');
Setup();
Stream.SetBuffer(ADR(SmallBuffer), SIZEOF(SmallBuffer));
Stream.Append := Str1;
Stream.Append := Str2;
AssertEquals_UDINT(SMALL_BUFFER_SIZE, Stream.Length, 'Stream not at maximum length');
Cpy := Stream.Copy(StartPos := 1, EndPos := Stream.Length, CopyLen => CopyLen);
// Expected behavior: the buffer receives up to Buffer Size - 1 of string, the last byte is NULL character (termination)
AssertEquals_STRING(Expected := 'abcdefuwx',
Actual := Cpy,
Message := 'Stream was not truncated as expected');
TEST_FINISHED();
Test_BufferSize
PRIVATE
Implementation
TEST('Test_BufferSize');
Setup();
Stream.Setbuffer(ADR(Buffer), SIZEOF(Buffer));
// Compare initialised buffersize with expected buffersize
AssertEquals_UDINT(Expected := GVL_Param_TcUnit.xUnitBufferSize,
Actual := Stream.BufferSize,
Message := 'BufferSize differs');
TEST_FINISHED();
Test_Clear
PRIVATE
Implementation
TEST('Test_Clear');
Setup();
Stream.Setbuffer(ADR(Buffer), SIZEOF(Buffer));
Stream.Append := Str;
Stream.Clear();
AssertEquals_UDINT(Expected := 0,
Actual := Stream.Length,
Message := 'Length differs');
TEST_FINISHED();
Test_Copy
PRIVATE
Implementation
TEST('Test_Copy');
Setup();
Stream.Setbuffer(ADR(Buffer), SIZEOF(Buffer));
Stream.Append := Str1;
Stream.Append := Str2;
// Copy from 8th char 3 chars (8+3=11), should be 'qui'
Cpy := Stream.Copy(StartPos := 8, EndPos := 11, CopyLen => CopyLen);
AssertEquals_STRING(Expected := 'qui',
Actual := Cpy,
Message := 'Copy Failed');
TEST_FINISHED();
Test_CutOff
PRIVATE
Implementation
TEST('Test_CutOff');
Setup();
Stream.Setbuffer(ADR(Buffer), SIZEOF(Buffer));
// Last char - 2 chars = 3 chars in total
Stream.Append := Str;
Cut := (Stream.Length - 2);
// CutOff should contain 'ars'
CutOff := Stream.CutOff(StartPos := Cut, CutLen => Length);
Expected := Stream.Copy(StartPos := 1, EndPos := Stream.Length);
AssertEquals_String(Expected := Expected,
Actual := 'vita est dolor sic',
Message := 'CutOff string differs');
TEST_FINISHED();
Test_Find
PRIVATE
Implementation
TEST('Test_Find');
Setup();
Stream.Setbuffer(ADR(Buffer), SIZEOF(Buffer));
Stream.Append:= Str;
// Start search at 1st char
TestResult := (Stream.Find(SearchString := Str, StartPos := 1 ) >= 0);
AssertTrue(Condition := TestResult,
Message := 'Find Failed');
TEST_FINISHED();
Test_Length
PRIVATE
Implementation
TEST('Test_Length');
Setup();
Stream.Setbuffer(ADR(Buffer), SIZEOF(Buffer));
Stream.Append := Str;
Length := TO_UDINT(LEN(Str));
AssertEquals_UDINT(Expected := length,
Actual := Stream.Length,
Message := 'Length differs');
TEST_FINISHED();
Used by
Declaration source
// Contains tests that verify the StreamBuffer function block methods
FUNCTION_BLOCK FB_TestStreamBuffer EXTENDS TcUnit.FB_TestSuite
VAR
Buffer: ARRAY [0..TcUnit.GVL_Param_TcUnit.XUnitBufferSize - 1] OF BYTE;
END_VAR