From ff2f210d6662c7231547f04d04b5a9c8fb2cf706 Mon Sep 17 00:00:00 2001 From: kaotisk Date: Sat, 1 Jun 2024 03:59:07 +0300 Subject: Introducing the first test and library implementations for the _ak_fs in C --- src/tests/test_akfs.c | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 src/tests/test_akfs.c (limited to 'src/tests/test_akfs.c') diff --git a/src/tests/test_akfs.c b/src/tests/test_akfs.c new file mode 100644 index 0000000..e95508b --- /dev/null +++ b/src/tests/test_akfs.c @@ -0,0 +1,201 @@ +#include +#include +#include +#include + +void correct_string_correct_length() +{ + printf("%s\t", __func__); + char queried_string[] = "921618bc6d9f8059437c5e0397b13f973ab7c7a7b81f0ca31b70bf448fd800a460b67efda0020088bc97bf7d9da97a9e2ce7b20d46e066462ec44cf60284f9a7"; + // printf("Hash given:\t%s\n", queried_string); + // printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false"); + sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string); + char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash); + // printf("Hash returned:\t%s\n", resulted_string); + if ( strcmp(queried_string, resulted_string) == 0 ) + { + printf("PASS!\n"); + } + else + { + printf("NO PASS :(\n"); + } + free(resulted_string); +} + +void bad_string_correct_length() +{ + printf("%s\t", __func__); + char queried_string[] = "921618bc6d9f8059437c5e0397b13f973ab7c7a7b81f0ca31b70bf448fd800a460b67efda0020088bc97bf7d9da97a9e2ce7b20d46e066462ec44cf60284f9az"; + // printf("Hash given:\t%s\n", queried_string); + // printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false"); + sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string); + char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash); + // printf("Hash returned:\t%s\n", resulted_string); + if ( strcmp(queried_string, resulted_string) != 0 ) + { + printf("PASS!\n"); + } + else + { + printf("NO PASS :(\n"); + } + free(resulted_string); +} + +void less_than_length() +{ + printf("%s\t", __func__); + char queried_string[] = "921618bc6d9f8059437c5e0397b13f973ab7c7a7b81f0ca31b70bf"; + // printf("Hash given:\t%s\n", queried_string); + // printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false"); + sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string); + char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash); + // printf("Hash returned:\t%s\n", resulted_string); + if ( strcmp(queried_string, resulted_string) != 0 ) + { + printf("\tPASS!\n"); + } + else + { + printf("\tNO PASS :(\n"); + } + free(resulted_string); +} + +void more_than_length() +{ + printf("%s\t", __func__); + char queried_string[] = "921618bc6d9f8059437c5e0397b13f973ab7c7a7b81f0ca31b70bf448fd800a460b67efda0020088bc97bf7d9da97a9e2ce7b20d46e066462ec44cf60284f9a7aaa"; + // printf("Hash given:\t%s\n", queried_string); + // printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false"); + sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string); + char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash); + // printf("Hash returned:\t%s\n", resulted_string); + if ( strcmp(queried_string, resulted_string) != 0 ) + { + printf("\tPASS!\n"); + } + else + { + printf("\tNO PASS :(\n"); + } + free(resulted_string); +} + +void string_is_empty() +{ + printf("%s\t", __func__); + char queried_string[128]; + // printf("Hash given:\t%s\n", queried_string); + //printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false"); + sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string); + char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash); + // printf("Hash returned:\t%s\n", resulted_string); + if ( strcmp(queried_string, resulted_string) != 0 ) + { + printf("\t\tPASS!\n"); + } + else + { + printf("\t\tNO PASS :(\n"); + } + free(resulted_string); +} + +void hash_path_test() +{ + printf("%s\t", __func__); + char queried_string[] = "921618bc6d9f8059437c5e0397b13f973ab7c7a7b81f0ca31b70bf448fd800a460b67efda0020088bc97bf7d9da97a9e2ce7b20d46e066462ec44cf60284f9a7"; + // printf("Hash given:\t%s\n", queried_string); + // printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false"); + char* resulted_string = ak_fs_return_hash_path(queried_string); + // printf("Path returned:\t%s\n", resulted_string); + if ( strcmp(queried_string, resulted_string) != 0 ) + { + printf("\t\tPASS!\n"); + } + else + { + printf("\t\tNO PASS :(\n"); + } + free(resulted_string); +} + +void hash_dir_test() +{ + printf("%s\t", __func__); + char queried_string[] = "921618bc6d9f8059437c5e0397b13f973ab7c7a7b81f0ca31b70bf448fd800a460b67efda0020088bc97bf7d9da97a9e2ce7b20d46e066462ec44cf60284f9a7"; + // printf("Hash given:\t%s\n", queried_string); + // printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false"); + char* resulted_string = ak_fs_return_hash_dir(queried_string); + // printf("Path returned:\t%s\n", resulted_string); + if ( strcmp(queried_string, resulted_string) != 0 ) + { + printf("\t\tPASS!\n"); + } + else + { + printf("\t\tNO PASS :(\n"); + } + free(resulted_string); +} + +void hash_save_to_file() +{ + printf("%s\t", __func__); + char queried_string[] = "921618bc6d9f8059437c5e0397b13f973ab7c7a7b81f0ca31b70bf448fd800a460b67efda0020088bc97bf7d9da97a9e2ce7b20d46e066462ec44cf60284f9a7"; + // printf("Hash given:\t%s\n", queried_string); + // printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false"); + sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string); + FILE* fd = fopen("tmpfile", "wb"); + if ( fd == NULL ) + { + printf("Some error occured"); + } + fwrite(&resulted_hash, sizeof(sha512sum),1,fd); + fclose(fd); + + sha512sum readone = {0}; + fd = fopen("tmpfile", "rb"); + fread (&readone, sizeof(sha512sum),1,fd); + char* resulted_string = ak_fs_sha512sum_struct_to_string(readone); + + if ( strcmp(queried_string, resulted_string) == 0 ) + { + printf("\tPASS!\n"); + } + else + { + printf("\tNO PASS :(\n"); + } + free(resulted_string); +} + +int main(void) +{ + // Correct one + correct_string_correct_length(); + + // Supposingly a bad string but in correct length + bad_string_correct_length(); + + // Less than must be length + less_than_length(); + + // More than must be length + more_than_length(); + + // Empty string + string_is_empty(); + + // Hash path + hash_path_test(); + + // Hash dir + hash_dir_test(); + + // Tempfile test read-write + hash_save_to_file(); + return 0; +} -- cgit v1.2.3