bug fix for UsefulBuf_CopyOffset; complete tests for UsefulBuf
diff --git a/test/UsefulBuf_Tests.c b/test/UsefulBuf_Tests.c
index 05d04a2..f79c08c 100644
--- a/test/UsefulBuf_Tests.c
+++ b/test/UsefulBuf_Tests.c
@@ -64,7 +64,7 @@
There is nothing adversarial in this test
*/
-const char * NonAdversarialUOBTest()
+const char * UOBTest_NonAdversarial()
{
const char *szReturn = NULL;
@@ -146,8 +146,6 @@
// append the bytes
UsefulOutBuf_AppendData(pUOB, (const uint8_t *)"bluster", num);
-
- // TODO: test UsefulOutBuf_AppendString
// check error status after
if(UsefulOutBuf_GetError(pUOB) != expected)
@@ -171,8 +169,6 @@
UsefulOutBuf_InsertData(pUOB, (const uint8_t *)"bluster", num, pos);
- // TODO: test UsefulOutBuf_InsertString
-
if(UsefulOutBuf_GetError(pUOB) != expected)
return 1;
@@ -191,7 +187,7 @@
*/
-const char *BoundaryConditionsTest()
+const char *UOBTest_BoundaryConditionsTest()
{
UsefulBuf_MakeStackUB(outbuf,2);
@@ -238,9 +234,9 @@
UsefulOutBuf_Reset(&UOB);
// put data in the buffer
- UsefulOutBuf_AppendData(&UOB, "abc123", 6);
+ UsefulOutBuf_AppendString(&UOB, "abc123");
- UsefulOutBuf_InsertData(&UOB, "xyz*&^", 6, 0);
+ UsefulOutBuf_InsertString(&UOB, "xyz*&^", 0);
if(!UsefulOutBuf_GetError(&UOB)) {
return "insert with data should have failed";
@@ -286,7 +282,14 @@
if(UsefulOutBuf_RoomLeft(&UOB) != 10)
return "room left failed";
- // TODO: test UsefulOutBuf_WillItFit
+ if(!UsefulOutBuf_WillItFit(&UOB, 9)) {
+ return "it did not fit";
+ }
+
+ if(UsefulOutBuf_WillItFit(&UOB, 11)) {
+ return "it should have not fit";
+ }
+
// Next -- make sure that the magic number checking is working right
UOB.magic = 8888; // make magic bogus
@@ -399,14 +402,34 @@
return "Copy should have failed";
}
- // TODO: complete this test
- // UsefulBuf_CopyOffset();
- // TODO: complete this test
- // UsefulBuf_CopyPtr();
- // TODO: complete this test
- // UsefulBuf_Head();
- // TODO: complete this test
- // UsefulBuf_CopyPtr();
+ if(UsefulBuf_IsNULLC(UsefulBuf_CopyPtr(Temp2, "xx", 2))) {
+ return "CopyPtr failed";
+ }
+
+ UsefulBufC xxyy = UsefulBuf_CopyOffset(Temp2, 2, UsefulBuf_FromSZLiteral("yy"));
+ if(UsefulBuf_IsNULLC(xxyy)) {
+ return "CopyOffset Failed";
+ }
+
+ if(UsefulBuf_Compare(UsefulBuf_Head(xxyy, 3), UsefulBuf_FromSZLiteral("xxy"))) {
+ return "head failed";
+ }
+
+ if(UsefulBuf_Compare(UsefulBuf_Tail(xxyy, 1), UsefulBuf_FromSZLiteral("xyy"))) {
+ return "tail failed";
+ }
+
+ if(!UsefulBuf_IsNULLC(UsefulBuf_Head(xxyy, 5))) {
+ return "head should have failed";
+ }
+
+ if(!UsefulBuf_IsNULLC(UsefulBuf_Tail(xxyy, 5))) {
+ return "tail should have failed";
+ }
+
+ if(!UsefulBuf_IsNULLC(UsefulBuf_CopyOffset(Temp2, 100, UsefulBuf_FromSZLiteral("yy")))) {
+ return "Copy Offset should have failed";
+ }
// Try to copy into a NULL/empty buf and see failure
UsefulBuf UBNull = NULLUsefulBuf;
@@ -414,6 +437,7 @@
return "Copy to NULL should have failed";
}
+
// Try to set a NULL/empty buf; nothing should happen
UsefulBuf_Set(&UBNull, '+'); // This will crash on failure
@@ -561,7 +585,7 @@
}
-const char * UBIntegerFormatTests()
+const char * UIBTest_IntegerFormat()
{
UsefulOutBuf_MakeOnStack(UOB,100);
@@ -616,19 +640,56 @@
if(UsefulInputBuf_GetDouble(&UIB) != d) {
return "double out then in failed";
}
-
- // TODO: test UsefulInputBuf_Seek
- // TODO: test UsefulInputBuf_BytesUnconsumed
- // TODO: test UsefulInputBuf_BytesAvailable
- // TODO: test UsefulInputBuf_GetBytes
- // TODO: test UsefulInputBuf_GetUsefulBuf
- // TODO: test UsefulInputBuf_GetError
+ // Reset and go again for a few more tests
+ UsefulInputBuf_Init(&UIB, O);
+
+ UsefulBufC Four = UsefulInputBuf_GetUsefulBuf(&UIB, 4);
+ if(UsefulBuf_IsNULLC(Four)) {
+ return "Four is NULL";
+ }
+ if(UsefulBuf_Compare(Four, UsefulBuf_FromByteArrayLiteral(pExpectedNetworkOrder))) {
+ return "Four compare failed";
+ }
+
+ if(UsefulInputBuf_BytesUnconsumed(&UIB) != 23){
+ return "Wrong number of unconsumed bytes";
+ }
+
+ if(!UsefulInputBuf_BytesAvailable(&UIB, 23)){
+ return "Wrong number of bytes available I";
+ }
+
+ if(UsefulInputBuf_BytesAvailable(&UIB, 24)){
+ return "Wrong number of bytes available II";
+ }
+
+ UsefulInputBuf_Seek(&UIB, 0);
+
+ if(UsefulInputBuf_GetError(&UIB)) {
+ return "unexpected error after seek";
+ }
+
+ const uint8_t *pGetBytes = (const uint8_t *)UsefulInputBuf_GetBytes(&UIB, 4);
+ if(pGetBytes == NULL) {
+ return "GetBytes returns NULL";
+ }
+
+ if(memcmp(pGetBytes, pExpectedNetworkOrder, 4)) {
+ return "Got wrong bytes";
+ }
+
+ UsefulInputBuf_Seek(&UIB, 28);
+
+ if(!UsefulInputBuf_GetError(&UIB)) {
+ return "expected error after seek";
+ }
+
return NULL;
}
-const char *UBCopyUtilTest()
+const char *UBUTest_CopyUtil()
{
if(UsefulBufUtil_CopyFloatToUint32(65536.0F) != 0x47800000) {
return "CopyFloatToUint32 failed";
diff --git a/test/UsefulBuf_Tests.h b/test/UsefulBuf_Tests.h
index 7b0eab1..6de859f 100644
--- a/test/UsefulBuf_Tests.h
+++ b/test/UsefulBuf_Tests.h
@@ -56,18 +56,18 @@
#ifndef UsefulBuf_UsefulBuf_Tests_h
#define UsefulBuf_UsefulBuf_Tests_h
-const char * NonAdversarialUOBTest(void);
+const char * UOBTest_NonAdversarial(void);
const char * TestBasicSanity(void);
-const char * BoundaryConditionsTest(void);
+const char * UOBTest_BoundaryConditionsTest(void);
const char * UBMacroConversionsTest(void);
const char * UBUtilTests(void);
-const char * UBIntegerFormatTests(void);
+const char * UIBTest_IntegerFormat(void);
-const char * UBCopyUtilTest(void);
+const char * UBUTest_CopyUtil(void);
#endif
diff --git a/test/run_tests.c b/test/run_tests.c
index c86baa5..ae184d8 100644
--- a/test/run_tests.c
+++ b/test/run_tests.c
@@ -104,13 +104,13 @@
} test_entry2;
test_entry2 s_tests2[] = {
- TEST_ENTRY(UBCopyUtilTest),
- TEST_ENTRY(NonAdversarialUOBTest),
+ TEST_ENTRY(UBUTest_CopyUtil),
+ TEST_ENTRY(UOBTest_NonAdversarial),
TEST_ENTRY(TestBasicSanity),
- TEST_ENTRY(BoundaryConditionsTest),
+ TEST_ENTRY(UOBTest_BoundaryConditionsTest),
TEST_ENTRY(UBMacroConversionsTest),
TEST_ENTRY(UBUtilTests),
- TEST_ENTRY(UBIntegerFormatTests)
+ TEST_ENTRY(UIBTest_IntegerFormat)
};