Fixed broken arguments, added testing for arguments
This commit is contained in:
parent
3df863d285
commit
cf001272db
7
Makefile
7
Makefile
@ -17,12 +17,13 @@ test: testCompile testLink testExec
|
|||||||
testCompile:
|
testCompile:
|
||||||
gcc $(INC) $(UNITY) -g -c -o build/unity.o $(UNITYPATH)/unity.c
|
gcc $(INC) $(UNITY) -g -c -o build/unity.o $(UNITYPATH)/unity.c
|
||||||
gcc $(INC) -c -o build/main.o src/main.c
|
gcc $(INC) -c -o build/main.o src/main.c
|
||||||
gcc $(INC) -g -c -o build/fuse.o src/fuse.c
|
gcc $(INC) -c -o build/fuse.o src/fuse.c
|
||||||
|
gcc $(INC) -c -o build/fuseactions.o src/fuseactions.c
|
||||||
gcc $(INC) -g -c -o build/test.o test/test.c
|
gcc $(INC) -g -c -o build/test.o test/test.c
|
||||||
|
|
||||||
testLink:
|
testLink:
|
||||||
gcc -g -o bin/test.out build/fuse.o build/test.o build/unity.o
|
gcc -g -o bin/test.out build/fuseactions.o build/fuse.o build/test.o build/unity.o
|
||||||
gcc -o bin/fuse.out build/fuse.o build/main.o
|
gcc -o bin/fuse.out build/fuseactions.o build/fuse.o build/main.o
|
||||||
|
|
||||||
testExec:
|
testExec:
|
||||||
./bin/test.out
|
./bin/test.out
|
||||||
|
@ -18,6 +18,7 @@ typedef struct fuseArgStruct
|
|||||||
} fuseArgStruct;
|
} fuseArgStruct;
|
||||||
|
|
||||||
void Fuse(int argc, char* argv[]);
|
void Fuse(int argc, char* argv[]);
|
||||||
|
void FuseGetArgs(int argc, char* argv[], fuseArgStruct* fuseArgs);
|
||||||
void FuseCheckArgs(int argc, char* argv[], fuseArgStruct* fuseArgs);
|
void FuseCheckArgs(int argc, char* argv[], fuseArgStruct* fuseArgs);
|
||||||
void FuseGivenTest(fuseArgStruct* fuseArgs, char* programPath);
|
void FuseGivenTest(fuseArgStruct* fuseArgs, char* programPath);
|
||||||
void FuseStructInit(fuseArgStruct* fuseStruct);
|
void FuseStructInit(fuseArgStruct* fuseStruct);
|
||||||
|
39
src/fuse.c
39
src/fuse.c
@ -18,11 +18,42 @@ void Fuse(int argc, char* argv[])
|
|||||||
FuseGivenTest(&fuseArgs, argv[0]);
|
FuseGivenTest(&fuseArgs, argv[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// New method for getting arguments
|
||||||
|
void FuseGetArgs(int argc, char* argv[], fuseArgStruct* fuseArgs)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < argc; i++)
|
||||||
|
{
|
||||||
|
if (argv[i][0] == '-' && argv[i][1] == 'l')
|
||||||
|
fuseArgs->list = 1;
|
||||||
|
if (argv[i][0] == '-' && argv[i][1] == 'a')
|
||||||
|
{
|
||||||
|
fuseArgs->add = 1;
|
||||||
|
fuseArgs->toAdd = strdup(argv[i+1]);
|
||||||
|
}
|
||||||
|
if (argv[i][0] == '-' && argv[i][1] == 'r')
|
||||||
|
{
|
||||||
|
fuseArgs->remove = 1;
|
||||||
|
fuseArgs->toRemove = strdup(argv[i+1]);
|
||||||
|
}
|
||||||
|
if (argv[i][0] == '-' && argv[i][1] == 'e')
|
||||||
|
{
|
||||||
|
fuseArgs->extract = 1;
|
||||||
|
fuseArgs->toExtract = strdup(argv[i+1]);
|
||||||
|
}
|
||||||
|
if (argv[i][0] == '-' && argv[i][1] == 'f')
|
||||||
|
{
|
||||||
|
fuseArgs->filefsname = 1;
|
||||||
|
fuseArgs->fsname = strdup(argv[i+1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Originally given method for getting arguments
|
// Originally given method for getting arguments
|
||||||
|
// Depreciated
|
||||||
void FuseCheckArgs(int argc, char* argv[], fuseArgStruct* fuseArgs)
|
void FuseCheckArgs(int argc, char* argv[], fuseArgStruct* fuseArgs)
|
||||||
{
|
{
|
||||||
int opt;
|
int opt;
|
||||||
while ((opt = getopt(argc, argv, "la:r:e:")) != -1)
|
while ((opt = getopt(argc, argv, "la:r:e:f:")) != -1)
|
||||||
{
|
{
|
||||||
switch (opt)
|
switch (opt)
|
||||||
{
|
{
|
||||||
@ -41,6 +72,10 @@ void FuseCheckArgs(int argc, char* argv[], fuseArgStruct* fuseArgs)
|
|||||||
fuseArgs->extract = 1;
|
fuseArgs->extract = 1;
|
||||||
fuseArgs->toExtract = strdup(optarg);
|
fuseArgs->toExtract = strdup(optarg);
|
||||||
break;
|
break;
|
||||||
|
case 'f':
|
||||||
|
fuseArgs->filefsname = 1;
|
||||||
|
fuseArgs->fsname = strdup(optarg);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
FuseUsageError(argv[0]);
|
FuseUsageError(argv[0]);
|
||||||
}
|
}
|
||||||
@ -121,4 +156,4 @@ int zerosize(int fd)
|
|||||||
if(stats.st_size == 0)
|
if(stats.st_size == 0)
|
||||||
return 1;
|
return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
BIN
test/fakefs
Normal file
BIN
test/fakefs
Normal file
Binary file not shown.
47
test/test.c
Normal file
47
test/test.c
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#include <fcntl.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include "unity/unity.h"
|
||||||
|
#include "fuse.h"
|
||||||
|
#include "fuseactions.h"
|
||||||
|
|
||||||
|
fuseArgStruct dummyFuse;
|
||||||
|
int argc = 5;
|
||||||
|
char* argv[5];
|
||||||
|
|
||||||
|
void setUp(void)
|
||||||
|
{
|
||||||
|
FuseStructInit(&dummyFuse);
|
||||||
|
argv[0] = "bin/fuse.out";
|
||||||
|
argv[1] = "-l";
|
||||||
|
argv[2] = "test/test.txt";
|
||||||
|
argv[3] = "-f";
|
||||||
|
argv[4] = "test/fakefs";
|
||||||
|
}
|
||||||
|
|
||||||
|
void tearDown(void)
|
||||||
|
{
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Test_FuseGetArgs_Should_AddToDummy(void)
|
||||||
|
{
|
||||||
|
FuseGetArgs(argc, argv, &dummyFuse);
|
||||||
|
TEST_ASSERT_EQUAL(1, dummyFuse.list);
|
||||||
|
argv[1] = "-a";
|
||||||
|
FuseGetArgs(argc, argv, &dummyFuse);
|
||||||
|
TEST_ASSERT_EQUAL(1, dummyFuse.add);
|
||||||
|
argv[1] = "-r";
|
||||||
|
FuseGetArgs(argc, argv, &dummyFuse);
|
||||||
|
TEST_ASSERT_EQUAL(1, dummyFuse.remove);
|
||||||
|
argv[1] = "-e";
|
||||||
|
FuseGetArgs(argc, argv, &dummyFuse);
|
||||||
|
TEST_ASSERT_EQUAL(1, dummyFuse.extract);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
UNITY_BEGIN();
|
||||||
|
RUN_TEST(Test_FuseGetArgs_Should_AddToDummy);
|
||||||
|
return UNITY_END();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user