diff options
-rw-r--r-- | Makefile.am | 8 | ||||
-rw-r--r-- | test/test_byte_reverse.c | 83 | ||||
-rw-r--r-- | test/test_glib_compat.h | 3 |
3 files changed, 94 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index 4ac5d1a39..3115ceb08 100644 --- a/Makefile.am +++ b/Makefile.am @@ -975,6 +975,7 @@ sparse-check: if ENABLE_TEST C_TESTS = \ + test/test_byte_reverse \ test/test_pcm \ test/test_queue_priority @@ -1262,6 +1263,13 @@ test_run_inotify_SOURCES = test/run_inotify.c \ test_run_inotify_LDADD = $(GLIB_LIBS) endif +test_test_byte_reverse_SOURCES = \ + test/test_glib_compat.h \ + test/test_byte_reverse.c +test_test_byte_reverse_LDADD = \ + libutil.a \ + $(GLIB_LIBS) + test_test_pcm_SOURCES = \ test/test_glib_compat.h \ test/test_pcm_dither.c \ diff --git a/test/test_byte_reverse.c b/test/test_byte_reverse.c new file mode 100644 index 000000000..7678e9cef --- /dev/null +++ b/test/test_byte_reverse.c @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2003-2012 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "util/byte_reverse.h" +#include "test_glib_compat.h" + +#include <glib.h> + +static void +test_byte_reverse_2(void) +{ + static const char src[] = "123456"; + static const char result[] = "214365"; + static uint8_t dest[G_N_ELEMENTS(src)]; + + reverse_bytes(dest, (const uint8_t *)src, + (const uint8_t *)(src + G_N_ELEMENTS(src) - 1), 2); + g_assert_cmpstr((const char *)dest, ==, result); +} + +static void +test_byte_reverse_3(void) +{ + static const char src[] = "123456"; + static const char result[] = "321654"; + static uint8_t dest[G_N_ELEMENTS(src)]; + + reverse_bytes(dest, (const uint8_t *)src, + (const uint8_t *)(src + G_N_ELEMENTS(src) - 1), 3); + g_assert_cmpstr((const char *)dest, ==, result); +} + +static void +test_byte_reverse_4(void) +{ + static const char src[] = "12345678"; + static const char result[] = "43218765"; + static uint8_t dest[G_N_ELEMENTS(src)]; + + reverse_bytes(dest, (const uint8_t *)src, + (const uint8_t *)(src + G_N_ELEMENTS(src) - 1), 4); + g_assert_cmpstr((const char *)dest, ==, result); +} + +static void +test_byte_reverse_5(void) +{ + static const char src[] = "1234567890"; + static const char result[] = "5432109876"; + static uint8_t dest[G_N_ELEMENTS(src)]; + + reverse_bytes(dest, (const uint8_t *)src, + (const uint8_t *)(src + G_N_ELEMENTS(src) - 1), 5); + g_assert_cmpstr((const char *)dest, ==, result); +} + +int +main(int argc, char **argv) +{ + g_test_init (&argc, &argv, NULL); + g_test_add_func("/util/byte_reverse/2", test_byte_reverse_2); + g_test_add_func("/util/byte_reverse/3", test_byte_reverse_3); + g_test_add_func("/util/byte_reverse/4", test_byte_reverse_4); + g_test_add_func("/util/byte_reverse/5", test_byte_reverse_5); + + g_test_run(); +} diff --git a/test/test_glib_compat.h b/test/test_glib_compat.h index 1d54ec89a..2e4ab123c 100644 --- a/test/test_glib_compat.h +++ b/test/test_glib_compat.h @@ -28,7 +28,10 @@ #if !GLIB_CHECK_VERSION(2,16,0) +#include <string.h> + #define g_assert_cmpint(n1, cmp, n2) g_assert((n1) cmp (n2)) +#define g_assert_cmpstr(a, cmp, b) g_assert(strcmp(a, b) cmp 0) static void (*test_functions[256])(void); static unsigned num_test_functions; |