|
@@ -0,0 +1,47 @@
|
|
|
|
+#include "test/framework/catch.hpp"
|
|
|
|
+#include "src/shellmatta_opt.c"
|
|
|
|
+#include <string.h>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+TEST_CASE( "shellmatta_opt peekNextHunk" ) {
|
|
|
|
+
|
|
|
|
+ char ret = 0;
|
|
|
|
+ shellmatta_instance_t inst;
|
|
|
|
+ char *dummyData = (char*) "Welcome... to Jurassic Park.\0 Remind me to thank John for a lovely weekend.";
|
|
|
|
+ char buffer[1024u];
|
|
|
|
+ memcpy(buffer, dummyData, strlen(dummyData));
|
|
|
|
+
|
|
|
|
+ inst.buffer = buffer;
|
|
|
|
+ inst.bufferSize = sizeof(buffer);
|
|
|
|
+ inst.inputCount = 28u;
|
|
|
|
+ inst.optionParser.nextOffset = 11u;
|
|
|
|
+
|
|
|
|
+ ret = peekNextHunk(&inst);
|
|
|
|
+ CHECK( ret == 't' );
|
|
|
|
+
|
|
|
|
+ inst.optionParser.nextOffset = 13u;
|
|
|
|
+ ret = peekNextHunk(&inst);
|
|
|
|
+ CHECK( ret == 'J' );
|
|
|
|
+
|
|
|
|
+ inst.optionParser.nextOffset = 22u;
|
|
|
|
+ ret = peekNextHunk(&inst);
|
|
|
|
+ CHECK( ret == 'P' );
|
|
|
|
+
|
|
|
|
+ inst.optionParser.nextOffset = 23u;
|
|
|
|
+ ret = peekNextHunk(&inst);
|
|
|
|
+ CHECK( ret == 'P' );
|
|
|
|
+
|
|
|
|
+ //Copy whole string including escape sequence
|
|
|
|
+ inst.inputCount = 77u;
|
|
|
|
+ memcpy(buffer, dummyData, 77u);
|
|
|
|
+
|
|
|
|
+ //Check for combination of \0 and space
|
|
|
|
+ inst.optionParser.nextOffset = 28u;
|
|
|
|
+ ret = peekNextHunk(&inst);
|
|
|
|
+ CHECK( ret == 'R' );
|
|
|
|
+
|
|
|
|
+ //Check for two spaces in a Row
|
|
|
|
+ inst.optionParser.nextOffset = 36u;
|
|
|
|
+ ret = peekNextHunk(&inst);
|
|
|
|
+ CHECK( ret == 'm' );
|
|
|
|
+}
|