Where the F are my trains?
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

68 lines
1.9 KiB

#include <stdlib.h>
#include <stdio.h>
#include <check.h>
#include "../src/sekrits.h"
START_TEST(test_create_from_file) {
const char *cases[] ={
"hello=true",
"OK=FINE\n",
"notok"
};
for (int i = 0; i < sizeof(cases); ++ i) {
struct sekrits *secrets = NULL;
FILE *data = fmemopen((char *)cases[i], strlen(cases[i]) + 1, "r");
ck_assert_msg(
sekrits_create_from_file(&secrets, data) == SEKRITS_OK,
"Was expecting valid secret data to load from %s", cases[i]
);
sekrits_destroy(secrets);
fclose(data);
}
}
END_TEST
START_TEST(test_create_from_file_neg) {
const char *cases[] ={
"notok"
};
for (int i = 0; i < sizeof(cases); ++ i) {
printf("running case");
struct sekrits *secrets = NULL;
FILE *data = fmemopen((char *)cases[i], strlen(cases[i]) + 1, "r");
ck_assert_msg(
sekrits_create_from_file(&secrets, data) == SEKRITS_ERROR,
"Was expecting invalid secret data to load from %s", cases[i]
);
sekrits_destroy(secrets);
fclose(data);
}
}
END_TEST
Suite * sekrits_suite(void) {
TCase *tc_create_file;
tc_create_file = tcase_create("create_from_file");
tcase_add_test(tc_create_file, test_create_from_file);
TCase *tc_create_file_neg;
tc_create_file_neg = tcase_create("create_from_file_neg");
tcase_add_test(tc_create_file_neg, test_create_from_file_neg);
Suite *s = suite_create("sekrits");
suite_add_tcase(s, tc_create_file);
suite_add_tcase(s, tc_create_file_neg);
return s;
}
int main(void) {
int number_failed;
SRunner *srunner = srunner_create(sekrits_suite());
srunner_run_all(srunner, CK_VERBOSE);
number_failed = srunner_ntests_failed(srunner);
srunner_free(srunner);
return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
}