Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions fuzz/fuzz_config_reader.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ int main(int argc, char *argv[]) {
memset(&config, 0, sizeof(config));
parse_tx_config(tmpfile, &config);
validate_tx_config(&config);
dvledtx_config_free(&config);

unlink(tmpfile);
}
Expand All @@ -51,6 +52,7 @@ int main(int argc, char *argv[]) {
memset(&config, 0, sizeof(config));
parse_tx_config(argv[1], &config);
validate_tx_config(&config);
dvledtx_config_free(&config);
#endif

return 0;
Expand Down
1 change: 1 addition & 0 deletions fuzz/fuzz_config_reader_libfuzzer.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
memset(&config, 0, sizeof(config));
parse_tx_config(tmpfile, &config);
validate_tx_config(&config);
dvledtx_config_free(&config);

unlink(tmpfile);
return 0;
Expand Down
17 changes: 17 additions & 0 deletions tests/test_config_reader.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ static void test_parse_3sessions_session_count(void **state)
struct dvledtx_config cfg;
assert_int_equal(parse_tx_config(FIXTURE_3SESSIONS, &cfg), 0);
assert_int_equal(cfg.session_count, 3);
dvledtx_config_free(&cfg);
}

static void test_parse_1session_session_count(void **state)
Expand All @@ -122,6 +123,7 @@ static void test_parse_1session_session_count(void **state)
struct dvledtx_config cfg;
assert_int_equal(parse_tx_config(FIXTURE_1SESSION, &cfg), 0);
assert_int_equal(cfg.session_count, 1);
dvledtx_config_free(&cfg);
}

static void test_parse_3sessions_interface_fields(void **state)
Expand All @@ -132,6 +134,7 @@ static void test_parse_3sessions_interface_fields(void **state)
assert_string_equal(cfg.interface_name[0], "0000:03:10.1");
assert_string_equal(cfg.interface_sip[0], "192.168.50.29");
assert_string_equal(cfg.interface_dip[0], "239.168.85.21");
dvledtx_config_free(&cfg);
}

static void test_parse_3sessions_video_params(void **state)
Expand All @@ -143,6 +146,7 @@ static void test_parse_3sessions_video_params(void **state)
assert_int_equal((int)cfg.height, 1080);
assert_int_equal(cfg.fps, 30);
assert_string_equal(cfg.fmt, "yuv422p10le");
dvledtx_config_free(&cfg);
}

static void test_parse_3sessions_log_file(void **state)
Expand All @@ -151,6 +155,7 @@ static void test_parse_3sessions_log_file(void **state)
struct dvledtx_config cfg;
assert_int_equal(parse_tx_config(FIXTURE_3SESSIONS, &cfg), 0);
assert_string_equal(cfg.log_file, "dvledtx.log");
dvledtx_config_free(&cfg);
}

static void test_parse_3sessions_session0_crop(void **state)
Expand All @@ -166,6 +171,7 @@ static void test_parse_3sessions_session0_crop(void **state)
assert_int_equal(s->crop_y, 0);
assert_int_equal(s->crop_w, 640);
assert_int_equal(s->crop_h, 1080);
dvledtx_config_free(&cfg);
}

static void test_parse_3sessions_session1_crop(void **state)
Expand All @@ -181,6 +187,7 @@ static void test_parse_3sessions_session1_crop(void **state)
assert_int_equal(s->crop_y, 0);
assert_int_equal(s->crop_w, 640);
assert_int_equal(s->crop_h, 1080);
dvledtx_config_free(&cfg);
}

static void test_parse_3sessions_session2_crop(void **state)
Expand All @@ -196,6 +203,7 @@ static void test_parse_3sessions_session2_crop(void **state)
assert_int_equal(s->crop_y, 0);
assert_int_equal(s->crop_w, 640);
assert_int_equal(s->crop_h, 1080);
dvledtx_config_free(&cfg);
}

static void test_parse_returns_minus1_when_sessions_key_absent(void **state)
Expand All @@ -213,6 +221,7 @@ static void test_parse_returns_minus1_when_sessions_key_absent(void **state)
unlink(path);
free(path);
assert_int_equal(ret, -1);
dvledtx_config_free(&cfg);
}

static void test_parse_returns_minus1_when_sessions_array_empty(void **state)
Expand All @@ -231,6 +240,7 @@ static void test_parse_returns_minus1_when_sessions_array_empty(void **state)
unlink(path);
free(path);
assert_int_equal(ret, -1);
dvledtx_config_free(&cfg);
}

static void test_parse_returns_zero_fields_when_video_missing(void **state)
Expand All @@ -253,6 +263,7 @@ static void test_parse_returns_zero_fields_when_video_missing(void **state)
assert_int_equal((int)cfg.width, 0);
assert_int_equal((int)cfg.height, 0);
assert_int_equal(cfg.fps, 0);
dvledtx_config_free(&cfg);
}

/* ==========================================================================
Expand Down Expand Up @@ -583,6 +594,7 @@ static void test_parse_session_missing_udp_port_fails(void **state)
int ret = parse_tx_config(path, &cfg);
unlink(path); free(path);
assert_int_equal(ret, -1);
dvledtx_config_free(&cfg);
}

static void test_parse_session_udp_port_exceeds_65535_fails(void **state)
Expand All @@ -600,6 +612,7 @@ static void test_parse_session_udp_port_exceeds_65535_fails(void **state)
int ret = parse_tx_config(path, &cfg);
unlink(path); free(path);
assert_int_equal(ret, -1);
dvledtx_config_free(&cfg);
}

static void test_parse_session_missing_payload_type_defaults_to_96(void **state)
Expand All @@ -618,6 +631,7 @@ static void test_parse_session_missing_payload_type_defaults_to_96(void **state)
unlink(path); free(path);
assert_int_equal(ret, 0);
assert_int_equal(cfg.sessions[0].payload_type, 96);
dvledtx_config_free(&cfg);
}

static void test_parse_session_no_crop_object_fails(void **state)
Expand All @@ -634,6 +648,7 @@ static void test_parse_session_no_crop_object_fails(void **state)
int ret = parse_tx_config(path, &cfg);
unlink(path); free(path);
assert_int_equal(ret, -1);
dvledtx_config_free(&cfg);
}

/* ==========================================================================
Expand Down Expand Up @@ -1175,6 +1190,7 @@ static void test_parse_session_negative_crop_x_fails(void **state)
unlink(path); free(path);
/* Missing crop "x" — extract_json_int returns -1, parse must fail */
assert_int_equal(ret, -1);
dvledtx_config_free(&cfg);
}

static void test_parse_session_zero_crop_w_fails(void **state)
Expand All @@ -1192,6 +1208,7 @@ static void test_parse_session_zero_crop_w_fails(void **state)
int ret = parse_tx_config(path, &cfg);
unlink(path); free(path);
assert_int_equal(ret, -1);
dvledtx_config_free(&cfg);
}

/* ==========================================================================
Expand Down
Loading