feat: add basic parsing and readme

This commit is contained in:
Tilo-K
2025-06-20 15:34:49 +02:00
parent 55e42817be
commit 126fc422c5
4 changed files with 303 additions and 2 deletions

View File

@@ -1,4 +1,108 @@
int main(void) {
return 0;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define SEAFLAGS_DEBUG
#include "../includes/seaflags.h"
int test_basic_create() {
printf("Running test_basic_create\n");
struct SeaFlagSet flags;
seaflags_init(&flags, "Sea Flag Test", "0.0.0", "Tilo-K" , "A test for the seaflags library");
char* name = NULL;
seaflags_add_flag(&flags, "name", "n", true, &name);
if (flags.firstFlag == NULL) {
printf("Flags not created\n");
return 1;
}
if (flags.firstFlag->name == NULL) {
printf("Flag name not set\n");
return 1;
}
if (flags.firstFlag->short_name == NULL) {
printf("Flag short name not set\n");
return 1;
}
if (flags.firstFlag->is_required != true) {
printf("Flag is_required not set\n");
return 1;
}
if (flags.firstFlag->value == NULL) {
printf("Flag value not set\n");
return 1;
}
return 0;
}
int test_get_flag_value() {
printf("Running test_get_flag_value\n");
struct SeaFlagSet flags;
seaflags_init(&flags, "Sea Flag Test", "0.0.0", "Tilo-K" , "A test for the seaflags library");
char* name = NULL;
printf("Adding flag\n");
seaflags_add_flag(&flags, "--name", "-n", true, &name);
printf("Parsing\n");
seaflags_parse(&flags, 3, (char*[]){"./test", "--name", "test"});
printf("Parsed\n");
if (name == NULL || strcmp(name, "test") != 0) {
printf("Flag value name not set, found %s\n", name);
return 1;
}
return 0;
}
int test_missing_required_flag() {
printf("Running test_missing_required_flag\n");
struct SeaFlagSet flags;
seaflags_init(&flags, "Sea Flag Test", "0.0.0", "Tilo-K" , "A test for the seaflags library");
char* name = NULL;
printf("Adding flag\n");
seaflags_add_flag(&flags, "--name", "-n", true, &name);
printf("Parsing\n");
int result = seaflags_parse(&flags, 1, (char*[]){"./test"});
printf("Parsed\n");
if ((result & SEAFLAGS_MISSING_REQUIRED_FLAG) > 0) {
return 0;
}
printf("Missing required flag not detected %d\n", result);
return 1;
}
int main(void) {
printf("Running main\n");
int result = test_basic_create();
if (result != 0) {
printf("Basic Test failed with result %d\n", result);
return 1;
}
result = test_get_flag_value();
if (result != 0) {
printf("Get Flag Value Test failed with result %d\n", result);
return 1;
}
result = test_missing_required_flag();
if (result != 0) {
printf("Missing Required Flag Test failed with result %d\n", result);
return 1;
}
return 0;
}