There are no actual write tests.
Move the read tests into a separate directory so that write tests may be provided.
f_number_unsigned_t item_first = 0;
f_number_unsigned_t item_total = 0;
- f_number_unsigned_t i = 0;
f_range_t partial = f_range_t_initialize;
const f_char_t quote_char = quote ? quote : f_string_ascii_quote_double_s.string[0];
extern "C" {
#endif
-FILE *data__file_open__named(const f_string_t set, const f_string_t name, const f_string_t context) {
+FILE *data__file_open__named(const f_string_t type, const f_string_t set, const f_string_t name, const f_string_t context) {
char path[255];
memset(path, 0, 255);
- snprintf(path, 254, "./data/tests/%s/%s-%s.txt", set, name, context);
+ snprintf(path, 254, "./data/tests/%s/%s/%s-%s.txt", type, set, name, context);
return fopen(path, "r");
}
-FILE *data__file_open__named_at(const f_string_t set, const f_string_t name, const f_string_t context, const uint16_t at) {
+FILE *data__file_open__named_at(const f_string_t type, const f_string_t set, const f_string_t name, const f_string_t context, const uint16_t at) {
char path[255];
memset(path, 0, 255);
- snprintf(path, 254, "./data/tests/%s/%s-%s-%d.txt", set, name, context, at);
+ snprintf(path, 254, "./data/tests/%s//%s/%s-%s-%d.txt", type, set, name, context, at);
return fopen(path, "r");
}
*
* This requires the following:
* - The file path is relative to the current working directory (tests are run from project root).
- * - The file path is "data/tests/${set}/${name}-${context}.txt".
+ * - The file path is "data/tests/${type}/${set}/${name}-${context}.txt".
+ * - Where "${type}" represents the type, such as "read" or "write".
* - Where "${set}" represents the directory set, like "contents", "objects", or "strings".
* - Where "${name}" represents the standard name, such as "basic" or "extended".
* - Where "${context}" represents the test context, such as "all_read" or "header_map".
*
+ * @param type
+ * The test file type.
* @param set
* The name of the test set, representing the directory the the files are stored within.
* @param context
*
* @see fopen()
*/
-extern FILE *data__file_open__named(const f_string_t set, const f_string_t name, const f_string_t context);
+extern FILE *data__file_open__named(const f_string_t type, const f_string_t set, const f_string_t name, const f_string_t context);
/**
* Open the test data file for the given set with the given name and the given at index.
*
* This requires the following:
* - The file path is relative to the current working directory (tests are run from project root).
- * - The file path is "data/tests/${set}/${name}-${context}-${at}.txt".
+ * - The file path is "data/tests/${type}/${set}/${name}-${context}-${at}.txt".
+ * - Where "${type}" represents the type, such as "read" or "write".
* - Where "${set}" represents the directory set, like "contents", "headers", "objects", "strings", or "variables".
* - Where "${name}" represents the standard name, such as "basic", "extended", or "payload".
* - Where "${context}" represents the test context, such as "all_read" or "abstruse_signed".
* - Where "${at}" represents the index.
*
+ * @param type
+ * The test file type.
* @param set
* The name of the test set, representing the directory the the files are stored within.
* @param context
*
* @see fopen()
*/
-extern FILE *data__file_open__named_at(const f_string_t set, const f_string_t name, const f_string_t context, const uint16_t at);
+extern FILE *data__file_open__named_at(const f_string_t type, const f_string_t set, const f_string_t name, const f_string_t context, const uint16_t at);
/**
* Append file into buffer.
// Following the digit is a single Object line.
// Following the Object line is a line for each Content designated by the first line (can be 0).
// Following this Content line (even if 0 lines) should be the end of the test file or the start of the next set for the next line in the headers file.
- FILE *file_variables = data__file_open__named("variables", "payload", context_variables);
+ FILE *file_variables = data__file_open__named("read", "variables", "payload", context_variables);
FILE *file_headers = 0;
if (!file_variables) {
++headers.used;
- file_headers = data__file_open__named_at("headers", "payload", context_headers, at);
+ file_headers = data__file_open__named_at("read", "headers", "payload", context_headers, at);
if (!file_headers) {
printf("[ ERROR ] --- Opening File: headers/payload-%s-%d.txt returned NULL.\n", context_headers, at);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_strings = data__file_open__named("strings", "basic", "all_read");
- FILE *file_contents = data__file_open__named("contents", "basic", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "basic", "all_read");
+ FILE *file_contents = data__file_open__named("read", "contents", "basic", "all_read");
assert_non_null(file_strings);
assert_non_null(file_contents);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_contents = data__file_open__named("contents", "basic", "combining_read");
- FILE *file_matches = data__file_open__named("matches", "basic", "combining_read");
- FILE *file_strings = data__file_open__named("strings", "basic", "combining_read");
+ FILE *file_contents = data__file_open__named("read", "contents", "basic", "combining_read");
+ FILE *file_matches = data__file_open__named("read", "matches", "basic", "combining_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "basic", "combining_read");
assert_non_null(file_contents);
assert_non_null(file_matches);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_strings = data__file_open__named("strings", "basic_list", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "basic_list", "all_read");
FILE *file_contents[] = {
- data__file_open__named_at("contents", "basic_list", "all_read", 0),
- data__file_open__named_at("contents", "basic_list", "all_read", 1),
- data__file_open__named_at("contents", "basic_list", "all_read", 2),
- data__file_open__named_at("contents", "basic_list", "all_read", 3),
- data__file_open__named_at("contents", "basic_list", "all_read", 4),
- data__file_open__named_at("contents", "basic_list", "all_read", 5),
- data__file_open__named_at("contents", "basic_list", "all_read", 6),
- data__file_open__named_at("contents", "basic_list", "all_read", 7),
- data__file_open__named_at("contents", "basic_list", "all_read", 8),
- data__file_open__named_at("contents", "basic_list", "all_read", 9),
- data__file_open__named_at("contents", "basic_list", "all_read", 10),
- data__file_open__named_at("contents", "basic_list", "all_read", 11),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 0),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 1),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 2),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 3),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 4),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 5),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 6),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 7),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 8),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 9),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 10),
+ data__file_open__named_at("read", "contents", "basic_list", "all_read", 11),
};
assert_non_null(file_strings);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_counts = data__file_open__named("counts", "basic_list", "combining_read");
- FILE *file_matches = data__file_open__named("matches", "basic_list", "combining_read");
- FILE *file_objects = data__file_open__named("objects", "basic_list", "combining_read");
- FILE *file_strings = data__file_open__named("strings", "basic_list", "combining_read");
+ FILE *file_counts = data__file_open__named("read", "counts", "basic_list", "combining_read");
+ FILE *file_matches = data__file_open__named("read", "matches", "basic_list", "combining_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "basic_list", "combining_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "basic_list", "combining_read");
FILE *file_contents[] = {
- data__file_open__named_at("contents", "basic_list", "combining_read", 0),
- data__file_open__named_at("contents", "basic_list", "combining_read", 1),
- data__file_open__named_at("contents", "basic_list", "combining_read", 2),
- data__file_open__named_at("contents", "basic_list", "combining_read", 3),
- data__file_open__named_at("contents", "basic_list", "combining_read", 4),
+ data__file_open__named_at("read", "contents", "basic_list", "combining_read", 0),
+ data__file_open__named_at("read", "contents", "basic_list", "combining_read", 1),
+ data__file_open__named_at("read", "contents", "basic_list", "combining_read", 2),
+ data__file_open__named_at("read", "contents", "basic_list", "combining_read", 3),
+ data__file_open__named_at("read", "contents", "basic_list", "combining_read", 4),
};
assert_non_null(file_counts);
void test__fl_fss_basic_list_object_read__works(void **void_state) {
{
- FILE *file_strings = data__file_open__named("strings", "basic_list", "all_read");
- FILE *file_objects = data__file_open__named("objects", "basic_list", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "basic_list", "all_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "basic_list", "all_read");
assert_non_null(file_strings);
assert_non_null(file_objects);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_strings = data__file_open__named("strings", "basic", "all_read");
- FILE *file_objects = data__file_open__named("objects", "basic", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "basic", "all_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "basic", "all_read");
assert_non_null(file_strings);
assert_non_null(file_objects);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_matches = data__file_open__named("matches", "basic", "combining_read");
- FILE *file_objects = data__file_open__named("objects", "basic", "combining_read");
- FILE *file_strings = data__file_open__named("strings", "basic", "combining_read");
+ FILE *file_matches = data__file_open__named("read", "matches", "basic", "combining_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "basic", "combining_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "basic", "combining_read");
assert_non_null(file_matches);
assert_non_null(file_objects);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_strings = data__file_open__named("strings", "embedded_list", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "embedded_list", "all_read");
FILE *file_contents[] = {
- data__file_open__named_at("contents", "embedded_list", "all_read", 0),
- data__file_open__named_at("contents", "embedded_list", "all_read", 1),
- data__file_open__named_at("contents", "embedded_list", "all_read", 2),
- data__file_open__named_at("contents", "embedded_list", "all_read", 3),
- data__file_open__named_at("contents", "embedded_list", "all_read", 4),
- data__file_open__named_at("contents", "embedded_list", "all_read", 5),
- data__file_open__named_at("contents", "embedded_list", "all_read", 6),
- data__file_open__named_at("contents", "embedded_list", "all_read", 7),
- data__file_open__named_at("contents", "embedded_list", "all_read", 8),
- data__file_open__named_at("contents", "embedded_list", "all_read", 9),
- data__file_open__named_at("contents", "embedded_list", "all_read", 10),
- data__file_open__named_at("contents", "embedded_list", "all_read", 11),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 0),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 1),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 2),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 3),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 4),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 5),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 6),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 7),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 8),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 9),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 10),
+ data__file_open__named_at("read", "contents", "embedded_list", "all_read", 11),
};
assert_non_null(file_strings);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_counts = data__file_open__named("counts", "embedded_list", "combining_read");
- FILE *file_matches = data__file_open__named("matches", "embedded_list", "combining_read");
- FILE *file_objects = data__file_open__named("objects", "embedded_list", "combining_read");
- FILE *file_strings = data__file_open__named("strings", "embedded_list", "combining_read");
+ FILE *file_counts = data__file_open__named("read", "counts", "embedded_list", "combining_read");
+ FILE *file_matches = data__file_open__named("read", "matches", "embedded_list", "combining_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "embedded_list", "combining_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "embedded_list", "combining_read");
FILE *file_contents[] = {
- data__file_open__named_at("contents", "embedded_list", "combining_read", 0),
- data__file_open__named_at("contents", "embedded_list", "combining_read", 1),
- data__file_open__named_at("contents", "embedded_list", "combining_read", 2),
- data__file_open__named_at("contents", "embedded_list", "combining_read", 3),
- data__file_open__named_at("contents", "embedded_list", "combining_read", 4),
+ data__file_open__named_at("read", "contents", "embedded_list", "combining_read", 0),
+ data__file_open__named_at("read", "contents", "embedded_list", "combining_read", 1),
+ data__file_open__named_at("read", "contents", "embedded_list", "combining_read", 2),
+ data__file_open__named_at("read", "contents", "embedded_list", "combining_read", 3),
+ data__file_open__named_at("read", "contents", "embedded_list", "combining_read", 4),
};
assert_non_null(file_counts);
void test__fl_fss_embedded_list_object_read__works(void **void_state) {
{
- FILE *file_strings = data__file_open__named("strings", "embedded_list", "all_read");
- FILE *file_objects = data__file_open__named("objects", "embedded_list", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "embedded_list", "all_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "embedded_list", "all_read");
assert_non_null(file_strings);
assert_non_null(file_objects);
void test__fl_fss_embedded_list_object_read__works_using_combining(void **void_state) {
{
- FILE *file_strings = data__file_open__named("strings", "embedded_list", "combining_read");
- FILE *file_objects = data__file_open__named("objects", "embedded_list", "combining_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "embedded_list", "combining_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "embedded_list", "combining_read");
assert_non_null(file_strings);
assert_non_null(file_objects);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_strings = data__file_open__named("strings", "extended", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "extended", "all_read");
FILE *file_contents[] = {
- data__file_open__named_at("contents", "extended", "all_read", 0),
- data__file_open__named_at("contents", "extended", "all_read", 1),
- data__file_open__named_at("contents", "extended", "all_read", 2),
- data__file_open__named_at("contents", "extended", "all_read", 3),
- data__file_open__named_at("contents", "extended", "all_read", 4),
- data__file_open__named_at("contents", "extended", "all_read", 5),
- data__file_open__named_at("contents", "extended", "all_read", 6),
- data__file_open__named_at("contents", "extended", "all_read", 7),
+ data__file_open__named_at("read", "contents", "extended", "all_read", 0),
+ data__file_open__named_at("read", "contents", "extended", "all_read", 1),
+ data__file_open__named_at("read", "contents", "extended", "all_read", 2),
+ data__file_open__named_at("read", "contents", "extended", "all_read", 3),
+ data__file_open__named_at("read", "contents", "extended", "all_read", 4),
+ data__file_open__named_at("read", "contents", "extended", "all_read", 5),
+ data__file_open__named_at("read", "contents", "extended", "all_read", 6),
+ data__file_open__named_at("read", "contents", "extended", "all_read", 7),
};
assert_non_null(file_strings);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_matches = data__file_open__named("matches", "extended", "combining_read");
- FILE *file_strings = data__file_open__named("strings", "extended", "combining_read");
+ FILE *file_matches = data__file_open__named("read", "matches", "extended", "combining_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "extended", "combining_read");
FILE *file_contents[] = {
- data__file_open__named_at("contents", "extended", "combining_read", 0),
- data__file_open__named_at("contents", "extended", "combining_read", 1),
- data__file_open__named_at("contents", "extended", "combining_read", 2),
- data__file_open__named_at("contents", "extended", "combining_read", 3),
- data__file_open__named_at("contents", "extended", "combining_read", 4),
- data__file_open__named_at("contents", "extended", "combining_read", 5),
- data__file_open__named_at("contents", "extended", "combining_read", 6),
+ data__file_open__named_at("read", "contents", "extended", "combining_read", 0),
+ data__file_open__named_at("read", "contents", "extended", "combining_read", 1),
+ data__file_open__named_at("read", "contents", "extended", "combining_read", 2),
+ data__file_open__named_at("read", "contents", "extended", "combining_read", 3),
+ data__file_open__named_at("read", "contents", "extended", "combining_read", 4),
+ data__file_open__named_at("read", "contents", "extended", "combining_read", 5),
+ data__file_open__named_at("read", "contents", "extended", "combining_read", 6),
};
assert_non_null(file_matches);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_strings = data__file_open__named("strings", "extended_list", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "extended_list", "all_read");
FILE *file_contents[] = {
- data__file_open__named_at("contents", "extended_list", "all_read", 0),
- data__file_open__named_at("contents", "extended_list", "all_read", 1),
- data__file_open__named_at("contents", "extended_list", "all_read", 2),
- data__file_open__named_at("contents", "extended_list", "all_read", 3),
- data__file_open__named_at("contents", "extended_list", "all_read", 4),
- data__file_open__named_at("contents", "extended_list", "all_read", 5),
- data__file_open__named_at("contents", "extended_list", "all_read", 6),
- data__file_open__named_at("contents", "extended_list", "all_read", 7),
- data__file_open__named_at("contents", "extended_list", "all_read", 8),
- data__file_open__named_at("contents", "extended_list", "all_read", 9),
- data__file_open__named_at("contents", "extended_list", "all_read", 10),
- data__file_open__named_at("contents", "extended_list", "all_read", 11),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 0),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 1),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 2),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 3),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 4),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 5),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 6),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 7),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 8),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 9),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 10),
+ data__file_open__named_at("read", "contents", "extended_list", "all_read", 11),
};
assert_non_null(file_strings);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_counts = data__file_open__named("counts", "extended_list", "combining_read");
- FILE *file_matches = data__file_open__named("matches", "extended_list", "combining_read");
- FILE *file_objects = data__file_open__named("objects", "extended_list", "combining_read");
- FILE *file_strings = data__file_open__named("strings", "extended_list", "combining_read");
+ FILE *file_counts = data__file_open__named("read", "counts", "extended_list", "combining_read");
+ FILE *file_matches = data__file_open__named("read", "matches", "extended_list", "combining_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "extended_list", "combining_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "extended_list", "combining_read");
FILE *file_contents[] = {
- data__file_open__named_at("contents", "extended_list", "combining_read", 0),
- data__file_open__named_at("contents", "extended_list", "combining_read", 1),
- data__file_open__named_at("contents", "extended_list", "combining_read", 2),
- data__file_open__named_at("contents", "extended_list", "combining_read", 3),
- data__file_open__named_at("contents", "extended_list", "combining_read", 4),
+ data__file_open__named_at("read", "contents", "extended_list", "combining_read", 0),
+ data__file_open__named_at("read", "contents", "extended_list", "combining_read", 1),
+ data__file_open__named_at("read", "contents", "extended_list", "combining_read", 2),
+ data__file_open__named_at("read", "contents", "extended_list", "combining_read", 3),
+ data__file_open__named_at("read", "contents", "extended_list", "combining_read", 4),
};
assert_non_null(file_counts);
void test__fl_fss_extended_list_object_read__works(void **void_state) {
{
- FILE *file_strings = data__file_open__named("strings", "extended_list", "all_read");
- FILE *file_objects = data__file_open__named("objects", "extended_list", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "extended_list", "all_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "extended_list", "all_read");
assert_non_null(file_strings);
assert_non_null(file_objects);
void test__fl_fss_extended_list_object_read__works_using_combining(void **void_state) {
{
- FILE *file_strings = data__file_open__named("strings", "extended_list", "combining_read");
- FILE *file_objects = data__file_open__named("objects", "extended_list", "combining_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "extended_list", "combining_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "extended_list", "combining_read");
assert_non_null(file_strings);
assert_non_null(file_objects);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_strings = data__file_open__named("strings", "extended", "all_read");
- FILE *file_objects = data__file_open__named("objects", "extended", "all_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "extended", "all_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "extended", "all_read");
assert_non_null(file_strings);
assert_non_null(file_objects);
{
// Note: These files are required to have the same number of lines and each line should probably be at max 255 characters.
- FILE *file_matches = data__file_open__named("matches", "extended", "combining_read");
- FILE *file_strings = data__file_open__named("strings", "extended", "combining_read");
- FILE *file_objects = data__file_open__named("objects", "extended", "combining_read");
+ FILE *file_matches = data__file_open__named("read", "matches", "extended", "combining_read");
+ FILE *file_strings = data__file_open__named("read", "strings", "extended", "combining_read");
+ FILE *file_objects = data__file_open__named("read", "objects", "extended", "combining_read");
assert_non_null(file_matches);
assert_non_null(file_strings);