stuffy/test/test.c

125 lines
4.9 KiB
C
Raw Normal View History

#include <fcntl.h>
#include <string.h>
2022-11-10 18:30:35 -06:00
#include <unistd.h>
#include "unity/unity.h"
2022-11-02 15:29:00 -05:00
#include "stuffy.h"
ModuleStruct moduleTest;
2022-11-02 15:56:26 -05:00
int argc = 0;
char* argv[6];
2022-11-02 15:29:00 -05:00
void setUp(void)
{
2022-11-10 18:30:35 -06:00
argv[0] = "bin/stuffy.out";
2022-11-02 15:56:26 -05:00
argv[1] = "-a";
2022-11-10 18:30:35 -06:00
argv[2] = "test/files/mystuffyarchive.test";
argv[3] = "test/files/temp.test";
2022-11-02 15:56:26 -05:00
argv[4] = ">";
2022-11-10 18:30:35 -06:00
argv[5] = "test/files/output.test";
2022-11-02 15:29:00 -05:00
}
void tearDown(void)
{
;
}
2022-11-02 15:56:26 -05:00
void Test_StuffyArgument_Should_ReturnCorrectly(void)
2022-11-02 15:29:00 -05:00
{
2022-11-02 15:56:26 -05:00
TEST_ASSERT_EQUAL(0, StuffyArgument(4, argv));
argv[1] = "-r";
TEST_ASSERT_EQUAL(1, StuffyArgument(4, argv));
argv[1] = "-l";
TEST_ASSERT_EQUAL(2, StuffyArgument(3, argv));
argv[1] = "-e";
TEST_ASSERT_EQUAL(3, StuffyArgument(6, argv));
argv[1] = "-t";
TEST_ASSERT_EQUAL(-1, StuffyArgument(4, argv));
2022-11-02 15:29:00 -05:00
}
void Test_IsFileArchived_Should_ReturnCorrectly(void)
{
TEST_ASSERT_EQUAL(1, IsFileArchived(argv[2], "test/files/temp.test"));
TEST_ASSERT_EQUAL(1, IsFileArchived(argv[2], "test/files/temp2.test"));
TEST_ASSERT_EQUAL(1, IsFileArchived(argv[2], "test/files/temp3.test"));
TEST_ASSERT_EQUAL(1, IsFileArchived(argv[2], "test/files/temp4.test"));
TEST_ASSERT_EQUAL(0, IsFileArchived(argv[2], "test/files/rewio.test"));
TEST_ASSERT_EQUAL(0, IsFileArchived(argv[2], "test/files/fake.test"));
}
void Test_StripFilename_Should_ChangeName(void)
2022-11-10 18:30:35 -06:00
{
TEST_ASSERT_EQUAL_STRING("mystuffyarchive.test", StripFilename("test/files/mystuffyarchive.test"));
TEST_ASSERT_EQUAL_STRING("temp1.test", StripFilename("test/files/temp1.test"));
TEST_ASSERT_EQUAL_STRING("temp2.test", StripFilename("test/files/temp2.test"));
TEST_ASSERT_EQUAL_STRING("temp3.test", StripFilename("test/files/temp3.test"));
TEST_ASSERT_EQUAL_STRING("temp4.test", StripFilename("test/files/temp4.test"));
TEST_ASSERT_EQUAL_STRING("temp5.test", StripFilename("test/files/temp5.test"));
}
void Test_ReadSingleModule_Should_ReadCorrectly(void)
{
int fd = open(argv[2], O_RDONLY);
TEST_ASSERT_EQUAL(80, ReadSingleModule(fd, &moduleTest));
TEST_ASSERT_EQUAL(25, ReadSingleModule(fd, &moduleTest));
TEST_ASSERT_EQUAL(27, ReadSingleModule(fd, &moduleTest));
TEST_ASSERT_EQUAL(27, ReadSingleModule(fd, &moduleTest));
close(fd);
}
void Test_ReadSingleModule_Should_ReadNewArchive(void)
{
// TEST_IGNORE_MESSAGE("Implementation Required: AddToArchive");
remove("test/files/newstuffyarchive.test");
int fd = open("test/files/newstuffyarchive.test", O_RDONLY | O_CREAT, 0644);
AddToArchive("test/files/newstuffyarchive.test", "test/files/temp4.test");
TEST_ASSERT_EQUAL(27, ReadSingleModule(fd, &moduleTest));
AddToArchive("test/files/newstuffyarchive.test", "test/files/temp3.test");
TEST_ASSERT_EQUAL(27, ReadSingleModule(fd, &moduleTest));
AddToArchive("test/files/newstuffyarchive.test", "test/files/temp2.test");
TEST_ASSERT_EQUAL(25, ReadSingleModule(fd, &moduleTest));
AddToArchive("test/files/newstuffyarchive.test", "test/files/temp.test");
TEST_ASSERT_EQUAL(80, ReadSingleModule(fd, &moduleTest));
// Fail test removed due to printf breaking test
// AddToArchive("test/files/newstuffyarchive.test", "test/files/fake.test");
// TEST_ASSERT_EQUAL(0, ReadSingleModule(fd, &moduleTest));
close(fd);
2022-11-10 18:30:35 -06:00
}
void Test_RemoveFromArchive_Should_RemoveCorrectly(void)
{
// TEST_IGNORE_MESSAGE("Implementation Required: RemoveFromArchive");
int oldArchiveSize = Test_ListArchive("test/files/newstuffyarchive.test");
RemoveFromArchive("test/files/newstuffyarchive.test", "test/files/temp.test");
TEST_ASSERT_LESS_THAN(oldArchiveSize, Test_ListArchive("test/files/newstuffyarchive.test"));
oldArchiveSize = Test_ListArchive("test/files/newstuffyarchive.test");
RemoveFromArchive("test/files/newstuffyarchive.test", "test/files/temp2.test");
TEST_ASSERT_LESS_THAN(oldArchiveSize, Test_ListArchive("test/files/newstuffyarchive.test"));
2022-11-10 18:30:35 -06:00
}
void Test_ListArchive_Should_ListCorrectly(void)
{
TEST_ASSERT_EQUAL(959, Test_ListArchive("test/files/newstuffyarchive.test"));
TEST_ASSERT_EQUAL(-1, Test_ListArchive("test/files/fakeArchive.test"));
2022-11-10 18:30:35 -06:00
}
void Test_ExtractArchive_Should_ExtractCorrectly(void)
{
// TEST_IGNORE_MESSAGE("Implementation Required: ExtractArchive");
int outputFileSize = _ExtractArchive("test/files/newstuffyarchive.test", argv[3], 0);
TEST_ASSERT_GREATER_THAN(0, outputFileSize);
2022-11-10 18:30:35 -06:00
}
2022-11-02 15:56:26 -05:00
2022-11-02 15:29:00 -05:00
int main(void)
{
UNITY_BEGIN();
2022-11-02 15:56:26 -05:00
RUN_TEST(Test_StuffyArgument_Should_ReturnCorrectly);
RUN_TEST(Test_StripFilename_Should_ChangeName);
RUN_TEST(Test_IsFileArchived_Should_ReturnCorrectly);
RUN_TEST(Test_ReadSingleModule_Should_ReadCorrectly);
RUN_TEST(Test_ReadSingleModule_Should_ReadNewArchive);
RUN_TEST(Test_ListArchive_Should_ListCorrectly);
RUN_TEST(Test_ExtractArchive_Should_ExtractCorrectly);
RUN_TEST(Test_RemoveFromArchive_Should_RemoveCorrectly);
2022-11-02 15:29:00 -05:00
return UNITY_END();
}