#include "test/framework/catch.hpp" #include "src/shellmatta_opt.c" #include 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' ); }