From 05a4ad6994919b352b5229d0b1b0a8ebebe2a42f Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Tue, 28 Jan 2003 03:53:29 +0000 Subject: 2003-01-27 Havoc Pennington * dbus/dbus-mempool.c (time_for_size): replace printf with _dbus_verbose * dbus/dbus-message-builder.c (_dbus_message_data_load): allow empty lines; fix the SAVE_LENGTH stuff to be START_LENGTH/END_LENGTH so it actually works; couple other bugfixes * test/Makefile.am (dist-hook): add dist-hook for .message files * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy can be constant or locked. (_dbus_string_free): allow freeing a const string as documented/intended * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility * dbus/dbus-test-main.c (main): take an argument which is the directory containing test data * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir argument to this and load all the messages in test/data/ checking that they can be loaded or not loaded as appropriate. --- test/Makefile.am | 10 ++++++++++ test/data/incomplete-messages/missing-body.message | 12 ++++++++++++ test/data/invalid-messages/bad-endian.message | 13 +++++++++++++ test/data/valid-messages/simplest-manual.message | 14 ++++++++++++++ test/data/valid-messages/simplest.message | 7 ++++--- 5 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 test/data/incomplete-messages/missing-body.message create mode 100644 test/data/invalid-messages/bad-endian.message create mode 100644 test/data/valid-messages/simplest-manual.message (limited to 'test') diff --git a/test/Makefile.am b/test/Makefile.am index 4ddf2603..f0118ee6 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -24,3 +24,13 @@ TEST_LIBS=$(DBUS_TEST_LIBS) $(top_builddir)/dbus/libdbus-convenience.la $(top_bu echo_client_LDADD=$(TEST_LIBS) echo_server_LDADD=$(TEST_LIBS) +dist-hook: + DIRS="data data/valid-messages" ; \ + for D in $DIRS; do \ + test -d $(distdir)/$D || mkdir $(distdir)/$D ; \ + done ; \ + FILES=`find -name "*.message"` ; \ + for F in $FILES; do \ + echo '-- Disting file '$$F ; \ + cp $F $(distdir)/$$F ; \ + done diff --git a/test/data/incomplete-messages/missing-body.message b/test/data/incomplete-messages/missing-body.message new file mode 100644 index 00000000..c97ef7a3 --- /dev/null +++ b/test/data/incomplete-messages/missing-body.message @@ -0,0 +1,12 @@ +## message that's missing an expected body + +VALID_HEADER +END_LENGTH Header + +## create the body, then chop it off +START_LENGTH Body +TYPE INT32 +INT32 37 +END_LENGTH Body + +CHOP 8 diff --git a/test/data/invalid-messages/bad-endian.message b/test/data/invalid-messages/bad-endian.message new file mode 100644 index 00000000..7a7b75d1 --- /dev/null +++ b/test/data/invalid-messages/bad-endian.message @@ -0,0 +1,13 @@ +## message with invalid endianness tag + +BYTE 'i' +BYTE 0 +BYTE 0 +BYTE 0 +LENGTH Header +LENGTH Body +## client serial +INT32 7 +END_LENGTH Header +START_LENGTH Body +END_LENGTH Body diff --git a/test/data/valid-messages/simplest-manual.message b/test/data/valid-messages/simplest-manual.message new file mode 100644 index 00000000..bf5ddc5b --- /dev/null +++ b/test/data/valid-messages/simplest-manual.message @@ -0,0 +1,14 @@ +## like simplest.message, but doesn't use VALID_HEADER +## convenience command. mostly to test the test framework. + +BYTE 'l' +BYTE 0 +BYTE 0 +BYTE 0 +LENGTH Header +LENGTH Body +## client serial +INT32 7 +END_LENGTH Header +START_LENGTH Body +END_LENGTH Body diff --git a/test/data/valid-messages/simplest.message b/test/data/valid-messages/simplest.message index 949aa852..872a58a6 100644 --- a/test/data/valid-messages/simplest.message +++ b/test/data/valid-messages/simplest.message @@ -1,6 +1,7 @@ ## simplest possible valid message -## this does a LENGTH Header and LENGTH Body +## VALID_HEADER includes a LENGTH Header and LENGTH Body VALID_HEADER -SET_LENGTH Header -SET_LENGTH Body +END_LENGTH Header +START_LENGTH Body +END_LENGTH Body -- cgit