#include "test/framework/catch.hpp" #include "src/shellmatta_opt.c" #include TEST_CASE( "shellmatta_opt peekNextHunk next char without space" ) { char ret = 0; shellmatta_instance_t inst; char *dummyData = (char*) "Welcome... to Jurassic Park."; 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' ); } TEST_CASE( "shellmatta_opt peekNextHunk next char with space" ) { char ret = 0; shellmatta_instance_t inst; char *dummyData = (char*) "Welcome... to Jurassic Park.\0"; char buffer[1024u]; memcpy(buffer, dummyData, strlen(dummyData)); inst.buffer = buffer; inst.bufferSize = sizeof(buffer); inst.inputCount = 28u; inst.optionParser.nextOffset = 13u; ret = peekNextHunk(&inst); CHECK( ret == 'J' ); } TEST_CASE( "shellmatta_opt peekNextHunk next hunk escape and space" ) { 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]; uint16_t stringsize = 77u; memcpy(buffer, dummyData, stringsize); inst.buffer = buffer; inst.bufferSize = sizeof(buffer); inst.inputCount = stringsize; inst.optionParser.nextOffset = 28u; ret = peekNextHunk(&inst); CHECK( ret == 'R' ); } TEST_CASE( "shellmatta_opt peekNextHunk next char with spaces" ) { 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]; uint16_t stringsize = 77u; memcpy(buffer, dummyData, stringsize); inst.buffer = buffer; inst.bufferSize = sizeof(buffer); inst.inputCount = stringsize; inst.optionParser.nextOffset = 36u; ret = peekNextHunk(&inst); CHECK( ret == 'm' ); }