ref: 276032d7d249b4430c78fd56a7877ce410571fd7
parent: dea8506d37809f5a824d8e15246895cb283a117c
author: Paul Brossier <piem@piem.org>
date: Sun Dec 16 14:19:58 EST 2018
[tests] add more sink tests
--- a/tests/src/io/base-sink_custom.h
+++ b/tests/src/io/base-sink_custom.h
@@ -63,9 +63,16 @@
int test_wrong_params(void)
{
+ fvec_t *vec;
+ fmat_t *mat;
aubio_sink_custom_t *s;
char_t sink_path[PATH_MAX] = "tmp_aubio_XXXXXX";
uint_t samplerate = 44100;
+ uint_t hop_size = 256;
+ uint_t oversized_hop_size = 4097;
+ uint_t oversized_samplerate = 192000 * 8 + 1;
+ uint_t channels = 3;
+ uint_t oversized_channels = 1025;
// create temp file
int fd = create_temp_sink(sink_path);
@@ -77,16 +84,54 @@
s = new_aubio_sink_custom(sink_path, 0);
+ // check setting wrong parameters fails
+ if (!aubio_sink_custom_preset_samplerate(s, oversized_samplerate)) return 1;
+ if (!aubio_sink_custom_preset_channels(s, oversized_channels)) return 1;
+ if (!aubio_sink_custom_preset_channels(s, -1)) return 1;
+
+ // check setting valid parameters passes
if (aubio_sink_custom_preset_samplerate(s, samplerate)) return 1;
if (aubio_sink_custom_preset_channels(s, 1)) return 1;
+ // check writing a vector with valid length
+ vec = new_fvec(hop_size);
+ aubio_sink_custom_do(s, vec, hop_size);
+ // check writing more than in the input
+ aubio_sink_custom_do(s, vec, hop_size+1);
+ // check write 0 frames
+ aubio_sink_custom_do(s, vec, 0);
+ del_fvec(vec);
+
+ // check writing an oversized vector
+ vec = new_fvec(oversized_hop_size);
+ aubio_sink_custom_do(s, vec, oversized_hop_size);
+ del_fvec(vec);
+
// test delete without closing
del_aubio_sink_custom(s);
s = new_aubio_sink_custom(sink_path, 0);
+ // preset channels first
+ if (aubio_sink_custom_preset_channels(s, channels)) return 1;
if (aubio_sink_custom_preset_samplerate(s, samplerate)) return 1;
- if (aubio_sink_custom_preset_channels(s, 3)) return 1;
+
+ mat = new_fmat(channels, hop_size);
+ // check writing a vector with valid length
+ aubio_sink_custom_do_multi(s, mat, hop_size);
+ // check writing more than in the input
+ aubio_sink_custom_do_multi(s, mat, hop_size+1);
+ del_fmat(mat);
+
+ // check writing oversized input
+ mat = new_fmat(channels, oversized_hop_size);
+ aubio_sink_custom_do_multi(s, mat, oversized_hop_size);
+ del_fmat(mat);
+
+ // check writing undersized input
+ mat = new_fmat(channels - 1, hop_size);
+ aubio_sink_custom_do_multi(s, mat, hop_size);
+ del_fmat(mat);
aubio_sink_custom_close(s);
// test closing twice
--
⑨