From: Simon McVittie Date: Fri, 28 Sep 2018 16:00:01 +0000 (+0100) Subject: test: Move _dbus_signature_test() here X-Git-Tag: dbus-1.13.10~25^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0dd9853a3706d95b0f5add65116d552bf38f1d04;p=thirdparty%2Fdbus.git test: Move _dbus_signature_test() here This is all public API, so there's no need to embed it in the library. Signed-off-by: Simon McVittie --- diff --git a/dbus/dbus-signature.c b/dbus/dbus-signature.c index 006ac6a5e..01a456bc1 100644 --- a/dbus/dbus-signature.c +++ b/dbus/dbus-signature.c @@ -413,179 +413,3 @@ dbus_type_is_valid (int typecode) } /** @} */ /* end of DBusSignature group */ - -#ifdef DBUS_ENABLE_EMBEDDED_TESTS - -/** - * @ingroup DBusSignatureInternals - * Unit test for DBusSignature. - * - * @returns #TRUE on success. - */ -dbus_bool_t -_dbus_signature_test (const char *test_data_dir _DBUS_GNUC_UNUSED) -{ - DBusSignatureIter iter; - DBusSignatureIter subiter; - DBusSignatureIter subsubiter; - DBusSignatureIter subsubsubiter; - const char *sig; - dbus_bool_t boolres; - - sig = ""; - _dbus_assert (dbus_signature_validate (sig, NULL)); - _dbus_assert (!dbus_signature_validate_single (sig, NULL)); - dbus_signature_iter_init (&iter, sig); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_INVALID); - - sig = DBUS_TYPE_STRING_AS_STRING; - _dbus_assert (dbus_signature_validate (sig, NULL)); - _dbus_assert (dbus_signature_validate_single (sig, NULL)); - dbus_signature_iter_init (&iter, sig); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_STRING); - - sig = DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_BYTE_AS_STRING; - _dbus_assert (dbus_signature_validate (sig, NULL)); - dbus_signature_iter_init (&iter, sig); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_STRING); - boolres = dbus_signature_iter_next (&iter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_BYTE); - - sig = DBUS_TYPE_UINT16_AS_STRING - DBUS_STRUCT_BEGIN_CHAR_AS_STRING - DBUS_TYPE_STRING_AS_STRING - DBUS_TYPE_UINT32_AS_STRING - DBUS_TYPE_VARIANT_AS_STRING - DBUS_TYPE_DOUBLE_AS_STRING - DBUS_STRUCT_END_CHAR_AS_STRING; - _dbus_assert (dbus_signature_validate (sig, NULL)); - dbus_signature_iter_init (&iter, sig); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_UINT16); - boolres = dbus_signature_iter_next (&iter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_STRUCT); - dbus_signature_iter_recurse (&iter, &subiter); - _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_STRING); - boolres = dbus_signature_iter_next (&subiter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_UINT32); - boolres = dbus_signature_iter_next (&subiter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_VARIANT); - boolres = dbus_signature_iter_next (&subiter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_DOUBLE); - - sig = DBUS_TYPE_UINT16_AS_STRING - DBUS_STRUCT_BEGIN_CHAR_AS_STRING - DBUS_TYPE_UINT32_AS_STRING - DBUS_TYPE_BYTE_AS_STRING - DBUS_TYPE_ARRAY_AS_STRING - DBUS_TYPE_ARRAY_AS_STRING - DBUS_TYPE_DOUBLE_AS_STRING - DBUS_STRUCT_BEGIN_CHAR_AS_STRING - DBUS_TYPE_BYTE_AS_STRING - DBUS_STRUCT_END_CHAR_AS_STRING - DBUS_STRUCT_END_CHAR_AS_STRING; - _dbus_assert (dbus_signature_validate (sig, NULL)); - dbus_signature_iter_init (&iter, sig); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_UINT16); - boolres = dbus_signature_iter_next (&iter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_STRUCT); - dbus_signature_iter_recurse (&iter, &subiter); - _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_UINT32); - boolres = dbus_signature_iter_next (&subiter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_BYTE); - boolres = dbus_signature_iter_next (&subiter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_ARRAY); - _dbus_assert (dbus_signature_iter_get_element_type (&subiter) == DBUS_TYPE_ARRAY); - - dbus_signature_iter_recurse (&subiter, &subsubiter); - _dbus_assert (dbus_signature_iter_get_current_type (&subsubiter) == DBUS_TYPE_ARRAY); - _dbus_assert (dbus_signature_iter_get_element_type (&subsubiter) == DBUS_TYPE_DOUBLE); - - dbus_signature_iter_recurse (&subsubiter, &subsubsubiter); - _dbus_assert (dbus_signature_iter_get_current_type (&subsubsubiter) == DBUS_TYPE_DOUBLE); - boolres = dbus_signature_iter_next (&subiter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_STRUCT); - dbus_signature_iter_recurse (&subiter, &subsubiter); - _dbus_assert (dbus_signature_iter_get_current_type (&subsubiter) == DBUS_TYPE_BYTE); - - sig = DBUS_TYPE_ARRAY_AS_STRING - DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING - DBUS_TYPE_INT16_AS_STRING - DBUS_TYPE_STRING_AS_STRING - DBUS_DICT_ENTRY_END_CHAR_AS_STRING - DBUS_TYPE_VARIANT_AS_STRING; - _dbus_assert (dbus_signature_validate (sig, NULL)); - _dbus_assert (!dbus_signature_validate_single (sig, NULL)); - dbus_signature_iter_init (&iter, sig); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_ARRAY); - _dbus_assert (dbus_signature_iter_get_element_type (&iter) == DBUS_TYPE_DICT_ENTRY); - - dbus_signature_iter_recurse (&iter, &subiter); - dbus_signature_iter_recurse (&subiter, &subsubiter); - _dbus_assert (dbus_signature_iter_get_current_type (&subsubiter) == DBUS_TYPE_INT16); - boolres = dbus_signature_iter_next (&subsubiter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&subsubiter) == DBUS_TYPE_STRING); - boolres = dbus_signature_iter_next (&subsubiter); - _dbus_assert (!boolres); - - boolres = dbus_signature_iter_next (&iter); - _dbus_assert (boolres); - _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_VARIANT); - boolres = dbus_signature_iter_next (&iter); - _dbus_assert (!boolres); - - sig = DBUS_TYPE_DICT_ENTRY_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - - sig = DBUS_TYPE_ARRAY_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - - sig = DBUS_TYPE_UINT32_AS_STRING - DBUS_TYPE_ARRAY_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - - sig = DBUS_TYPE_ARRAY_AS_STRING - DBUS_TYPE_DICT_ENTRY_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - - sig = DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - - sig = DBUS_DICT_ENTRY_END_CHAR_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - - sig = DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING - DBUS_TYPE_INT32_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - - sig = DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING - DBUS_TYPE_INT32_AS_STRING - DBUS_TYPE_STRING_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - - sig = DBUS_STRUCT_END_CHAR_AS_STRING - DBUS_STRUCT_BEGIN_CHAR_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - - sig = DBUS_STRUCT_BEGIN_CHAR_AS_STRING - DBUS_TYPE_BOOLEAN_AS_STRING; - _dbus_assert (!dbus_signature_validate (sig, NULL)); - return TRUE; -#if 0 - oom: - _dbus_test_fatal ("out of memory"); - return FALSE; -#endif -} - -#endif - diff --git a/dbus/dbus-test.h b/dbus/dbus-test.h index 3ca2ef97d..36710fbf8 100644 --- a/dbus/dbus-test.h +++ b/dbus/dbus-test.h @@ -46,9 +46,6 @@ dbus_bool_t _dbus_marshal_test (const char *test_data_dir); DBUS_PRIVATE_EXPORT dbus_bool_t _dbus_misc_test (const char *test_data_dir); -DBUS_PRIVATE_EXPORT -dbus_bool_t _dbus_signature_test (const char *test_data_dir); - DBUS_PRIVATE_EXPORT dbus_bool_t _dbus_mem_pool_test (const char *test_data_dir); diff --git a/test/internals/misc-internals.c b/test/internals/misc-internals.c index 579b00e7e..30c750dbb 100644 --- a/test/internals/misc-internals.c +++ b/test/internals/misc-internals.c @@ -1,6 +1,8 @@ /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ /* - * Copyright 2002-2009 Red Hat, Inc. + * Copyright 2002-2011 Red Hat, Inc. + * Copyright 2006 Julio M. Merino Vidal + * Copyright 2006 Ralf Habacker * Copyright 2011-2018 Collabora Ltd. * * Licensed under the Academic Free License version 2.1 @@ -23,12 +25,185 @@ #include +#include #include "dbus/dbus-internals.h" #include "dbus/dbus-test.h" +#include "dbus/dbus-test-tap.h" #include "test/test-utils.h" #include "misc-internals.h" +/** + * @ingroup DBusSignatureInternals + * Unit test for DBusSignature. + * + * @returns #TRUE on success. + */ +static dbus_bool_t +_dbus_signature_test (const char *test_data_dir _DBUS_GNUC_UNUSED) +{ + DBusSignatureIter iter; + DBusSignatureIter subiter; + DBusSignatureIter subsubiter; + DBusSignatureIter subsubsubiter; + const char *sig; + dbus_bool_t boolres; + + sig = ""; + _dbus_assert (dbus_signature_validate (sig, NULL)); + _dbus_assert (!dbus_signature_validate_single (sig, NULL)); + dbus_signature_iter_init (&iter, sig); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_INVALID); + + sig = DBUS_TYPE_STRING_AS_STRING; + _dbus_assert (dbus_signature_validate (sig, NULL)); + _dbus_assert (dbus_signature_validate_single (sig, NULL)); + dbus_signature_iter_init (&iter, sig); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_STRING); + + sig = DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_BYTE_AS_STRING; + _dbus_assert (dbus_signature_validate (sig, NULL)); + dbus_signature_iter_init (&iter, sig); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_STRING); + boolres = dbus_signature_iter_next (&iter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_BYTE); + + sig = DBUS_TYPE_UINT16_AS_STRING + DBUS_STRUCT_BEGIN_CHAR_AS_STRING + DBUS_TYPE_STRING_AS_STRING + DBUS_TYPE_UINT32_AS_STRING + DBUS_TYPE_VARIANT_AS_STRING + DBUS_TYPE_DOUBLE_AS_STRING + DBUS_STRUCT_END_CHAR_AS_STRING; + _dbus_assert (dbus_signature_validate (sig, NULL)); + dbus_signature_iter_init (&iter, sig); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_UINT16); + boolres = dbus_signature_iter_next (&iter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_STRUCT); + dbus_signature_iter_recurse (&iter, &subiter); + _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_STRING); + boolres = dbus_signature_iter_next (&subiter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_UINT32); + boolres = dbus_signature_iter_next (&subiter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_VARIANT); + boolres = dbus_signature_iter_next (&subiter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_DOUBLE); + + sig = DBUS_TYPE_UINT16_AS_STRING + DBUS_STRUCT_BEGIN_CHAR_AS_STRING + DBUS_TYPE_UINT32_AS_STRING + DBUS_TYPE_BYTE_AS_STRING + DBUS_TYPE_ARRAY_AS_STRING + DBUS_TYPE_ARRAY_AS_STRING + DBUS_TYPE_DOUBLE_AS_STRING + DBUS_STRUCT_BEGIN_CHAR_AS_STRING + DBUS_TYPE_BYTE_AS_STRING + DBUS_STRUCT_END_CHAR_AS_STRING + DBUS_STRUCT_END_CHAR_AS_STRING; + _dbus_assert (dbus_signature_validate (sig, NULL)); + dbus_signature_iter_init (&iter, sig); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_UINT16); + boolres = dbus_signature_iter_next (&iter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_STRUCT); + dbus_signature_iter_recurse (&iter, &subiter); + _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_UINT32); + boolres = dbus_signature_iter_next (&subiter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_BYTE); + boolres = dbus_signature_iter_next (&subiter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_ARRAY); + _dbus_assert (dbus_signature_iter_get_element_type (&subiter) == DBUS_TYPE_ARRAY); + + dbus_signature_iter_recurse (&subiter, &subsubiter); + _dbus_assert (dbus_signature_iter_get_current_type (&subsubiter) == DBUS_TYPE_ARRAY); + _dbus_assert (dbus_signature_iter_get_element_type (&subsubiter) == DBUS_TYPE_DOUBLE); + + dbus_signature_iter_recurse (&subsubiter, &subsubsubiter); + _dbus_assert (dbus_signature_iter_get_current_type (&subsubsubiter) == DBUS_TYPE_DOUBLE); + boolres = dbus_signature_iter_next (&subiter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&subiter) == DBUS_TYPE_STRUCT); + dbus_signature_iter_recurse (&subiter, &subsubiter); + _dbus_assert (dbus_signature_iter_get_current_type (&subsubiter) == DBUS_TYPE_BYTE); + + sig = DBUS_TYPE_ARRAY_AS_STRING + DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING + DBUS_TYPE_INT16_AS_STRING + DBUS_TYPE_STRING_AS_STRING + DBUS_DICT_ENTRY_END_CHAR_AS_STRING + DBUS_TYPE_VARIANT_AS_STRING; + _dbus_assert (dbus_signature_validate (sig, NULL)); + _dbus_assert (!dbus_signature_validate_single (sig, NULL)); + dbus_signature_iter_init (&iter, sig); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_ARRAY); + _dbus_assert (dbus_signature_iter_get_element_type (&iter) == DBUS_TYPE_DICT_ENTRY); + + dbus_signature_iter_recurse (&iter, &subiter); + dbus_signature_iter_recurse (&subiter, &subsubiter); + _dbus_assert (dbus_signature_iter_get_current_type (&subsubiter) == DBUS_TYPE_INT16); + boolres = dbus_signature_iter_next (&subsubiter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&subsubiter) == DBUS_TYPE_STRING); + boolres = dbus_signature_iter_next (&subsubiter); + _dbus_assert (!boolres); + + boolres = dbus_signature_iter_next (&iter); + _dbus_assert (boolres); + _dbus_assert (dbus_signature_iter_get_current_type (&iter) == DBUS_TYPE_VARIANT); + boolres = dbus_signature_iter_next (&iter); + _dbus_assert (!boolres); + + sig = DBUS_TYPE_DICT_ENTRY_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + + sig = DBUS_TYPE_ARRAY_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + + sig = DBUS_TYPE_UINT32_AS_STRING + DBUS_TYPE_ARRAY_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + + sig = DBUS_TYPE_ARRAY_AS_STRING + DBUS_TYPE_DICT_ENTRY_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + + sig = DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + + sig = DBUS_DICT_ENTRY_END_CHAR_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + + sig = DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING + DBUS_TYPE_INT32_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + + sig = DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING + DBUS_TYPE_INT32_AS_STRING + DBUS_TYPE_STRING_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + + sig = DBUS_STRUCT_END_CHAR_AS_STRING + DBUS_STRUCT_BEGIN_CHAR_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + + sig = DBUS_STRUCT_BEGIN_CHAR_AS_STRING + DBUS_TYPE_BOOLEAN_AS_STRING; + _dbus_assert (!dbus_signature_validate (sig, NULL)); + return TRUE; +#if 0 + oom: + _dbus_test_fatal ("out of memory"); + return FALSE; +#endif +} + static DBusTestCase tests[] = { { "string", _dbus_string_test },