[Swfdec-commits] 35 commits - test/custom test/.gitignore test/image test/Makefile.am test/swfdec_test_buffer.c test/swfdec_test_buffer.h test/swfdec_test.c test/swfdec_test_function.c test/swfdec_test_http_request.c test/swfdec_test_http_request.h test/swfdec_test_http_server.c test/swfdec_test_image.c test/swfdec_test_initialize.as test/swfdec_test_initialize.h test/swfdec_test_plugin.c test/swfdec_test_plugin.h test/swfdec_test_socket.c test/swfdec_test_socket.h test/swfdec_test_test.c test/swfdec_test_test.h test/swfdec_test_utils.c test/swfdec_test_utils.h test/trace
Benjamin Otte
company at kemper.freedesktop.org
Sun Feb 3 13:15:12 PST 2008
test/.gitignore | 2
test/Makefile.am | 20 +-
test/custom/Makefile.am | 2
test/image/Makefile.am | 2
test/swfdec_test.c | 6
test/swfdec_test_buffer.c | 251 +++++++++++++++++++++++++++++
test/swfdec_test_buffer.h | 60 ++++++
test/swfdec_test_function.c | 2
test/swfdec_test_http_request.c | 125 ++++++++++++--
test/swfdec_test_http_request.h | 3
test/swfdec_test_http_server.c | 58 ++++--
test/swfdec_test_image.c | 8
test/swfdec_test_initialize.as | 19 +-
test/swfdec_test_initialize.h | 208 ++++++++++++++----------
test/swfdec_test_plugin.c | 137 +++++++++++++++
test/swfdec_test_plugin.h | 92 ++++++++++
test/swfdec_test_socket.c | 271 +++++++++++++++++++++++++++++++
test/swfdec_test_socket.h | 61 +++++++
test/swfdec_test_test.c | 344 ++++++++++++++++------------------------
test/swfdec_test_test.h | 21 +-
test/swfdec_test_utils.c | 44 +++++
test/swfdec_test_utils.h | 34 +++
test/trace/Makefile.am | 2
test/trace/default.stas | 9 -
test/trace/default.sts |binary
25 files changed, 1432 insertions(+), 349 deletions(-)
New commits:
commit 2b22e9fd14496fb6e8bb0b2911cd22979ce0132f
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Feb 3 21:39:05 2008 +0100
update gitignore for changed binary name
diff --git a/test/.gitignore b/test/.gitignore
index 4573b5b..16b89ee 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -5,4 +5,4 @@
swfdec_test_function_list.h
compiler
-test
+swfdec-test
commit a1782c570befead0cc61abda02dfb23f64735c41
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Feb 3 21:38:21 2008 +0100
rewrite socket class
It works ok, but has races when sending data from one app to the other and I
dislike that.
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index 7b10699..1737e6c 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -46,7 +46,10 @@ HTTPRequest.prototype.close = Native.HTTPRequest_close;
Socket = Native.Socket;
Socket.prototype = {};
-Socket.prototype.process = Native.Socket_process;
+Socket.prototype.getConnection = Native.Socket_getConnection;
+Socket.prototype.receive = Native.Socket_receive;
+Socket.prototype.send = Native.Socket_send;
+Socket.prototype.close = Native.Socket_close;
Test = Native.Test;
Test.prototype = {};
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index 3bbea82..713a7c7 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -2,7 +2,7 @@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0x07, 0x03, 0x41, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
+ 0x88, 0x43, 0x03, 0x45, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
0x76, 0x65, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x6C,
0x6F, 0x61, 0x64, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x64, 0x69,
0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x49,
@@ -35,89 +35,98 @@ static const unsigned char swfdec_test_initialize[] = {
0x67, 0x00, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x48, 0x54,
0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00,
- 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x53,
- 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65,
- 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F,
- 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F,
- 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F,
- 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54,
- 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00,
- 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65,
- 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65,
- 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E,
- 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72,
- 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67,
- 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65,
- 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x70, 0x72, 0x69,
- 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F,
- 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C,
+ 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x67, 0x65, 0x74, 0x43, 0x6F, 0x6E, 0x6E, 0x65, 0x63,
+ 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x43,
+ 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
+ 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
+ 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x53, 0x6F, 0x63,
+ 0x6B, 0x65, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61,
+ 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61,
+ 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54,
+ 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D,
+ 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F,
+ 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73,
+ 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D,
+ 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E,
+ 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00,
+ 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74,
+ 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72,
+ 0x61, 0x74, 0x65, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67,
+ 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73,
+ 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52,
+ 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C,
0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B,
- 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E,
- 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x03,
- 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0F,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x09, 0x00, 0x08, 0x12, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08,
- 0x13, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x16, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E,
- 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08,
+ 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04,
+ 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00,
+ 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52,
+ 0x17, 0x96, 0x09, 0x00, 0x08, 0x12, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x13, 0x40, 0x1D, 0x96,
+ 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43,
+ 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09,
+ 0x00, 0x08, 0x14, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
+ 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08,
+ 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96,
+ 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08,
+ 0x18, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x1D, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08,
+ 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96,
+ 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1F, 0x07, 0x03, 0x00, 0x00,
0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52,
- 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1D, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1F,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x22, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x27, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x28, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x28, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2A,
- 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x2B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x4E,
- 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x2C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2E, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x30, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x31, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
- 0x96, 0x04, 0x00, 0x08, 0x32, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x34,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x36, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x37, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x39, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x38, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x2B, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x3A, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x3D, 0x1C, 0x12, 0x9D, 0x02, 0x00,
- 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x3E, 0x08, 0x3D, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01,
- 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x52, 0x17, 0x1D, 0x96, 0x02,
- 0x00, 0x08, 0x3F, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x3D, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00,
- 0x08, 0x40, 0x08, 0x3D, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x52, 0x17, 0x1D, 0x00
+ 0x17, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
+ 0x08, 0x22, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x27,
+ 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x28, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x28, 0x4E,
+ 0x1D, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2B, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x2D, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
+ 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2E, 0x4E, 0x4F, 0x96,
+ 0x04, 0x00, 0x08, 0x2F, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x4E, 0x1D, 0x96, 0x02,
+ 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x30, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x31, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x32, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x33, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x34, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x4E,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
+ 0x08, 0x36, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x37, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x38, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x39, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3B,
+ 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3D, 0x4E, 0x96,
+ 0x09, 0x00, 0x08, 0x3C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x3E, 0x07, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x2F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17,
+ 0x96, 0x02, 0x00, 0x08, 0x40, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73,
+ 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x41, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96,
+ 0x04, 0x00, 0x08, 0x42, 0x08, 0x41, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x40, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x43,
+ 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02,
+ 0x00, 0x08, 0x41, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x44, 0x08,
+ 0x41, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x40, 0x52, 0x17, 0x1D, 0x00
};
diff --git a/test/swfdec_test_socket.c b/test/swfdec_test_socket.c
index 7cf921c..036bd7e 100644
--- a/test/swfdec_test_socket.c
+++ b/test/swfdec_test_socket.c
@@ -24,6 +24,7 @@
#include <libsoup/soup-address.h>
#include "swfdec_test_socket.h"
+#include "swfdec_test_buffer.h"
#include "swfdec_test_function.h"
static void
@@ -62,6 +63,9 @@ swfdec_test_socket_dispose (GObject *object)
g_main_context_unref (sock->context);
sock->context = NULL;
}
+ g_slist_foreach (sock->connections, (GFunc) g_object_unref, NULL);
+ g_slist_free (sock->connections);
+ sock->connections = NULL;
G_OBJECT_CLASS (swfdec_test_socket_parent_class)->dispose (object);
}
@@ -82,53 +86,151 @@ swfdec_test_socket_init (SwfdecTestSocket *sock)
/*** AS CODE ***/
-SWFDEC_TEST_FUNCTION ("Socket_process", swfdec_test_socket_process, 0)
-void
-swfdec_test_socket_process (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
- SwfdecAsValue *argv, SwfdecAsValue *retval)
-{
- SwfdecTestSocket *sock;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &sock, "");
+#define swfdec_test_socket_process(sock) do { \
+ g_usleep (1000); \
+} while (g_main_context_iteration ((sock)->context, FALSE))
- while (g_main_context_iteration (sock->context, FALSE));
+static void
+swfdec_test_socket_new_connection (SoupSocket *server, SoupSocket *conn, SwfdecTestSocket *sock)
+{
+ g_object_ref (conn);
+ sock->connections = g_slist_append (sock->connections, conn);
}
-static void swfdec_test_socket_attach (SwfdecTestSocket *sock, SoupSocket *ssock);
-
static void
-swfdec_test_socket_new_connection (SoupSocket *server, SoupSocket *conn, SwfdecTestSocket *sock)
+swfdec_test_socket_attach (SwfdecTestSocket *sock, SoupSocket *ssock)
{
- SwfdecAsContext *context = SWFDEC_AS_OBJECT (sock)->context;
- SwfdecAsValue val;
+ g_assert (sock->socket == NULL);
+
+ sock->socket = ssock;
+ g_signal_connect (ssock, "new-connection",
+ G_CALLBACK (swfdec_test_socket_new_connection), sock);
+}
+
+SWFDEC_TEST_FUNCTION ("Socket_getConnection", swfdec_test_socket_getConnection, 0)
+void
+swfdec_test_socket_getConnection (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecTestSocket *sock;
SwfdecAsObject *new;
+ SwfdecAsValue val;
- if (!swfdec_as_context_use_mem (context, sizeof (SwfdecTestSocket)))
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &sock, "");
+
+ if (!sock->listening) {
+ swfdec_test_throw (cx, "only server sockets may call getConnection");
+ return;
+ }
+ swfdec_test_socket_process (sock);
+ if (sock->connections == NULL) {
+ SWFDEC_AS_VALUE_SET_NULL (retval);
+ return;
+ }
+
+ if (!swfdec_as_context_use_mem (cx, sizeof (SwfdecTestSocket)))
return;
new = g_object_new (SWFDEC_TYPE_TEST_SOCKET, NULL);
- swfdec_as_object_add (new, context, sizeof (SwfdecTestSocket));
- swfdec_as_object_get_variable (context->global,
- swfdec_as_context_get_string (context, "Socket"), &val);
+ swfdec_as_object_add (new, cx, sizeof (SwfdecTestSocket));
+ swfdec_as_object_get_variable (cx->global,
+ swfdec_as_context_get_string (cx, "Socket"), &val);
if (SWFDEC_AS_VALUE_IS_OBJECT (&val))
swfdec_as_object_set_constructor (new, SWFDEC_AS_VALUE_GET_OBJECT (&val));
- g_object_ref (conn);
- swfdec_test_socket_attach (SWFDEC_TEST_SOCKET (new), conn);
- SWFDEC_AS_VALUE_SET_OBJECT (&val, new);
- swfdec_as_object_call (SWFDEC_AS_OBJECT (sock),
- swfdec_as_context_get_string (context, "onNewConnection"),
- 1, &val, NULL);
+ swfdec_test_socket_attach (SWFDEC_TEST_SOCKET (new), sock->connections->data);
+ sock->connections = g_slist_remove (sock->connections, sock->connections->data);
+ SWFDEC_AS_VALUE_SET_OBJECT (retval, new);
}
-static void
-swfdec_test_socket_attach (SwfdecTestSocket *sock, SoupSocket *ssock)
+SWFDEC_TEST_FUNCTION ("Socket_send", swfdec_test_socket_send, 0)
+void
+swfdec_test_socket_send (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
{
- g_assert (sock->socket == NULL);
+ SwfdecTestSocket *sock;
+ SwfdecBuffer *buffer;
+ GError *error = NULL;
+ gsize written;
- sock->socket = ssock;
- g_signal_connect (ssock, "new-connection",
- G_CALLBACK (swfdec_test_socket_new_connection), sock);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &sock, "");
+
+ if (sock->listening) {
+ swfdec_test_throw (cx, "server sockets may not call send");
+ return;
+ }
+ swfdec_test_socket_process (sock);
+ buffer = swfdec_test_buffer_from_args (cx, argc, argv);
+ if (soup_socket_write (sock->socket, buffer->data, buffer->length, &written,
+ NULL, &error) != SOUP_SOCKET_OK) {
+ swfdec_test_throw (cx, "%s", error->message);
+ g_error_free (error);
+ } else if (buffer->length != written) {
+ swfdec_test_throw (cx, "only wrote %u bytes of %u", written, buffer->length);
+ }
+ swfdec_buffer_unref (buffer);
+ swfdec_test_socket_process (sock);
+}
+
+SWFDEC_TEST_FUNCTION ("Socket_receive", swfdec_test_socket_receive, 0)
+void
+swfdec_test_socket_receive (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecTestSocket *sock;
+ SwfdecBuffer *buffer;
+ GError *error = NULL;
+ gsize written;
+ guint len;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &sock, "|i", &len);
+
+ if (sock->listening) {
+ swfdec_test_throw (cx, "server sockets may not call receive");
+ return;
+ }
+ swfdec_test_socket_process (sock);
+ if (len > 0) {
+ buffer = swfdec_buffer_new_and_alloc (len);
+ if (soup_socket_read (sock->socket, buffer->data, buffer->length, &len,
+ NULL, &error) != SOUP_SOCKET_OK) {
+ swfdec_test_throw (cx, "%s", error->message);
+ g_error_free (error);
+ swfdec_buffer_unref (buffer);
+ return;
+ } else if (buffer->length != len) {
+ swfdec_test_throw (cx, "only read %u bytes of %u", written, buffer->length);
+ swfdec_buffer_unref (buffer);
+ return;
+ }
+ } else {
+ SwfdecBufferQueue *queue = swfdec_buffer_queue_new ();
+ SoupSocketIOStatus status = SOUP_SOCKET_OK;
+ while (status == SOUP_SOCKET_OK) {
+ buffer = swfdec_buffer_new_and_alloc (128);
+ status = soup_socket_read (sock->socket, buffer->data, 128, &
+ buffer->length, NULL, &error);
+ if (status != SOUP_SOCKET_OK && status != SOUP_SOCKET_WOULD_BLOCK) {
+ swfdec_test_throw (cx, "%s", error->message);
+ g_error_free (error);
+ swfdec_buffer_unref (buffer);
+ swfdec_buffer_queue_unref (queue);
+ return;
+ }
+ swfdec_buffer_queue_push (queue, buffer);
+ }
+ buffer = swfdec_buffer_queue_pull (queue, swfdec_buffer_queue_get_depth (queue));
+ swfdec_buffer_queue_unref (queue);
+ }
+ SWFDEC_AS_VALUE_SET_OBJECT (retval, swfdec_test_buffer_new (cx, buffer));
+}
+
+SWFDEC_TEST_FUNCTION ("Socket_close", swfdec_test_socket_close, 0)
+void
+swfdec_test_socket_close (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ swfdec_test_throw (cx, "implement");
}
SWFDEC_TEST_FUNCTION ("Socket", swfdec_test_socket_create, swfdec_test_socket_get_type)
@@ -137,11 +239,16 @@ swfdec_test_socket_create (SwfdecAsContext *cx, SwfdecAsObject *object, guint ar
SwfdecAsValue *argv, SwfdecAsValue *retval)
{
SwfdecTestSocket *sock;
+ SoupSocket *ssock;
int port;
SoupAddress *addr;
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &sock, "i", &port);
+ if (!swfdec_as_context_is_constructing (cx))
+ return;
+
+ sock->listening = TRUE;
/* FIXME: throw here? */
if (port < 1024 || port >= 65535) {
swfdec_test_throw (cx, "invalid port %d", port);
@@ -149,13 +256,14 @@ swfdec_test_socket_create (SwfdecAsContext *cx, SwfdecAsObject *object, guint ar
}
addr = soup_address_new_any (SOUP_ADDRESS_FAMILY_IPV4, port);
- sock->socket = soup_socket_new (
+ ssock = soup_socket_new (
SOUP_SOCKET_FLAG_NONBLOCKING, TRUE,
SOUP_SOCKET_ASYNC_CONTEXT, sock->context,
SOUP_SOCKET_LOCAL_ADDRESS, addr,
NULL);
g_object_unref (addr);
- if (!soup_socket_listen (sock->socket)) {
+ swfdec_test_socket_attach (sock, ssock);
+ if (!soup_socket_listen (ssock)) {
swfdec_test_throw (cx, "failed to listen");
return;
}
diff --git a/test/swfdec_test_socket.h b/test/swfdec_test_socket.h
index c33fb3d..95a51de 100644
--- a/test/swfdec_test_socket.h
+++ b/test/swfdec_test_socket.h
@@ -42,6 +42,11 @@ struct _SwfdecTestSocket
GMainContext * context; /* the main context we're running in */
SoupSocket * socket; /* the socket we're servicing */
+ gboolean listening; /* TRUE if it's a listening socket */
+ gboolean connected; /* TRUE if the connection is still alive (valid for both types) */
+
+ /* for listening sockets */
+ GSList * connections; /* connections that still need to be given out */
};
struct _SwfdecTestSocketClass
commit 9779b43e3900003d3154938e1be900c9b8302482
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Feb 3 21:29:20 2008 +0100
add swfdec_test_buffer_from_args()
diff --git a/test/swfdec_test_buffer.c b/test/swfdec_test_buffer.c
index e637298..e05869b 100644
--- a/test/swfdec_test_buffer.c
+++ b/test/swfdec_test_buffer.c
@@ -195,17 +195,13 @@ swfdec_test_buffer_load (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc
SWFDEC_AS_VALUE_SET_OBJECT (retval, buffer);
}
-SWFDEC_TEST_FUNCTION ("Buffer", swfdec_test_buffer_create, swfdec_test_buffer_get_type)
-void
-swfdec_test_buffer_create (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
- SwfdecAsValue *argv, SwfdecAsValue *retval)
+SwfdecBuffer *
+swfdec_test_buffer_from_args (SwfdecAsContext *cx, guint argc, SwfdecAsValue *argv)
{
SwfdecBufferQueue *queue;
- SwfdecTestBuffer *buffer;
+ SwfdecBuffer *buffer;
guint i;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_BUFFER, &buffer, "");
-
queue = swfdec_buffer_queue_new ();
for (i = 0; i < argc; i++) {
SwfdecBuffer *b = NULL;
@@ -228,10 +224,28 @@ swfdec_test_buffer_create (SwfdecAsContext *cx, SwfdecAsObject *object, guint ar
}
i = swfdec_buffer_queue_get_depth (queue);
if (i) {
- buffer->buffer = swfdec_buffer_queue_pull (queue, i);
+ buffer = swfdec_buffer_queue_pull (queue, i);
} else {
- buffer->buffer = swfdec_buffer_new ();
+ buffer = swfdec_buffer_new ();
}
swfdec_buffer_queue_unref (queue);
+
+ return buffer;
+}
+
+SWFDEC_TEST_FUNCTION ("Buffer", swfdec_test_buffer_create, swfdec_test_buffer_get_type)
+void
+swfdec_test_buffer_create (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecTestBuffer *buffer;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_BUFFER, &buffer, "");
+
+ if (!swfdec_as_context_is_constructing (cx))
+ return;
+
+ buffer->buffer = swfdec_test_buffer_from_args (cx, argc, argv);
}
+
diff --git a/test/swfdec_test_buffer.h b/test/swfdec_test_buffer.h
index d80a9f8..7e70f87 100644
--- a/test/swfdec_test_buffer.h
+++ b/test/swfdec_test_buffer.h
@@ -52,5 +52,9 @@ GType swfdec_test_buffer_get_type (void);
SwfdecAsObject *swfdec_test_buffer_new (SwfdecAsContext * context,
SwfdecBuffer * buffer);
+SwfdecBuffer * swfdec_test_buffer_from_args (SwfdecAsContext * cx,
+ guint argc,
+ SwfdecAsValue * argv);
+
G_END_DECLS
#endif
commit e44ef75c1357fe3e9d286755e572c83eb118bee3
Merge: df37812... 8769783...
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Feb 3 12:48:03 2008 +0100
Merge commit 'origin/test' into test
commit df378127d76d216789bb76ef46b68b5ebe0b4118
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Feb 3 12:47:54 2008 +0100
give absolute filenames to the plugin
diff --git a/test/swfdec_test_test.c b/test/swfdec_test_test.c
index 71b5c1e..e056be6 100644
--- a/test/swfdec_test_test.c
+++ b/test/swfdec_test_test.c
@@ -74,7 +74,14 @@ swfdec_test_test_load_plugin (SwfdecTestTest *test, const char *filename)
{
memset (&test->plugin, 0, sizeof (SwfdecTestPlugin));
/* initialize test->plugin */
- test->plugin.filename = g_strdup (filename);
+ /* FIXME: This assumes filenames - do we wanna allow http? */
+ if (g_path_is_absolute (filename)) {
+ test->plugin.filename = g_strdup (filename);
+ } else {
+ char *cur = g_get_current_dir ();
+ test->plugin.filename = g_build_filename (cur, filename, NULL);
+ g_free (cur);
+ }
test->plugin.trace = swfdec_test_test_trace;
test->plugin.quit = swfdec_test_test_quit;
test->plugin.error = swfdec_test_test_error;
commit e13780c8c04faaa7128b1d7db682e2b6201b7280
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Feb 3 12:47:36 2008 +0100
make sure callbacks aren't calling back into the script engine on dispose
diff --git a/test/swfdec_test_test.c b/test/swfdec_test_test.c
index 0d6bd56..71b5c1e 100644
--- a/test/swfdec_test_test.c
+++ b/test/swfdec_test_test.c
@@ -127,6 +127,9 @@ swfdec_test_test_dispose (GObject *object)
{
SwfdecTestTest *test = SWFDEC_TEST_TEST (object);
+ test->plugin_error = TRUE; /* set to avoid callbacks into the engine */
+ swfdec_test_test_unload_plugin (test);
+
if (test->trace) {
swfdec_buffer_queue_unref (test->trace);
test->trace = NULL;
@@ -134,7 +137,6 @@ swfdec_test_test_dispose (GObject *object)
g_free (test->filename);
test->filename = NULL;
- swfdec_test_test_unload_plugin (test);
G_OBJECT_CLASS (swfdec_test_test_parent_class)->dispose (object);
}
commit 9b27e26665e521b216f0666ee9d53aea431d9bf4
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Feb 3 12:46:48 2008 +0100
advance (0) not useful anymore
diff --git a/test/trace/default.stas b/test/trace/default.stas
index 00b4b9a..5ddcddc 100644
--- a/test/trace/default.stas
+++ b/test/trace/default.stas
@@ -25,7 +25,7 @@ run_test = function (t, file) {
var trace = Buffer.load (file + ".trace");
t.advance (0);
t.advance (Math.ceil (10000 / t.rate));
- trace = t.trace.diff (trace);
+ trace = trace.diff (t.trace);
if (trace) {
error ("different trace output");
Native.print (trace);
commit d2d0ac063aca6edc51820959579c276dd2aeea2c
Author: Benjamin Otte <otte at gnome.org>
Date: Sun Feb 3 12:46:05 2008 +0100
allow using an env var to set the player
useful for make check
diff --git a/test/swfdec_test.c b/test/swfdec_test.c
index 0559c75..27fd554 100644
--- a/test/swfdec_test.c
+++ b/test/swfdec_test.c
@@ -107,6 +107,10 @@ main (int argc, char **argv)
return EXIT_FAILURE;
}
+ /* allow env vars instead of options - eases running make check with different settings */
+ if (swfdec_test_plugin_name == NULL)
+ swfdec_test_plugin_name = g_strdup (g_getenv ("SWFDEC_TEST_PLAYER"));
+
script = load_script (script_filename);
g_free (script_filename);
if (script == NULL)
commit 87697834123d26e82125e720502ba1b4a0ee9659
Merge: bf6e150... c7a4757...
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Sat Feb 2 02:46:44 2008 +0200
Merge branch 'test' of ssh://medar@git.freedesktop.org/git/swfdec/swfdec into httptest
commit bf6e1505a60382c0478a7ab3e964128437ba3933
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 18:16:18 2008 +0200
Add port property for HTTPServer
diff --git a/test/swfdec_test_http_server.c b/test/swfdec_test_http_server.c
index c30f0a0..27960bd 100644
--- a/test/swfdec_test_http_server.c
+++ b/test/swfdec_test_http_server.c
@@ -153,6 +153,18 @@ swfdec_test_http_server_init (SwfdecTestHTTPServer *server)
/*** AS CODE ***/
+SWFDEC_TEST_FUNCTION ("HTTPServer_get_port", swfdec_test_http_server_get_port, 0)
+void
+swfdec_test_http_server_get_port (SwfdecAsContext *cx, SwfdecAsObject *object,
+ guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecTestHTTPServer *server;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &server, "");
+
+ SWFDEC_AS_VALUE_SET_INT (retval, server->port);
+}
+
SWFDEC_TEST_FUNCTION ("HTTPServer_getRequest", swfdec_test_http_server_get_request, 0)
void
swfdec_test_http_server_get_request (SwfdecAsContext *cx,
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index 018c56c..7b10699 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -30,6 +30,7 @@ Image.prototype.save = Native.Image_save;
HTTPServer = Native.HTTPServer;
HTTPServer.prototype = {};
HTTPServer.prototype.getRequest = Native.HTTPServer_getRequest;
+HTTPServer.prototype.addProperty ("port", Native.HTTPServer_get_port, null);
HTTPRequest = new Object ();
HTTPRequest.prototype = {};
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index e0ebfd3..3bbea82 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -2,7 +2,7 @@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0xEE, 0x02, 0x3F, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
+ 0x88, 0x07, 0x03, 0x41, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
0x76, 0x65, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x6C,
0x6F, 0x61, 0x64, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x64, 0x69,
0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x49,
@@ -11,109 +11,113 @@ static const unsigned char swfdec_test_initialize[] = {
0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x73, 0x61, 0x76, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x00, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5F, 0x67, 0x65, 0x74, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x00, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x70, 0x6F, 0x72, 0x74, 0x00, 0x48, 0x54, 0x54, 0x50,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x70, 0x6F, 0x72, 0x74, 0x00,
+ 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x00, 0x48, 0x54, 0x54, 0x50,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x75, 0x72, 0x6C,
0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74,
- 0x5F, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65,
- 0x72, 0x74, 0x79, 0x00, 0x75, 0x72, 0x6C, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x75, 0x72, 0x6C, 0x00, 0x70, 0x61, 0x74, 0x68,
- 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74,
- 0x5F, 0x70, 0x61, 0x74, 0x68, 0x00, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x48, 0x54,
- 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70,
- 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65,
- 0x74, 0x5F, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x48, 0x54,
- 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x63, 0x6F,
- 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x43, 0x6F, 0x64, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00,
- 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72,
- 0x69, 0x6E, 0x67, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F,
- 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x48, 0x54,
- 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x63,
- 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x5F, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72,
- 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F,
- 0x63, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63,
- 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D,
- 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D,
- 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
- 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65,
- 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C,
- 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
- 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54,
- 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74,
- 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65,
- 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x74,
- 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F,
- 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20,
- 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06,
- 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E,
- 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07,
- 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08,
- 0x10, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00,
+ 0x5F, 0x75, 0x72, 0x6C, 0x00, 0x70, 0x61, 0x74, 0x68, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x70, 0x61, 0x74, 0x68, 0x00, 0x68,
+ 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x63,
+ 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x63, 0x6F, 0x6E, 0x74, 0x65,
+ 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x00, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x48, 0x54,
+ 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
+ 0x6F, 0x64, 0x65, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x48, 0x54, 0x54,
+ 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E,
+ 0x67, 0x00, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x48, 0x54,
+ 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00,
+ 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x53,
+ 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65,
+ 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F,
+ 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F,
+ 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F,
+ 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54,
+ 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00,
+ 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65,
+ 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65,
+ 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E,
+ 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72,
+ 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67,
+ 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65,
+ 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x70, 0x72, 0x69,
+ 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F,
+ 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96,
+ 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C,
+ 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B,
+ 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E,
+ 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x03,
+ 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0F,
+ 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
+ 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x09, 0x00, 0x08, 0x12, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08,
+ 0x13, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00,
0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x12, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x11, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E,
- 0x96, 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52,
- 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1C, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1F, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1D,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x20, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x22, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x26, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x27, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x28,
- 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x29, 0x4E,
- 0x1D, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x2A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2C, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x2F, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
- 0x96, 0x04, 0x00, 0x08, 0x30, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x31, 0x4E, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x32,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x34, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x35, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x37, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x36, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x29, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x39, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x38, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x3B, 0x1C, 0x12, 0x9D, 0x02, 0x00,
- 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x3C, 0x08, 0x3B, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01,
- 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x52, 0x17, 0x1D, 0x96, 0x02,
- 0x00, 0x08, 0x3D, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x3B, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00,
- 0x08, 0x3E, 0x08, 0x3B, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x52, 0x17, 0x1D, 0x00
+ 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x16, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E,
+ 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52,
+ 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1D, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x4E, 0x96,
+ 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1F,
+ 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
+ 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
+ 0x4E, 0x96, 0x04, 0x00, 0x08, 0x22, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x27, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x28, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x28, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2A,
+ 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x2B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x4E,
+ 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x2C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2E, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x30, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x31, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
+ 0x96, 0x04, 0x00, 0x08, 0x32, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x34,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x36, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x37, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x39, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x38, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x2B, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x3A, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x2B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x3D, 0x1C, 0x12, 0x9D, 0x02, 0x00,
+ 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x3E, 0x08, 0x3D, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01,
+ 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x52, 0x17, 0x1D, 0x96, 0x02,
+ 0x00, 0x08, 0x3F, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27,
+ 0x00, 0x96, 0x02, 0x00, 0x08, 0x3D, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00,
+ 0x08, 0x40, 0x08, 0x3D, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3C, 0x52, 0x17, 0x1D, 0x00
};
commit 3a7b5ccc4b7987f77cbe872906ac18afa0de075b
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 18:13:49 2008 +0200
Always require a port number when creating new HTTPServer
diff --git a/test/swfdec_test_http_server.c b/test/swfdec_test_http_server.c
index 0400501..c30f0a0 100644
--- a/test/swfdec_test_http_server.c
+++ b/test/swfdec_test_http_server.c
@@ -191,10 +191,10 @@ swfdec_test_http_server_create (SwfdecAsContext *cx, SwfdecAsObject *object, gui
SwfdecTestHTTPServer *server;
int port;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_SERVER, &server, "|i", &port);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_SERVER, &server, "i", &port);
if (port <= 0)
- port = 12345;
+ return;
server->port = port;
commit 8457a9cc58a177521a2efb52302fdce92722b7e7
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 18:10:47 2008 +0200
Simplify the statusCode handling
diff --git a/test/swfdec_test_http_request.c b/test/swfdec_test_http_request.c
index fdeca46..5541e02 100644
--- a/test/swfdec_test_http_request.c
+++ b/test/swfdec_test_http_request.c
@@ -55,8 +55,7 @@ swfdec_test_http_request_new (SwfdecAsContext *context,
soup_message_headers_set_encoding (message->response_headers,
SOUP_ENCODING_CHUNKED);
soup_message_set_flags (message, SOUP_MESSAGE_OVERWRITE_CHUNKS);
- soup_message_set_status (request->message,
- SOUP_STATUS_INTERNAL_SERVER_ERROR);
+ soup_message_set_status (message, SOUP_STATUS_OK);
SWFDEC_TEST_HTTP_REQUEST (ret)->server = server;
SWFDEC_TEST_HTTP_REQUEST (ret)->message = message;
@@ -266,11 +265,7 @@ swfdec_test_http_request_get_statusCode (SwfdecAsContext *cx,
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "");
- if (request->status_set) {
- SWFDEC_AS_VALUE_SET_INT (retval, request->message->status_code);
- } else {
- SWFDEC_AS_VALUE_SET_NULL (retval);
- }
+ SWFDEC_AS_VALUE_SET_INT (retval, request->message->status_code);
}
SWFDEC_TEST_FUNCTION ("HTTPRequest_set_statusCode", swfdec_test_http_request_set_statusCode, 0)
@@ -280,26 +275,19 @@ swfdec_test_http_request_set_statusCode (SwfdecAsContext *cx,
SwfdecAsValue *retval)
{
SwfdecTestHTTPRequest *request;
- SwfdecAsValue val;
+ int status_code;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "v", &val);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "i", &status_code);
+
+ if (status_code < 0)
+ return;
if (request->state > SWFDEC_TEST_HTTP_REQUEST_STATE_WAITING) {
swfdec_test_throw (cx, "Headers have already been sent");
return;
}
- if (SWFDEC_AS_VALUE_IS_NULL (&val) || SWFDEC_AS_VALUE_IS_UNDEFINED (&val)) {
- soup_message_set_status (request->message,
- SOUP_STATUS_INTERNAL_SERVER_ERROR);
- request->status_set = FALSE;
- } else {
- int status_code = swfdec_as_value_to_integer (cx, &val);
- if (status_code < 0)
- return;
- soup_message_set_status (request->message, status_code);
- request->status_set = TRUE;
- }
+ soup_message_set_status (request->message, status_code);
}
SWFDEC_TEST_FUNCTION ("HTTPRequest_send", swfdec_test_http_request_send, 0)
@@ -317,11 +305,6 @@ swfdec_test_http_request_send (SwfdecAsContext *cx, SwfdecAsObject *object,
return;
}
- if (!request->status_set) {
- soup_message_set_status (request->message, SOUP_STATUS_OK);
- request->status_set = TRUE;
- }
-
if (SWFDEC_AS_VALUE_IS_OBJECT (&val) &&
SWFDEC_IS_TEST_BUFFER (SWFDEC_AS_VALUE_GET_OBJECT (&val))) {
SwfdecTestBuffer *buffer =
@@ -355,11 +338,6 @@ swfdec_test_http_request_close (SwfdecAsContext *cx, SwfdecAsObject *object,
return;
}
- if (!request->status_set) {
- soup_message_set_status (request->message, SOUP_STATUS_OK);
- request->status_set = TRUE;
- }
-
soup_message_body_complete (request->message->response_body);
soup_server_unpause_message (request->server->server, request->message);
diff --git a/test/swfdec_test_http_request.h b/test/swfdec_test_http_request.h
index e4b08ae..892f079 100644
--- a/test/swfdec_test_http_request.h
+++ b/test/swfdec_test_http_request.h
@@ -51,9 +51,8 @@ struct _SwfdecTestHTTPRequest
SwfdecTestHTTPServer * server;
SoupMessage * message;
- gboolean status_set;
- SwfdecTestHTTPRequestState state;
+ SwfdecTestHTTPRequestState state;
SwfdecAsObject * headers;
};
commit de8d0437dfbc973c6b92c63251cf1a8e587d596f
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 18:07:39 2008 +0200
Add statusCode property for HTTPRequest
diff --git a/test/swfdec_test_http_request.c b/test/swfdec_test_http_request.c
index 51a4757..fdeca46 100644
--- a/test/swfdec_test_http_request.c
+++ b/test/swfdec_test_http_request.c
@@ -55,11 +55,11 @@ swfdec_test_http_request_new (SwfdecAsContext *context,
soup_message_headers_set_encoding (message->response_headers,
SOUP_ENCODING_CHUNKED);
soup_message_set_flags (message, SOUP_MESSAGE_OVERWRITE_CHUNKS);
+ soup_message_set_status (request->message,
+ SOUP_STATUS_INTERNAL_SERVER_ERROR);
SWFDEC_TEST_HTTP_REQUEST (ret)->server = server;
SWFDEC_TEST_HTTP_REQUEST (ret)->message = message;
- SWFDEC_TEST_HTTP_REQUEST (ret)->state =
- SWFDEC_TEST_HTTP_REQUEST_STATE_WAITING;
return ret;
}
@@ -256,6 +256,52 @@ swfdec_test_http_request_set_contentType (SwfdecAsContext *cx,
}
}
+SWFDEC_TEST_FUNCTION ("HTTPRequest_get_statusCode", swfdec_test_http_request_get_statusCode, 0)
+void
+swfdec_test_http_request_get_statusCode (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *retval)
+{
+ SwfdecTestHTTPRequest *request;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "");
+
+ if (request->status_set) {
+ SWFDEC_AS_VALUE_SET_INT (retval, request->message->status_code);
+ } else {
+ SWFDEC_AS_VALUE_SET_NULL (retval);
+ }
+}
+
+SWFDEC_TEST_FUNCTION ("HTTPRequest_set_statusCode", swfdec_test_http_request_set_statusCode, 0)
+void
+swfdec_test_http_request_set_statusCode (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *retval)
+{
+ SwfdecTestHTTPRequest *request;
+ SwfdecAsValue val;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "v", &val);
+
+ if (request->state > SWFDEC_TEST_HTTP_REQUEST_STATE_WAITING) {
+ swfdec_test_throw (cx, "Headers have already been sent");
+ return;
+ }
+
+ if (SWFDEC_AS_VALUE_IS_NULL (&val) || SWFDEC_AS_VALUE_IS_UNDEFINED (&val)) {
+ soup_message_set_status (request->message,
+ SOUP_STATUS_INTERNAL_SERVER_ERROR);
+ request->status_set = FALSE;
+ } else {
+ int status_code = swfdec_as_value_to_integer (cx, &val);
+ if (status_code < 0)
+ return;
+ soup_message_set_status (request->message, status_code);
+ request->status_set = TRUE;
+ }
+}
+
SWFDEC_TEST_FUNCTION ("HTTPRequest_send", swfdec_test_http_request_send, 0)
void
swfdec_test_http_request_send (SwfdecAsContext *cx, SwfdecAsObject *object,
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index 1843080..018c56c 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -38,6 +38,7 @@ HTTPRequest.prototype.addProperty ("url", Native.HTTPRequest_get_url, null);
HTTPRequest.prototype.addProperty ("path", Native.HTTPRequest_get_path, null);
HTTPRequest.prototype.addProperty ("headers", Native.HTTPRequest_get_headers, null);
HTTPRequest.prototype.addProperty ("contentType", Native.HTTPRequest_get_contentType, Native.HTTPRequest_set_contentType);
+HTTPRequest.prototype.addProperty ("statusCode", Native.HTTPRequest_get_statusCode, Native.HTTPRequest_set_statusCode);
HTTPRequest.prototype.toString = Native.HTTPRequest_toString;
HTTPRequest.prototype.send = Native.HTTPRequest_send;
HTTPRequest.prototype.close = Native.HTTPRequest_close;
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index 0a2476a..e0ebfd3 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -2,7 +2,7 @@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0xAD, 0x02, 0x3C, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
+ 0x88, 0xEE, 0x02, 0x3F, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
0x76, 0x65, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x6C,
0x6F, 0x61, 0x64, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x64, 0x69,
0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x49,
@@ -24,89 +24,96 @@ static const unsigned char swfdec_test_initialize[] = {
0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65,
0x74, 0x5F, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x48, 0x54,
0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x63, 0x6F,
- 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69,
- 0x6E, 0x67, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x74,
- 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x48, 0x54, 0x54,
- 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x63, 0x6C,
- 0x6F, 0x73, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F,
- 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72, 0x6F,
- 0x63, 0x65, 0x73, 0x73, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F, 0x63,
- 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65,
- 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F,
- 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F,
- 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70,
- 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
- 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65,
- 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72,
- 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65,
- 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00,
- 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00,
- 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61,
- 0x63, 0x65, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A,
- 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00,
- 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96,
- 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E,
- 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00,
- 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10,
- 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12,
- 0x4E, 0x96, 0x09, 0x00, 0x08, 0x11, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03, 0x00,
- 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13,
- 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96,
- 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17,
- 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1C, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03, 0x00,
- 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13,
- 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x1D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x1F, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x21, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x22, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x23, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23,
- 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
- 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96,
- 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x26, 0x4E, 0x1D, 0x96, 0x02,
- 0x00, 0x08, 0x26, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x27, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x28, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x2A, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x4E,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
- 0x08, 0x2D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2E, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2F, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x31, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x32,
- 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x4E, 0x96,
- 0x09, 0x00, 0x08, 0x33, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x36, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x35, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17,
- 0x96, 0x02, 0x00, 0x08, 0x37, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73,
- 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96,
- 0x04, 0x00, 0x08, 0x39, 0x08, 0x38, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x37, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x3A,
- 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02,
- 0x00, 0x08, 0x38, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x3B, 0x08,
- 0x38, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x37, 0x52, 0x17, 0x1D, 0x00
+ 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x43, 0x6F, 0x64, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00,
+ 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72,
+ 0x69, 0x6E, 0x67, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F,
+ 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x48, 0x54,
+ 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x63,
+ 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x5F, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72,
+ 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F,
+ 0x63, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63,
+ 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D,
+ 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D,
+ 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
+ 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65,
+ 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C,
+ 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
+ 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54,
+ 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74,
+ 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65,
+ 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x74,
+ 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72,
+ 0x61, 0x63, 0x65, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F,
+ 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20,
+ 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D,
+ 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06,
+ 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E,
+ 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07,
+ 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08,
+ 0x10, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x12, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x11, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E,
+ 0x96, 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52,
+ 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1C, 0x4E, 0x96, 0x02, 0x00,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1F, 0x4E, 0x96,
+ 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1D,
+ 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
+ 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
+ 0x4E, 0x96, 0x04, 0x00, 0x08, 0x20, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x4E, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x22, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x26, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x27, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x28,
+ 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x29, 0x4E,
+ 0x1D, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x2A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2C, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x2F, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
+ 0x96, 0x04, 0x00, 0x08, 0x30, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x31, 0x4E, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x32,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x29, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x34, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x35, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x37, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x36, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x29, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x39, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x38, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x29, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x3B, 0x1C, 0x12, 0x9D, 0x02, 0x00,
+ 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x3C, 0x08, 0x3B, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01,
+ 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x52, 0x17, 0x1D, 0x96, 0x02,
+ 0x00, 0x08, 0x3D, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27,
+ 0x00, 0x96, 0x02, 0x00, 0x08, 0x3B, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00,
+ 0x08, 0x3E, 0x08, 0x3B, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x52, 0x17, 0x1D, 0x00
};
commit 2a26f0db298bf90330d4e91f71837ea87ed0a934
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 17:39:30 2008 +0200
Rename HTTPRequest.push to send
diff --git a/test/swfdec_test_http_request.c b/test/swfdec_test_http_request.c
index 8067369..51a4757 100644
--- a/test/swfdec_test_http_request.c
+++ b/test/swfdec_test_http_request.c
@@ -256,9 +256,9 @@ swfdec_test_http_request_set_contentType (SwfdecAsContext *cx,
}
}
-SWFDEC_TEST_FUNCTION ("HTTPRequest_push", swfdec_test_http_request_push, 0)
+SWFDEC_TEST_FUNCTION ("HTTPRequest_send", swfdec_test_http_request_send, 0)
void
-swfdec_test_http_request_push (SwfdecAsContext *cx, SwfdecAsObject *object,
+swfdec_test_http_request_send (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval)
{
SwfdecTestHTTPRequest *request;
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index 36f090d..1843080 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -39,7 +39,7 @@ HTTPRequest.prototype.addProperty ("path", Native.HTTPRequest_get_path, null);
HTTPRequest.prototype.addProperty ("headers", Native.HTTPRequest_get_headers, null);
HTTPRequest.prototype.addProperty ("contentType", Native.HTTPRequest_get_contentType, Native.HTTPRequest_set_contentType);
HTTPRequest.prototype.toString = Native.HTTPRequest_toString;
-HTTPRequest.prototype.push = Native.HTTPRequest_push;
+HTTPRequest.prototype.send = Native.HTTPRequest_send;
HTTPRequest.prototype.close = Native.HTTPRequest_close;
Socket = Native.Socket;
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index 77e9e5e..0a2476a 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -26,8 +26,8 @@ static const unsigned char swfdec_test_initialize[] = {
0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x63, 0x6F,
0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69,
0x6E, 0x67, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x74,
- 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x70, 0x75, 0x73, 0x68, 0x00, 0x48, 0x54, 0x54,
- 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x75, 0x73, 0x68, 0x00, 0x63, 0x6C,
+ 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x48, 0x54, 0x54,
+ 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x63, 0x6C,
0x6F, 0x73, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F,
0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72, 0x6F,
0x63, 0x65, 0x73, 0x73, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F, 0x63,
commit 2eca9de48c8f2d928b56876b97438a84826c477c
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 17:25:27 2008 +0200
Add support for pushing Buffers in HTTPRequest
diff --git a/test/swfdec_test_http_request.c b/test/swfdec_test_http_request.c
index 0977e18..8067369 100644
--- a/test/swfdec_test_http_request.c
+++ b/test/swfdec_test_http_request.c
@@ -26,6 +26,7 @@
#include "swfdec_test_http_request.h"
#include "swfdec_test_http_server.h"
+#include "swfdec_test_buffer.h"
#include "swfdec_test_function.h"
#include "swfdec_test_utils.h"
@@ -261,9 +262,9 @@ swfdec_test_http_request_push (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval)
{
SwfdecTestHTTPRequest *request;
- const char *data;
+ SwfdecAsValue val;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "s", &data);
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "v", &val);
if (request->state > SWFDEC_TEST_HTTP_REQUEST_STATE_SENDING) {
swfdec_test_throw (cx, "Reply has already been sent");
@@ -275,8 +276,18 @@ swfdec_test_http_request_push (SwfdecAsContext *cx, SwfdecAsObject *object,
request->status_set = TRUE;
}
- soup_message_body_append (request->message->response_body, SOUP_MEMORY_COPY,
- data, strlen (data));
+ if (SWFDEC_AS_VALUE_IS_OBJECT (&val) &&
+ SWFDEC_IS_TEST_BUFFER (SWFDEC_AS_VALUE_GET_OBJECT (&val))) {
+ SwfdecTestBuffer *buffer =
+ SWFDEC_TEST_BUFFER (SWFDEC_AS_VALUE_GET_OBJECT (&val));
+ soup_message_body_append (request->message->response_body,
+ SOUP_MEMORY_COPY, buffer->buffer->data, buffer->buffer->length);
+ } else {
+ const char *data = swfdec_as_value_to_string (cx, &val);
+ soup_message_body_append (request->message->response_body,
+ SOUP_MEMORY_COPY, data, strlen (data));
+ }
+
soup_server_unpause_message (request->server->server, request->message);
swfdec_test_http_server_run (request->server);
commit c7a4757dbd3d155e6a9eeb7db91e49c300967130
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 16:22:13 2008 +0100
add screenshot support
diff --git a/test/swfdec_test_plugin.c b/test/swfdec_test_plugin.c
index 9129ae0..bea718d 100644
--- a/test/swfdec_test_plugin.c
+++ b/test/swfdec_test_plugin.c
@@ -43,6 +43,22 @@ swfdec_test_plugin_swfdec_advance (SwfdecTestPlugin *plugin, unsigned int msecs)
}
static void
+swfdec_test_plugin_swfdec_screenshot (SwfdecTestPlugin *plugin, unsigned char *data,
+ guint x, guint y, guint width, guint height)
+{
+ cairo_surface_t *surface;
+ cairo_t *cr;
+
+ surface = cairo_image_surface_create_for_data (data, CAIRO_FORMAT_ARGB32,
+ width, height, width * 4);
+ cr = cairo_create (surface);
+ cairo_translate (cr, -x, -y);
+ swfdec_player_render (plugin->data, cr, x, y, width, height);
+ cairo_destroy (cr);
+ cairo_surface_destroy (surface);
+}
+
+static void
swfdec_test_plugin_swfdec_mouse_move (SwfdecTestPlugin *plugin, double x, double y)
{
swfdec_player_mouse_move (plugin->data, x, y);
@@ -104,10 +120,11 @@ swfdec_test_plugin_swfdec_new (SwfdecTestPlugin *plugin)
SwfdecURL *url;
plugin->advance = swfdec_test_plugin_swfdec_advance;
- plugin->finish = swfdec_test_plugin_swfdec_finish;
+ plugin->screenshot = swfdec_test_plugin_swfdec_screenshot;
plugin->mouse_move = swfdec_test_plugin_swfdec_mouse_move;
plugin->mouse_press = swfdec_test_plugin_swfdec_mouse_press;
plugin->mouse_release = swfdec_test_plugin_swfdec_mouse_release;
+ plugin->finish = swfdec_test_plugin_swfdec_finish;
plugin->data = player = swfdec_player_new (NULL);
g_signal_connect (player, "fscommand", G_CALLBACK (swfdec_test_plugin_swfdec_fscommand), plugin);
diff --git a/test/swfdec_test_plugin.h b/test/swfdec_test_plugin.h
index 83bd3cb..e7a68e9 100644
--- a/test/swfdec_test_plugin.h
+++ b/test/swfdec_test_plugin.h
@@ -54,6 +54,14 @@ struct _SwfdecTestPlugin {
unsigned int rate; /* in 256th of a second */
void (* advance) (SwfdecTestPlugin * plugin,
unsigned int msecs);
+ /* data nulled is ARGB for (provided) width * height with rowstride = width * 4 */
+ /* size is guaranteed to fit into 0,0 x width,height */
+ void (* screenshot) (SwfdecTestPlugin * plugin,
+ unsigned char * data,
+ unsigned int x,
+ unsigned int y,
+ unsigned int width,
+ unsigned int height);
void (* mouse_move) (SwfdecTestPlugin * plugin,
double x,
double y);
diff --git a/test/swfdec_test_test.c b/test/swfdec_test_test.c
index 322ef8a..0d6bd56 100644
--- a/test/swfdec_test_test.c
+++ b/test/swfdec_test_test.c
@@ -266,31 +266,31 @@ void
swfdec_test_test_render (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
SwfdecAsValue *argv, SwfdecAsValue *retval)
{
-#if 0
SwfdecTestTest *test;
SwfdecAsObject *image;
+ int x, y, w, h;
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "|iiii", &x, &y, &w, &h);
- if (!swfdec_test_test_ensure_player (test))
+ if (!test->plugin_loaded || test->plugin_error || test->plugin_quit)
return;
if (argc == 0) {
- swfdec_player_get_size (test->player, &w, &h);
- if (w < 0 || h < 0)
- swfdec_player_get_default_size (test->player, (guint *) &w, (guint *) &h);
+ w = test->plugin.width;
+ h = test->plugin.height;
}
image = swfdec_test_image_new (cx, w, h);
if (image == NULL)
return;
- cr = cairo_create (SWFDEC_TEST_IMAGE (image)->surface);
- cairo_translate (cr, -x, -y);
- swfdec_player_render (test->player, cr, x, y, w, h);
- cairo_destroy (cr);
- SWFDEC_AS_VALUE_SET_OBJECT (retval, image);
-#else
- swfdec_test_throw (cx, "implement");
-#endif
+
+ if (test->plugin.screenshot) {
+ test->plugin.screenshot (&test->plugin,
+ cairo_image_surface_get_data (SWFDEC_TEST_IMAGE (image)->surface),
+ x, y, w, h);
+ SWFDEC_AS_VALUE_SET_OBJECT (retval, image);
+ } else {
+ swfdec_test_throw (cx, "plugin doesn't implement mouse_press");
+ }
}
SWFDEC_TEST_FUNCTION ("Test", swfdec_test_test_new, swfdec_test_test_get_type)
commit e36ac8c072d9fb2f8379ceb74f7cf188dbc0147f
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 16:22:06 2008 +0100
throw if saving fails
diff --git a/test/swfdec_test_image.c b/test/swfdec_test_image.c
index 26282ba..3d3a60e 100644
--- a/test/swfdec_test_image.c
+++ b/test/swfdec_test_image.c
@@ -23,6 +23,7 @@
#include "swfdec_test_image.h"
#include "swfdec_test_function.h"
+#include "swfdec_test_utils.h"
#define SWFDEC_TEST_IMAGE_IS_VALID(image) ((image)->surface && \
cairo_surface_status ((image)->surface) == CAIRO_STATUS_SUCCESS)
@@ -190,6 +191,7 @@ swfdec_test_image_save (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
{
SwfdecTestImage *image;
const char *filename;
+ cairo_status_t status;
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_IMAGE, &image, "s", &filename);
@@ -197,8 +199,10 @@ swfdec_test_image_save (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
if (!SWFDEC_TEST_IMAGE_IS_VALID (image))
return;
- if (cairo_surface_write_to_png (image->surface, filename) != CAIRO_STATUS_SUCCESS)
- return;
+ status = cairo_surface_write_to_png (image->surface, filename);
+ if (status != CAIRO_STATUS_SUCCESS) {
+ swfdec_test_throw (cx, "Couldn't save to %s: %s", filename, cairo_status_to_string (status));
+ }
SWFDEC_AS_VALUE_SET_BOOLEAN (retval, TRUE);
}
commit 40b3bd50194fba1a4889b95e74d02c157ff453bb
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 16:54:47 2008 +0200
Some cleanups for HTTPServer/Request code. Add contentType property
diff --git a/test/swfdec_test_http_request.c b/test/swfdec_test_http_request.c
index 15ab90a..0977e18 100644
--- a/test/swfdec_test_http_request.c
+++ b/test/swfdec_test_http_request.c
@@ -51,6 +51,10 @@ swfdec_test_http_request_new (SwfdecAsContext *context,
if (SWFDEC_AS_VALUE_IS_OBJECT (&val))
swfdec_as_object_set_constructor (ret, SWFDEC_AS_VALUE_GET_OBJECT (&val));
+ soup_message_headers_set_encoding (message->response_headers,
+ SOUP_ENCODING_CHUNKED);
+ soup_message_set_flags (message, SOUP_MESSAGE_OVERWRITE_CHUNKS);
+
SWFDEC_TEST_HTTP_REQUEST (ret)->server = server;
SWFDEC_TEST_HTTP_REQUEST (ret)->message = message;
SWFDEC_TEST_HTTP_REQUEST (ret)->state =
@@ -204,6 +208,53 @@ swfdec_test_http_request_get_headers (SwfdecAsContext *cx,
SWFDEC_AS_VALUE_SET_OBJECT (retval, request->headers);
}
+SWFDEC_TEST_FUNCTION ("HTTPRequest_get_contentType", swfdec_test_http_request_get_contentType, 0)
+void
+swfdec_test_http_request_get_contentType (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *retval)
+{
+ SwfdecTestHTTPRequest *request;
+ const char *value;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "");
+
+ value = soup_message_headers_get (request->message->response_headers,
+ "Content-Type");
+
+ if (value != NULL) {
+ SWFDEC_AS_VALUE_SET_STRING (retval,
+ swfdec_as_context_get_string (cx, value));
+ } else {
+ SWFDEC_AS_VALUE_SET_NULL (retval);
+ }
+}
+
+SWFDEC_TEST_FUNCTION ("HTTPRequest_set_contentType", swfdec_test_http_request_set_contentType, 0)
+void
+swfdec_test_http_request_set_contentType (SwfdecAsContext *cx,
+ SwfdecAsObject *object, guint argc, SwfdecAsValue *argv,
+ SwfdecAsValue *retval)
+{
+ SwfdecTestHTTPRequest *request;
+ SwfdecAsValue val;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "v", &val);
+
+ if (request->state > SWFDEC_TEST_HTTP_REQUEST_STATE_WAITING) {
+ swfdec_test_throw (cx, "Headers have already been sent");
+ return;
+ }
+
+ if (SWFDEC_AS_VALUE_IS_NULL (&val) || SWFDEC_AS_VALUE_IS_UNDEFINED (&val)) {
+ soup_message_headers_remove (request->message->response_headers,
+ "Content-Type");
+ } else {
+ soup_message_headers_replace (request->message->response_headers,
+ "Content-Type", swfdec_as_value_to_string (cx, &val));
+ }
+}
+
SWFDEC_TEST_FUNCTION ("HTTPRequest_push", swfdec_test_http_request_push, 0)
void
swfdec_test_http_request_push (SwfdecAsContext *cx, SwfdecAsObject *object,
diff --git a/test/swfdec_test_http_server.c b/test/swfdec_test_http_server.c
index fc03c0f..0400501 100644
--- a/test/swfdec_test_http_server.c
+++ b/test/swfdec_test_http_server.c
@@ -22,7 +22,6 @@
#include "config.h"
#endif
-#include <unistd.h>
#include <libsoup/soup.h>
#include "swfdec_test_http_server.h"
@@ -39,8 +38,7 @@ swfdec_test_http_server_callback (SoupServer *soup_server,
g_return_if_fail (server->server == soup_server);
- soup_message_headers_set_encoding (message->response_headers,
- SOUP_ENCODING_CHUNKED);
+ soup_server_pause_message (server->server, message);
g_queue_push_head (server->messages, g_object_ref (message));
}
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index 37cb827..36f090d 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -37,6 +37,7 @@ HTTPRequest.prototype.addProperty ("server", Native.HTTPRequest_get_server, null
HTTPRequest.prototype.addProperty ("url", Native.HTTPRequest_get_url, null);
HTTPRequest.prototype.addProperty ("path", Native.HTTPRequest_get_path, null);
HTTPRequest.prototype.addProperty ("headers", Native.HTTPRequest_get_headers, null);
+HTTPRequest.prototype.addProperty ("contentType", Native.HTTPRequest_get_contentType, Native.HTTPRequest_set_contentType);
HTTPRequest.prototype.toString = Native.HTTPRequest_toString;
HTTPRequest.prototype.push = Native.HTTPRequest_push;
HTTPRequest.prototype.close = Native.HTTPRequest_close;
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index 783d316..77e9e5e 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -2,7 +2,7 @@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0x69, 0x02, 0x39, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
+ 0x88, 0xAD, 0x02, 0x3C, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
0x76, 0x65, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x6C,
0x6F, 0x61, 0x64, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x64, 0x69,
0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x49,
@@ -20,86 +20,93 @@ static const unsigned char swfdec_test_initialize[] = {
0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74,
0x5F, 0x70, 0x61, 0x74, 0x68, 0x00, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x48, 0x54,
0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x48,
- 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x74, 0x6F, 0x53, 0x74, 0x72,
- 0x69, 0x6E, 0x67, 0x00, 0x70, 0x75, 0x73, 0x68, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x75, 0x73, 0x68, 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00,
- 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73,
- 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73,
- 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00,
- 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73,
- 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
- 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
- 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73,
- 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73,
- 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00,
- 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61,
- 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72,
- 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74,
- 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74,
- 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00,
- 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x70,
- 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x65, 0x72,
- 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08,
- 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00,
- 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x03, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00,
- 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08,
- 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F,
- 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x40, 0x1D, 0x96, 0x02,
- 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
- 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x4E, 0x96, 0x09, 0x00,
- 0x08, 0x11, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03,
- 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x16,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08,
- 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x1A, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x1C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1D,
- 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x1E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1F, 0x4E, 0x4F, 0x96, 0x04, 0x00,
- 0x08, 0x20, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08,
- 0x20, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x20, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x21, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x22, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x23, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x07,
- 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x27, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x28, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x29, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2A, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x2B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x4E,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
- 0x08, 0x2E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x31, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x30, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E,
- 0x96, 0x09, 0x00, 0x08, 0x32, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x34, 0x8E,
- 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x35, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x36, 0x08, 0x35,
- 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x34, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x37, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x35, 0x1C, 0x12, 0x9D,
- 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x38, 0x08, 0x35, 0x1C, 0x47, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x52, 0x17, 0x1D,
- 0x00
+ 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70,
+ 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65,
+ 0x74, 0x5F, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x48, 0x54,
+ 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x63, 0x6F,
+ 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69,
+ 0x6E, 0x67, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x74,
+ 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x70, 0x75, 0x73, 0x68, 0x00, 0x48, 0x54, 0x54,
+ 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x75, 0x73, 0x68, 0x00, 0x63, 0x6C,
+ 0x6F, 0x73, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F,
+ 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72, 0x6F,
+ 0x63, 0x65, 0x73, 0x73, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F, 0x63,
+ 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65,
+ 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F,
+ 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F,
+ 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70,
+ 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
+ 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65,
+ 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72,
+ 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65,
+ 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00,
+ 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00,
+ 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x74, 0x72,
+ 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61,
+ 0x63, 0x65, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A,
+ 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00,
+ 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96,
+ 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E,
+ 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D,
+ 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
+ 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00,
+ 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10,
+ 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00,
+ 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12,
+ 0x4E, 0x96, 0x09, 0x00, 0x08, 0x11, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03, 0x00,
+ 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13,
+ 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96,
+ 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17,
+ 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1C, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03, 0x00,
+ 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13,
+ 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
+ 0x00, 0x08, 0x1D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x1F, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x21, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x22, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x23, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23,
+ 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00,
+ 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
+ 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96,
+ 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x26, 0x4E, 0x1D, 0x96, 0x02,
+ 0x00, 0x08, 0x26, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x27, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x28, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x2A, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x4E,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
+ 0x08, 0x2D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2E, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2F, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x31, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x32,
+ 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x4E, 0x96,
+ 0x09, 0x00, 0x08, 0x33, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x36, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x35, 0x07, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x26, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17,
+ 0x96, 0x02, 0x00, 0x08, 0x37, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73,
+ 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x38, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96,
+ 0x04, 0x00, 0x08, 0x39, 0x08, 0x38, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x37, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x3A,
+ 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02,
+ 0x00, 0x08, 0x38, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x3B, 0x08,
+ 0x38, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x37, 0x52, 0x17, 0x1D, 0x00
};
commit 1bffe8a4ac6cbe18f8b5af7e82dfa4a52c992058
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 15:54:18 2008 +0100
implement mouse events again
diff --git a/test/swfdec_test_plugin.c b/test/swfdec_test_plugin.c
index abbd653..9129ae0 100644
--- a/test/swfdec_test_plugin.c
+++ b/test/swfdec_test_plugin.c
@@ -43,6 +43,24 @@ swfdec_test_plugin_swfdec_advance (SwfdecTestPlugin *plugin, unsigned int msecs)
}
static void
+swfdec_test_plugin_swfdec_mouse_move (SwfdecTestPlugin *plugin, double x, double y)
+{
+ swfdec_player_mouse_move (plugin->data, x, y);
+}
+
+static void
+swfdec_test_plugin_swfdec_mouse_press (SwfdecTestPlugin *plugin, double x, double y, guint button)
+{
+ swfdec_player_mouse_press (plugin->data, x, y, button);
+}
+
+static void
+swfdec_test_plugin_swfdec_mouse_release (SwfdecTestPlugin *plugin, double x, double y, guint button)
+{
+ swfdec_player_mouse_release (plugin->data, x, y, button);
+}
+
+static void
swfdec_test_plugin_swfdec_finish (SwfdecTestPlugin *plugin)
{
if (plugin->data) {
@@ -87,6 +105,9 @@ swfdec_test_plugin_swfdec_new (SwfdecTestPlugin *plugin)
plugin->advance = swfdec_test_plugin_swfdec_advance;
plugin->finish = swfdec_test_plugin_swfdec_finish;
+ plugin->mouse_move = swfdec_test_plugin_swfdec_mouse_move;
+ plugin->mouse_press = swfdec_test_plugin_swfdec_mouse_press;
+ plugin->mouse_release = swfdec_test_plugin_swfdec_mouse_release;
plugin->data = player = swfdec_player_new (NULL);
g_signal_connect (player, "fscommand", G_CALLBACK (swfdec_test_plugin_swfdec_fscommand), plugin);
diff --git a/test/swfdec_test_plugin.h b/test/swfdec_test_plugin.h
index d7861f9..83bd3cb 100644
--- a/test/swfdec_test_plugin.h
+++ b/test/swfdec_test_plugin.h
@@ -54,6 +54,17 @@ struct _SwfdecTestPlugin {
unsigned int rate; /* in 256th of a second */
void (* advance) (SwfdecTestPlugin * plugin,
unsigned int msecs);
+ void (* mouse_move) (SwfdecTestPlugin * plugin,
+ double x,
+ double y);
+ void (* mouse_press) (SwfdecTestPlugin * plugin,
+ double x,
+ double y,
+ unsigned int button); /* 1 - 32 */
+ void (* mouse_release) (SwfdecTestPlugin * plugin,
+ double x,
+ double y,
+ unsigned int button); /* 1 - 32 */
void (* finish) (SwfdecTestPlugin * plugin);
void * data;
};
diff --git a/test/swfdec_test_test.c b/test/swfdec_test_test.c
index bee1e7a..322ef8a 100644
--- a/test/swfdec_test_test.c
+++ b/test/swfdec_test_test.c
@@ -177,7 +177,11 @@ swfdec_test_test_advance (SwfdecAsContext *cx, SwfdecAsObject *object, guint arg
if (msecs < 0 || !test->plugin_loaded || test->plugin_error || test->plugin_quit)
return;
- test->plugin.advance (&test->plugin, msecs);
+ if (test->plugin.advance) {
+ test->plugin.advance (&test->plugin, msecs);
+ } else {
+ swfdec_test_throw (cx, "plugin doesn't implement advance");
+ }
}
SWFDEC_TEST_FUNCTION ("Test_reset", swfdec_test_test_reset, 0)
@@ -203,14 +207,14 @@ swfdec_test_test_mouse_move (SwfdecAsContext *cx, SwfdecAsObject *object, guint
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "nn", &x, &y);
-#if 0
- if (!swfdec_test_test_ensure_player (test))
+ if (!test->plugin_loaded || test->plugin_error || test->plugin_quit)
return;
- swfdec_player_mouse_move (test->player, x, y);
-#else
- swfdec_test_throw (cx, "implement");
-#endif
+ if (test->plugin.advance) {
+ test->plugin.mouse_move (&test->plugin, x, y);
+ } else {
+ swfdec_test_throw (cx, "plugin doesn't implement mouse_move");
+ }
}
SWFDEC_TEST_FUNCTION ("Test_mouse_press", swfdec_test_test_mouse_press, 0)
@@ -224,15 +228,15 @@ swfdec_test_test_mouse_press (SwfdecAsContext *cx, SwfdecAsObject *object, guint
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "nn|i", &x, &y, &button);
-#if 0
- if (!swfdec_test_test_ensure_player (test))
+ if (!test->plugin_loaded || test->plugin_error || test->plugin_quit)
return;
button = CLAMP (button, 1, 32);
- swfdec_player_mouse_press (test->player, x, y, button);
-#else
- swfdec_test_throw (cx, "implement");
-#endif
+ if (test->plugin.advance) {
+ test->plugin.mouse_press (&test->plugin, x, y, button);
+ } else {
+ swfdec_test_throw (cx, "plugin doesn't implement mouse_press");
+ }
}
SWFDEC_TEST_FUNCTION ("Test_mouse_release", swfdec_test_test_mouse_release, 0)
@@ -246,15 +250,15 @@ swfdec_test_test_mouse_release (SwfdecAsContext *cx, SwfdecAsObject *object, gui
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "nn|i", &x, &y, &button);
-#if 0
- if (!swfdec_test_test_ensure_player (test))
+ if (!test->plugin_loaded || test->plugin_error || test->plugin_quit)
return;
button = CLAMP (button, 1, 32);
- swfdec_player_mouse_release (test->player, x, y, button);
-#else
- swfdec_test_throw (cx, "implement");
-#endif
+ if (test->plugin.advance) {
+ test->plugin.mouse_release (&test->plugin, x, y, button);
+ } else {
+ swfdec_test_throw (cx, "plugin doesn't implement mouse_press");
+ }
}
SWFDEC_TEST_FUNCTION ("Test_render", swfdec_test_test_render, 0)
commit 6b0a346c5bba0b26944e5860f1a156599906c14d
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 15:39:35 2008 +0100
switch to plugin usage
trace directory already works, the rest is broken.
diff --git a/test/swfdec_test.c b/test/swfdec_test.c
index 35e99d1..0559c75 100644
--- a/test/swfdec_test.c
+++ b/test/swfdec_test.c
@@ -31,6 +31,7 @@
#include "swfdec_test_function.h"
#include "swfdec_test_initialize.h"
+#include "swfdec_test_test.h"
/* Start of script file */
@@ -81,6 +82,7 @@ main (int argc, char **argv)
GOptionEntry options[] = {
{ "dump", 'd', 0, G_OPTION_ARG_NONE, &dump, "dump images on failure", FALSE },
+ { "player", 'p', 0, G_OPTION_ARG_STRING, &swfdec_test_plugin_name, "player to test", "NAME" },
{ "script", 's', 0, G_OPTION_ARG_STRING, &script_filename, "script to execute if not ./default.sts", "FILENAME" },
{ NULL }
};
diff --git a/test/swfdec_test_test.c b/test/swfdec_test_test.c
index c263bed..bee1e7a 100644
--- a/test/swfdec_test_test.c
+++ b/test/swfdec_test_test.c
@@ -30,6 +30,94 @@
#include "swfdec_test_image.h"
#include "swfdec_test_utils.h"
+/*** PLUGIN HANDLING ***/
+
+#define SWFDEC_TEST_TEST_FROM_PLUGIN(x) \
+ SWFDEC_TEST_TEST ((gpointer) ((guint8 *) (x) - G_STRUCT_OFFSET (SwfdecTestTest, plugin)))
+
+char *swfdec_test_plugin_name = NULL;
+
+static void
+swfdec_test_test_quit (SwfdecTestPlugin *plugin)
+{
+ SwfdecTestTest *test = SWFDEC_TEST_TEST_FROM_PLUGIN (plugin);
+
+ test->plugin_quit = TRUE;
+}
+
+static void
+swfdec_test_test_error (SwfdecTestPlugin *plugin, const char *description)
+{
+ SwfdecTestTest *test = SWFDEC_TEST_TEST_FROM_PLUGIN (plugin);
+
+ if (test->plugin_error)
+ return;
+ test->plugin_error = TRUE;
+ swfdec_test_throw (SWFDEC_AS_OBJECT (test)->context, description);
+}
+
+static void
+swfdec_test_test_trace (SwfdecTestPlugin *plugin, const char *message)
+{
+ SwfdecTestTest *test = SWFDEC_TEST_TEST_FROM_PLUGIN (plugin);
+ gsize len = strlen (message);
+ SwfdecBuffer *buffer;
+
+ buffer = swfdec_buffer_new_and_alloc (len + 1);
+ memcpy (buffer->data, message, len);
+ buffer->data[len] = '\n';
+ swfdec_buffer_queue_push (test->trace, buffer);
+}
+
+static void
+swfdec_test_test_load_plugin (SwfdecTestTest *test, const char *filename)
+{
+ memset (&test->plugin, 0, sizeof (SwfdecTestPlugin));
+ /* initialize test->plugin */
+ test->plugin.filename = g_strdup (filename);
+ test->plugin.trace = swfdec_test_test_trace;
+ test->plugin.quit = swfdec_test_test_quit;
+ test->plugin.error = swfdec_test_test_error;
+
+ /* load the right values */
+ if (swfdec_test_plugin_name) {
+ void (*init) (SwfdecTestPlugin *plugin);
+ char *dir = g_build_filename (g_get_home_dir (), ".swfdec-test", NULL);
+ char *name = g_module_build_path (dir, swfdec_test_plugin_name);
+ g_free (dir);
+ test->module = g_module_open (name, G_MODULE_BIND_LOCAL);
+ if (test->module == NULL) {
+ swfdec_test_throw (SWFDEC_AS_OBJECT (test)->context, "could not find player \"%s\"",
+ swfdec_test_plugin_name);
+ return;
+ }
+ if (!g_module_symbol (test->module, "swfdec_test_plugin_init", (gpointer) &init)) {
+ g_module_close (test->module);
+ test->module = NULL;
+ }
+ init (&test->plugin);
+ } else {
+ swfdec_test_plugin_swfdec_new (&test->plugin);
+ }
+ test->plugin_loaded = TRUE;
+}
+
+static void
+swfdec_test_test_unload_plugin (SwfdecTestTest *test)
+{
+ if (!test->plugin_loaded)
+ return;
+ test->plugin.finish (&test->plugin);
+ g_free (test->plugin.filename);
+ if (test->module) {
+ g_module_close (test->module);
+ test->module = NULL;
+ }
+ test->plugin_quit = FALSE;
+ test->plugin_error = FALSE;
+ test->plugin_loaded = FALSE;
+}
+
/*** SWFDEC_TEST_TEST ***/
G_DEFINE_TYPE (SwfdecTestTest, swfdec_test_test, SWFDEC_TYPE_AS_OBJECT)
@@ -46,11 +134,7 @@ swfdec_test_test_dispose (GObject *object)
g_free (test->filename);
test->filename = NULL;
- if (test->player) {
- g_signal_handlers_disconnect_matched (test, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, test);
- g_object_unref (test->player);
- test->player = NULL;
- }
+ swfdec_test_test_unload_plugin (test);
G_OBJECT_CLASS (swfdec_test_test_parent_class)->dispose (object);
}
@@ -70,61 +154,14 @@ swfdec_test_test_init (SwfdecTestTest *test)
}
static void
-swfdec_test_test_fscommand (SwfdecPlayer *player, const char *command,
- const char *para, SwfdecTestTest *test)
-{
- if (g_ascii_strcasecmp (command, "quit") == 0) {
- test->player_quit = TRUE;
- }
-}
-
-static void
-swfdec_test_test_trace_cb (SwfdecPlayer *player, const char *message, SwfdecTestTest *test)
-{
- gsize len = strlen (message);
- SwfdecBuffer *buffer;
-
- buffer = swfdec_buffer_new_and_alloc (len + 1);
- memcpy (buffer->data, message, len);
- buffer->data[len] = '\n';
- swfdec_buffer_queue_push (test->trace, buffer);
-}
-
-static gboolean
-swfdec_test_test_ensure_player (SwfdecTestTest *test)
-{
- SwfdecURL *url;
-
- if (test->filename == NULL)
- return FALSE;
- if (test->player)
- return TRUE;
-
- g_assert (test->player_quit == FALSE);
- test->player = swfdec_player_new (NULL);
- url = swfdec_url_new_from_input (test->filename);
- swfdec_player_set_url (test->player, url);
- swfdec_url_free (url);
- g_signal_connect (test->player, "fscommand", G_CALLBACK (swfdec_test_test_fscommand), test);
- g_signal_connect (test->player, "trace", G_CALLBACK (swfdec_test_test_trace_cb), test);
- return TRUE;
-}
-
-static void
swfdec_test_do_reset (SwfdecTestTest *test, const char *filename)
{
- if (test->player) {
- g_signal_handlers_disconnect_matched (test, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, test);
- g_object_unref (test->player);
- test->player = NULL;
- }
+ swfdec_test_test_unload_plugin (test);
swfdec_buffer_queue_clear (test->trace);
if (filename == NULL)
return;
- g_free (test->filename);
- test->filename = g_strdup (filename);
- test->player_quit = FALSE;
+ swfdec_test_test_load_plugin (test, filename);
}
SWFDEC_TEST_FUNCTION ("Test_advance", swfdec_test_test_advance, 0)
@@ -137,23 +174,10 @@ swfdec_test_test_advance (SwfdecAsContext *cx, SwfdecAsObject *object, guint arg
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "i", &msecs);
- if (msecs < 0 || test->player_quit)
- return;
- if (!swfdec_test_test_ensure_player (test))
+ if (msecs < 0 || !test->plugin_loaded || test->plugin_error || test->plugin_quit)
return;
- if (msecs == 0) {
- if (!test->player_quit)
- swfdec_player_advance (test->player, 0);
- } else {
- while (msecs > 0 && !test->player_quit) {
- int next_event = swfdec_player_get_next_event (test->player);
- if (next_event < 0)
- break;
- next_event = MIN (next_event, msecs);
- swfdec_player_advance (test->player, next_event);
- msecs -= next_event;
- }
- }
+
+ test->plugin.advance (&test->plugin, msecs);
}
SWFDEC_TEST_FUNCTION ("Test_reset", swfdec_test_test_reset, 0)
@@ -179,10 +203,14 @@ swfdec_test_test_mouse_move (SwfdecAsContext *cx, SwfdecAsObject *object, guint
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "nn", &x, &y);
+#if 0
if (!swfdec_test_test_ensure_player (test))
return;
swfdec_player_mouse_move (test->player, x, y);
+#else
+ swfdec_test_throw (cx, "implement");
+#endif
}
SWFDEC_TEST_FUNCTION ("Test_mouse_press", swfdec_test_test_mouse_press, 0)
@@ -196,11 +224,15 @@ swfdec_test_test_mouse_press (SwfdecAsContext *cx, SwfdecAsObject *object, guint
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "nn|i", &x, &y, &button);
+#if 0
if (!swfdec_test_test_ensure_player (test))
return;
button = CLAMP (button, 1, 32);
swfdec_player_mouse_press (test->player, x, y, button);
+#else
+ swfdec_test_throw (cx, "implement");
+#endif
}
SWFDEC_TEST_FUNCTION ("Test_mouse_release", swfdec_test_test_mouse_release, 0)
@@ -214,11 +246,15 @@ swfdec_test_test_mouse_release (SwfdecAsContext *cx, SwfdecAsObject *object, gui
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "nn|i", &x, &y, &button);
+#if 0
if (!swfdec_test_test_ensure_player (test))
return;
button = CLAMP (button, 1, 32);
swfdec_player_mouse_release (test->player, x, y, button);
+#else
+ swfdec_test_throw (cx, "implement");
+#endif
}
SWFDEC_TEST_FUNCTION ("Test_render", swfdec_test_test_render, 0)
@@ -226,10 +262,9 @@ void
swfdec_test_test_render (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
SwfdecAsValue *argv, SwfdecAsValue *retval)
{
+#if 0
SwfdecTestTest *test;
SwfdecAsObject *image;
- int x, y, w, h;
- cairo_t *cr;
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "|iiii", &x, &y, &w, &h);
@@ -249,6 +284,9 @@ swfdec_test_test_render (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc
swfdec_player_render (test->player, cr, x, y, w, h);
cairo_destroy (cr);
SWFDEC_AS_VALUE_SET_OBJECT (retval, image);
+#else
+ swfdec_test_throw (cx, "implement");
+#endif
}
SWFDEC_TEST_FUNCTION ("Test", swfdec_test_test_new, swfdec_test_test_get_type)
@@ -293,6 +331,9 @@ swfdec_test_test_get_rate (SwfdecAsContext *cx, SwfdecAsObject *object, guint ar
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "");
- SWFDEC_AS_VALUE_SET_NUMBER (retval, test->player ? swfdec_player_get_rate (test->player) : 0);
+ if (!test->plugin_loaded)
+ return;
+
+ SWFDEC_AS_VALUE_SET_NUMBER (retval, test->plugin.rate / 256.0);
}
diff --git a/test/swfdec_test_test.h b/test/swfdec_test_test.h
index 110aecc..f074108 100644
--- a/test/swfdec_test_test.h
+++ b/test/swfdec_test_test.h
@@ -21,6 +21,7 @@
#define _SWFDEC_TEST_TEST_H_
#include "swfdec_test_plugin.h"
+#include <gmodule.h>
#include <swfdec/swfdec.h>
G_BEGIN_DECLS
@@ -40,9 +41,13 @@ struct _SwfdecTestTest
{
SwfdecAsObject as_object;
+ SwfdecTestPlugin plugin; /* the plugin we use */
+ GModule * module; /* module we loaded the plugin from or NULL */
+ gboolean plugin_loaded; /* the plugin is loaded and ready to rumble */
+ gboolean plugin_quit; /* the plugin has called quit */
+ gboolean plugin_error; /* the plugin has called error */
+
char * filename; /* file the player should be loaded from */
- SwfdecPlayer * player; /* the player or %NULL if none */
- gboolean player_quit; /* the player has called fscommand:quit */
SwfdecBufferQueue * trace; /* all captured trace output */
};
@@ -51,6 +56,8 @@ struct _SwfdecTestTestClass
SwfdecAsObjectClass as_object_class;
};
+extern char *swfdec_test_plugin_name;
+
GType swfdec_test_test_get_type (void);
void swfdec_test_plugin_swfdec_new (SwfdecTestPlugin * plugin);
commit cd93f6d47db6d5ae0a7a28a44b86cc74ec523a70
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 15:39:08 2008 +0100
provide width/height/rate
diff --git a/test/swfdec_test_plugin.c b/test/swfdec_test_plugin.c
index 6a641fb..abbd653 100644
--- a/test/swfdec_test_plugin.c
+++ b/test/swfdec_test_plugin.c
@@ -28,13 +28,27 @@
static void
swfdec_test_plugin_swfdec_advance (SwfdecTestPlugin *plugin, unsigned int msecs)
{
- swfdec_player_advance (plugin->data, msecs);
+ if (msecs == 0) {
+ swfdec_player_advance (plugin->data, 0);
+ } else {
+ while (msecs > 0 && plugin->data) {
+ long next_event = swfdec_player_get_next_event (plugin->data);
+ if (next_event < 0)
+ break;
+ next_event = MIN (next_event, (long) msecs);
+ swfdec_player_advance (plugin->data, next_event);
+ msecs -= next_event;
+ }
+ }
}
static void
swfdec_test_plugin_swfdec_finish (SwfdecTestPlugin *plugin)
{
- g_object_unref (plugin->data);
+ if (plugin->data) {
+ g_object_unref (plugin->data);
+ plugin->data = NULL;
+ }
}
static void
@@ -50,6 +64,18 @@ swfdec_test_plugin_swfdec_fscommand (SwfdecPlayer *player, const char *command,
{
if (g_ascii_strcasecmp (command, "quit") == 0) {
plugin->quit (plugin);
+ swfdec_test_plugin_swfdec_finish (plugin);
+ }
+}
+
+static void
+swfdec_test_plugin_swfdec_notify (SwfdecPlayer *player, GParamSpec *pspec, SwfdecTestPlugin *plugin)
+{
+ if (g_str_equal (pspec->name, "default-width") ||
+ g_str_equal (pspec->name, "default-height")) {
+ swfdec_player_get_default_size (player, &plugin->width, &plugin->height);
+ } else if (g_str_equal (pspec->name, "rate")) {
+ plugin->rate = swfdec_player_get_rate (player) * 256;
}
}
@@ -65,6 +91,7 @@ swfdec_test_plugin_swfdec_new (SwfdecTestPlugin *plugin)
g_signal_connect (player, "fscommand", G_CALLBACK (swfdec_test_plugin_swfdec_fscommand), plugin);
g_signal_connect (player, "trace", G_CALLBACK (swfdec_test_plugin_swfdec_trace), plugin);
+ g_signal_connect (player, "notify", G_CALLBACK (swfdec_test_plugin_swfdec_notify), plugin);
url = swfdec_url_new_from_input (plugin->filename);
swfdec_player_set_url (player, url);
swfdec_url_free (url);
commit bb149cc0becbb9f6338169d8acc69c7175d9bf01
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 15:38:57 2008 +0100
let the plugin provide width/height/rate
diff --git a/test/swfdec_test_plugin.h b/test/swfdec_test_plugin.h
index 86b7f91..d7861f9 100644
--- a/test/swfdec_test_plugin.h
+++ b/test/swfdec_test_plugin.h
@@ -49,6 +49,9 @@ struct _SwfdecTestPlugin {
void (* error) (SwfdecTestPlugin * plugin,
const char * description);
/* initialized by the plugin during swfdec_test_plugin_new() */
+ unsigned int width;
+ unsigned int height;
+ unsigned int rate; /* in 256th of a second */
void (* advance) (SwfdecTestPlugin * plugin,
unsigned int msecs);
void (* finish) (SwfdecTestPlugin * plugin);
commit b2715c1971b8e06cc7f2a501bccc71a194e6ec53
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 15:38:03 2008 +0100
s/test/swfdec-test/
diff --git a/test/custom/Makefile.am b/test/custom/Makefile.am
index f596de7..11b2d82 100644
--- a/test/custom/Makefile.am
+++ b/test/custom/Makefile.am
@@ -1,6 +1,6 @@
check-local:
for file in $(srcdir)/*.sts; do \
- ../test --script $$file $(srcdir)/`basename $$file .sts`*.swf; \
+ ../swfdec-test --script $$file $(srcdir)/`basename $$file .sts`*.swf; \
done
EXTRA_DIST = \
diff --git a/test/image/Makefile.am b/test/image/Makefile.am
index 7fef43b..59e8119 100644
--- a/test/image/Makefile.am
+++ b/test/image/Makefile.am
@@ -1,5 +1,5 @@
check-local:
- ../test --script $(srcdir)/default.sts $(srcdir)/*.swf
+ ../swfdec-test --script $(srcdir)/default.sts $(srcdir)/*.swf
EXTRA_DIST = \
README \
diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index d2173df..df407cd 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -1,5 +1,5 @@
check-local:
- ../test --script $(srcdir)/default.sts $(srcdir)/*.swf
+ ../swfdec-test --script $(srcdir)/default.sts $(srcdir)/*.swf
EXTRA_DIST = \
README \
commit 161fb327d6012512877bc78061a2192ed25732cf
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 13:52:19 2008 +0200
Throw errors in HTTPRequest
diff --git a/test/swfdec_test_http_request.c b/test/swfdec_test_http_request.c
index 9c204a1..15ab90a 100644
--- a/test/swfdec_test_http_request.c
+++ b/test/swfdec_test_http_request.c
@@ -27,6 +27,7 @@
#include "swfdec_test_http_request.h"
#include "swfdec_test_http_server.h"
#include "swfdec_test_function.h"
+#include "swfdec_test_utils.h"
SwfdecAsObject *
swfdec_test_http_request_new (SwfdecAsContext *context,
@@ -213,8 +214,10 @@ swfdec_test_http_request_push (SwfdecAsContext *cx, SwfdecAsObject *object,
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "s", &data);
- if (request->state > SWFDEC_TEST_HTTP_REQUEST_STATE_SENDING)
+ if (request->state > SWFDEC_TEST_HTTP_REQUEST_STATE_SENDING) {
+ swfdec_test_throw (cx, "Reply has already been sent");
return;
+ }
if (!request->status_set) {
soup_message_set_status (request->message, SOUP_STATUS_OK);
@@ -239,8 +242,10 @@ swfdec_test_http_request_close (SwfdecAsContext *cx, SwfdecAsObject *object,
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_REQUEST, &request, "");
- if (request->state == SWFDEC_TEST_HTTP_REQUEST_STATE_SENT)
+ if (request->state == SWFDEC_TEST_HTTP_REQUEST_STATE_SENT) {
+ swfdec_test_throw (cx, "Reply has already been sent");
return;
+ }
if (!request->status_set) {
soup_message_set_status (request->message, SOUP_STATUS_OK);
commit c2a3f848ea386c52932a90c5e48b3751f906c992
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 13:48:33 2008 +0200
Make HTTPServer throw errors, remove debug code, fix a bug when startup failed
diff --git a/test/swfdec_test_http_server.c b/test/swfdec_test_http_server.c
index be54991..fc03c0f 100644
--- a/test/swfdec_test_http_server.c
+++ b/test/swfdec_test_http_server.c
@@ -28,8 +28,7 @@
#include "swfdec_test_http_server.h"
#include "swfdec_test_http_request.h"
#include "swfdec_test_function.h"
-
-#define SWFDEC_TEST_HTTP_SERVER_IS_VALID(server) ((server)->server)
+#include "swfdec_test_utils.h"
static void
swfdec_test_http_server_callback (SoupServer *soup_server,
@@ -69,7 +68,7 @@ swfdec_test_http_server_start (SwfdecTestHTTPServer *server)
server->server = soup_server_new (SOUP_SERVER_PORT, server->port,
SOUP_SERVER_INTERFACE, address, SOUP_SERVER_ASYNC_CONTEXT,
server->context, NULL);
- if (!server) {
+ if (!server->server) {
g_main_context_unref (server->context);
server->context = NULL;
return FALSE;
@@ -102,7 +101,11 @@ swfdec_test_http_server_new (SwfdecAsContext *context, guint port)
SWFDEC_TEST_HTTP_SERVER (ret)->port = port;
- swfdec_test_http_server_start (SWFDEC_TEST_HTTP_SERVER (ret));
+ if (!swfdec_test_http_server_start (SWFDEC_TEST_HTTP_SERVER (ret))) {
+ swfdec_test_throw (context, "Failed to start web server for port %i",
+ port);
+ return NULL;
+ }
return ret;
}
@@ -162,19 +165,17 @@ swfdec_test_http_server_get_request (SwfdecAsContext *cx,
SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_HTTP_SERVER, &server, "");
- SWFDEC_AS_VALUE_SET_NULL (retval);
-
- if (!SWFDEC_TEST_HTTP_SERVER_IS_VALID (server))
+ if (!server->server) {
+ swfdec_test_throw (cx, "Webserver not running");
return;
+ }
- if (g_queue_is_empty (server->messages)) {
- g_print ("waiting\n");
- usleep (1000000);
- g_print ("checking\n");
+ if (g_queue_is_empty (server->messages))
swfdec_test_http_server_run (server);
- }
- if (!g_queue_is_empty (server->messages)) {
+ if (g_queue_is_empty (server->messages)) {
+ SWFDEC_AS_VALUE_SET_NULL (retval);
+ } else {
SwfdecAsObject *request;
request = swfdec_test_http_request_new (cx, server,
@@ -199,5 +200,6 @@ swfdec_test_http_server_create (SwfdecAsContext *cx, SwfdecAsObject *object, gui
server->port = port;
- swfdec_test_http_server_start (server);
+ if (!swfdec_test_http_server_start (server))
+ swfdec_test_throw (cx, "Failed to start web server for port %i", port);
}
commit b173b6b1c711dd228573129366b08235af3982e6
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 13:35:19 2008 +0200
Free messages that where never requested in HTTPServer
diff --git a/test/swfdec_test_http_server.c b/test/swfdec_test_http_server.c
index d6b65be..be54991 100644
--- a/test/swfdec_test_http_server.c
+++ b/test/swfdec_test_http_server.c
@@ -116,6 +116,12 @@ swfdec_test_http_server_dispose (GObject *object)
{
SwfdecTestHTTPServer *server = SWFDEC_TEST_HTTP_SERVER (object);
+ while (!g_queue_is_empty (server->messages)) {
+ g_object_unref (g_queue_pop_tail (server->messages));
+ }
+ g_queue_free (server->messages);
+ server->messages = NULL;
+
if (server->server) {
soup_server_quit (server->server);
g_object_unref (server->server);
@@ -127,8 +133,6 @@ swfdec_test_http_server_dispose (GObject *object)
server->context = NULL;
}
- g_queue_free (server->messages);
-
G_OBJECT_CLASS (swfdec_test_http_server_parent_class)->dispose (object);
}
commit 4c29367c1b1e4dd7000a122fa6a128d2a2595b69
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 13:31:54 2008 +0200
Fix a typo in swfdec_test_socket_process
diff --git a/test/swfdec_test_socket.c b/test/swfdec_test_socket.c
index a0382f6..7cf921c 100644
--- a/test/swfdec_test_socket.c
+++ b/test/swfdec_test_socket.c
@@ -89,7 +89,7 @@ swfdec_test_socket_process (SwfdecAsContext *cx, SwfdecAsObject *object, guint a
{
SwfdecTestSocket *sock;
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &socket, "");
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &sock, "");
while (g_main_context_iteration (sock->context, FALSE));
}
commit 77ce79d179ed289bff2035feb9efc5c7ddb526b0
Merge: ec81057... 43d8d7d...
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri Feb 1 13:30:02 2008 +0200
Merge commit 'origin/test' into httptest
Conflicts:
test/swfdec_test_function.c
test/swfdec_test_initialize.as
test/swfdec_test_initialize.h
diff --cc test/Makefile.am
index 398f442,bb79d49..bdc0196
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@@ -4,12 -4,14 +4,16 @@@ noinst_PROGRAMS = swfdec-tes
swfdec_test_sources = \
swfdec_test.c \
+ swfdec_test_buffer.c \
swfdec_test_function.c \
swfdec_test_global.c \
+ swfdec_test_http_request.c \
+ swfdec_test_http_server.c \
swfdec_test_image.c \
- swfdec_test_test.c
+ swfdec_test_plugin.c \
+ swfdec_test_socket.c \
+ swfdec_test_test.c \
+ swfdec_test_utils.c
BUILT_SOURCES = \
swfdec_test_function_list.h
@@@ -25,16 -27,18 +29,20 @@@ EXTRA_DIST =
swfdec_test_initialize.as
noinst_HEADERS = \
+ swfdec_test_buffer.h \
swfdec_test_function.h \
swfdec_test_function_list.h \
+ swfdec_test_http_request.h \
+ swfdec_test_http_server.h \
swfdec_test_image.h \
swfdec_test_initialize.h \
- swfdec_test_test.h
+ swfdec_test_plugin.h \
+ swfdec_test_socket.h \
+ swfdec_test_test.h \
+ swfdec_test_utils.h
- test_CFLAGS = $(GLOBAL_CFLAGS) $(GTK_CFLAGS) $(SWFDEC_CFLAGS) $(CAIRO_CFLAGS)
- test_LDFLAGS = $(SWFDEC_LIBS) $(GTK_LIBS) $(CAIRO_LIBS)
+ swfdec_test_CFLAGS = $(GLOBAL_CFLAGS) $(GTK_CFLAGS) $(SWFDEC_CFLAGS) $(CAIRO_CFLAGS)
+ swfdec_test_LDFLAGS = $(SWFDEC_LIBS) $(GTK_LIBS) $(CAIRO_LIBS)
swfdec_test_function_list.h: $(swfdec_test_sources)
(cd $(srcdir) \
diff --cc test/swfdec_test_function.c
index 9c5a510,6f13bbb..e29707b
--- a/test/swfdec_test_function.c
+++ b/test/swfdec_test_function.c
@@@ -25,9 -25,9 +25,11 @@@
#include "swfdec_test_function_list.h"
/* needed by the function list */
+#include "swfdec_test_http_request.h"
+#include "swfdec_test_http_server.h"
+ #include "swfdec_test_buffer.h"
#include "swfdec_test_image.h"
+ #include "swfdec_test_socket.h"
#include "swfdec_test_test.h"
diff --cc test/swfdec_test_initialize.as
index 7f94b83,b496163..37cb827
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@@ -22,20 -27,10 +27,24 @@@ Image.prototype = {}
Image.prototype.compare = Native.Image_compare;
Image.prototype.save = Native.Image_save;
+HTTPServer = Native.HTTPServer;
+HTTPServer.prototype = {};
+HTTPServer.prototype.getRequest = Native.HTTPServer_getRequest;
+
+HTTPRequest = new Object ();
+HTTPRequest.prototype = {};
+HTTPRequest.prototype.addProperty ("server", Native.HTTPRequest_get_server, null);
+HTTPRequest.prototype.addProperty ("url", Native.HTTPRequest_get_url, null);
+HTTPRequest.prototype.addProperty ("path", Native.HTTPRequest_get_path, null);
+HTTPRequest.prototype.addProperty ("headers", Native.HTTPRequest_get_headers, null);
+HTTPRequest.prototype.toString = Native.HTTPRequest_toString;
+HTTPRequest.prototype.push = Native.HTTPRequest_push;
+HTTPRequest.prototype.close = Native.HTTPRequest_close;
+
+ Socket = Native.Socket;
+ Socket.prototype = {};
+ Socket.prototype.process = Native.Socket_process;
+
Test = Native.Test;
Test.prototype = {};
Test.prototype.advance = Native.Test_advance;
diff --cc test/swfdec_test_initialize.h
index 9b6c0c8,a8e5023..783d316
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@@ -2,89 -2,67 +2,104 @@@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0x1E, 0x02, 0x31, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x00, 0x4E, 0x61, 0x74, 0x69, 0x76,
- 0x65, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x63, 0x6F, 0x6D, 0x70,
- 0x61, 0x72, 0x65, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72,
- 0x65, 0x00, 0x73, 0x61, 0x76, 0x65, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x73, 0x61, 0x76,
- 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x67, 0x65, 0x74,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76,
- 0x65, 0x72, 0x5F, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x48, 0x54,
- 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74,
- 0x00, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x61,
- 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x00, 0x75, 0x72, 0x6C, 0x00, 0x48,
- 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x75,
- 0x72, 0x6C, 0x00, 0x70, 0x61, 0x74, 0x68, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x70, 0x61, 0x74, 0x68, 0x00, 0x68, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x73, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x74, 0x6F, 0x53,
- 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x5F, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x70, 0x75, 0x73, 0x68, 0x00,
- 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x75, 0x73, 0x68,
- 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64,
- 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E,
- 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65,
- 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F,
- 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D,
- 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65,
- 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F,
- 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64,
- 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72,
- 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00,
- 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65,
- 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72,
- 0x61, 0x74, 0x65, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F,
- 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20,
- 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x03, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00,
- 0x08, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x09, 0x00, 0x08, 0x0A, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0B,
- 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x02, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D,
- 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x02, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x03, 0x00,
- 0x00, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0E,
- 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x4E, 0x96,
- 0x09, 0x00, 0x08, 0x11, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x02, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x14, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x13, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x52, 0x17,
- 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x15, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x16, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x17, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x18, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x19, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1A, 0x4E,
- 0x4F, 0x96, 0x04, 0x00, 0x08, 0x1B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x1B, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x1C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1D, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x1B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x1E, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1F, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x20, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x21, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x22, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x1B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x27, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E,
- 0x96, 0x04, 0x00, 0x08, 0x28, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x29, 0x4E, 0x4F, 0x96,
- 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2B, 0x4E, 0x96, 0x09, 0x00, 0x08,
- 0x2A, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x1B, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x0E, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x8E, 0x0B, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x12,
- 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x2E, 0x08, 0x2D, 0x1C, 0x47, 0x96, 0x07,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x52, 0x17,
- 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00,
- 0x96, 0x04, 0x00, 0x08, 0x30, 0x08, 0x2D, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00,
- 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x52, 0x17, 0x1D, 0x00
- 0x88, 0x6E, 0x01, 0x26, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
++ 0x88, 0x69, 0x02, 0x39, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x6C,
+ 0x6F, 0x61, 0x64, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x64, 0x69,
+ 0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x49,
+ 0x6D, 0x61, 0x67, 0x65, 0x00, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72, 0x65, 0x00, 0x49, 0x6D, 0x61,
+ 0x67, 0x65, 0x5F, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72, 0x65, 0x00, 0x73, 0x61, 0x76, 0x65, 0x00,
- 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x73, 0x61, 0x76, 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65,
- 0x74, 0x00, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74,
- 0x5F, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64,
- 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E,
- 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65,
- 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F,
- 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D,
- 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65,
- 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F,
- 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64,
- 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72,
- 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00,
- 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61,
- 0x74, 0x65, 0x00, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x00, 0x74,
- 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72,
- 0x61, 0x63, 0x65, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F,
- 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20,
- 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06,
- 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E,
- 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07,
- 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0F, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x0F, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x10, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x11, 0x4E,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
- 0x08, 0x12, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x14, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x16, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17,
++ 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x73, 0x61, 0x76, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x53,
++ 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
++ 0x00, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5F, 0x67, 0x65, 0x74, 0x52,
++ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
++ 0x73, 0x74, 0x00, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
++ 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74,
++ 0x5F, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65,
++ 0x72, 0x74, 0x79, 0x00, 0x75, 0x72, 0x6C, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75,
++ 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x75, 0x72, 0x6C, 0x00, 0x70, 0x61, 0x74, 0x68,
++ 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74,
++ 0x5F, 0x70, 0x61, 0x74, 0x68, 0x00, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x48, 0x54,
++ 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x68, 0x65,
++ 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x48,
++ 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x74, 0x6F, 0x53, 0x74, 0x72,
++ 0x69, 0x6E, 0x67, 0x00, 0x70, 0x75, 0x73, 0x68, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71,
++ 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x75, 0x73, 0x68, 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00,
++ 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73,
++ 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73,
++ 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00,
++ 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73,
++ 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
++ 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
++ 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73,
++ 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73,
++ 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00,
++ 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61,
++ 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72,
++ 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74,
++ 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74,
++ 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00,
++ 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x70,
++ 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x65, 0x72,
++ 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08,
++ 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00,
++ 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x03, 0x4E, 0x4F,
++ 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00,
++ 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
++ 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00,
++ 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08,
++ 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02,
++ 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08,
++ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96,
++ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
++ 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00,
++ 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
++ 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F,
++ 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x40, 0x1D, 0x96, 0x02,
++ 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
++ 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x4E, 0x96, 0x09, 0x00,
++ 0x08, 0x11, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
++ 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F,
++ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03,
++ 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x16,
++ 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
++ 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
++ 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96,
++ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08,
++ 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x1A, 0x08, 0x01, 0x1C,
++ 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x1C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1D,
+ 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x18, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x1A, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x1D, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08,
- 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x52, 0x17, 0x96,
- 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x96, 0x09, 0x00, 0x08,
- 0x1F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x1E, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x21, 0x8E, 0x0B, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x22, 0x1C, 0x12,
- 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x23, 0x08, 0x22, 0x1C, 0x47, 0x96, 0x07,
- 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x52, 0x17,
- 0x1D, 0x96, 0x02, 0x00, 0x08, 0x24, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x22, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00,
- 0x96, 0x04, 0x00, 0x08, 0x25, 0x08, 0x22, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00,
- 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x52, 0x17, 0x1D, 0x00
++ 0x00, 0x08, 0x1E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1F, 0x4E, 0x4F, 0x96, 0x04, 0x00,
++ 0x08, 0x20, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08,
++ 0x20, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02,
++ 0x00, 0x08, 0x20, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x21, 0x08,
++ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x22, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x23, 0x08, 0x01,
++ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x07,
++ 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C,
++ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02,
++ 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
++ 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x27, 0x4E, 0x4F,
++ 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
++ 0x28, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x29, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23,
++ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2A, 0x08, 0x01, 0x1C, 0x96,
++ 0x02, 0x00, 0x08, 0x2B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08,
++ 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x4E,
++ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
++ 0x08, 0x2E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02,
++ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x31, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x30, 0x07, 0x03,
++ 0x00, 0x00, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
++ 0x13, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E,
++ 0x96, 0x09, 0x00, 0x08, 0x32, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x23, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x13, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x34, 0x8E,
++ 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00,
++ 0x08, 0x35, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x36, 0x08, 0x35,
++ 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
++ 0x08, 0x34, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x37, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x35, 0x1C, 0x12, 0x9D,
++ 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x38, 0x08, 0x35, 0x1C, 0x47, 0x96, 0x07, 0x00,
++ 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x52, 0x17, 0x1D,
++ 0x00
};
commit 43d8d7d5965b76f254b625a71932ab5a2a7e1fcf
Merge: a5890de... 3f4498b...
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 12:21:11 2008 +0100
Merge branch 'master' into test
commit a5890de4725defa52b39760e67db9a280917ea88
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 11:51:36 2008 +0100
rename test to swfdec-test
diff --git a/test/Makefile.am b/test/Makefile.am
index d5e6903..bb79d49 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,6 +1,6 @@
SUBDIRS = custom image sound trace various
-noinst_PROGRAMS = test
+noinst_PROGRAMS = swfdec-test
swfdec_test_sources = \
swfdec_test.c \
@@ -19,7 +19,7 @@ BUILT_SOURCES = \
CLEANFILES = \
$(BUILT_SOURCES)
-test_SOURCES = \
+swfdec_test_SOURCES = \
$(swfdec_test_sources) \
$(BUILT_SOURCES)
@@ -37,8 +37,8 @@ noinst_HEADERS = \
swfdec_test_test.h \
swfdec_test_utils.h
-test_CFLAGS = $(GLOBAL_CFLAGS) $(GTK_CFLAGS) $(SWFDEC_CFLAGS) $(CAIRO_CFLAGS)
-test_LDFLAGS = $(SWFDEC_LIBS) $(GTK_LIBS) $(CAIRO_LIBS)
+swfdec_test_CFLAGS = $(GLOBAL_CFLAGS) $(GTK_CFLAGS) $(SWFDEC_CFLAGS) $(CAIRO_CFLAGS)
+swfdec_test_LDFLAGS = $(SWFDEC_LIBS) $(GTK_LIBS) $(CAIRO_LIBS)
swfdec_test_function_list.h: $(swfdec_test_sources)
(cd $(srcdir) \
commit fcfe7dab1cfd4872074c46dbb82398f6f42e6655
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 11:46:43 2008 +0100
do a memcmp first and only spawn diff if that fails
5-10% performance gain
diff --git a/test/swfdec_test_buffer.c b/test/swfdec_test_buffer.c
index 76f8d8c..e637298 100644
--- a/test/swfdec_test_buffer.c
+++ b/test/swfdec_test_buffer.c
@@ -87,6 +87,11 @@ swfdec_test_diff_buffers (SwfdecBuffer *buf1, SwfdecBuffer *buf2, GError **error
char *file1, *file2, *diff;
int fd;
+ /* shortcut the (hopefully) common case of equality */
+ if (buf1->length == buf2->length &&
+ memcmp (buf1->data, buf2->data, buf1->length) == 0)
+ return NULL;
+
/* write the first buffer to a temporary file */
fd = g_file_open_tmp (NULL, &file1, error);
if (fd < 0)
commit a0ef9d4717b21b83625cbe2e7c565c4ae0555931
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 1 11:29:29 2008 +0100
rewrite tracing API
- There's now a Buffer class for holding binary buffers. It contains a
"diff" method.
- test.trace gives you a binary buffer containing trace output (FIXME: Should
this be a string instead?)
- test rewritten to use this
diff --git a/test/Makefile.am b/test/Makefile.am
index 6c07c3c..d5e6903 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -4,6 +4,7 @@ noinst_PROGRAMS = test
swfdec_test_sources = \
swfdec_test.c \
+ swfdec_test_buffer.c \
swfdec_test_function.c \
swfdec_test_global.c \
swfdec_test_image.c \
@@ -26,6 +27,7 @@ EXTRA_DIST = \
swfdec_test_initialize.as
noinst_HEADERS = \
+ swfdec_test_buffer.h \
swfdec_test_function.h \
swfdec_test_function_list.h \
swfdec_test_image.h \
diff --git a/test/swfdec_test_buffer.c b/test/swfdec_test_buffer.c
new file mode 100644
index 0000000..76f8d8c
--- /dev/null
+++ b/test/swfdec_test_buffer.c
@@ -0,0 +1,232 @@
+/* Swfdec
+ * Copyright (C) 2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include <unistd.h>
+
+#include "swfdec_test_buffer.h"
+#include "swfdec_test_function.h"
+#include "swfdec_test_utils.h"
+
+SwfdecAsObject *
+swfdec_test_buffer_new (SwfdecAsContext *context, SwfdecBuffer *buffer)
+{
+ SwfdecAsValue val;
+ SwfdecAsObject *ret;
+
+ if (!swfdec_as_context_use_mem (context, sizeof (SwfdecTestBuffer)))
+ return NULL;
+
+ ret = g_object_new (SWFDEC_TYPE_TEST_BUFFER, NULL);
+ swfdec_as_object_add (ret, context, sizeof (SwfdecTestBuffer));
+ swfdec_as_object_get_variable (context->global,
+ swfdec_as_context_get_string (context, "Buffer"), &val);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (&val))
+ swfdec_as_object_set_constructor (ret, SWFDEC_AS_VALUE_GET_OBJECT (&val));
+
+ SWFDEC_TEST_BUFFER (ret)->buffer = buffer;
+ return ret;
+}
+
+/*** SWFDEC_TEST_BUFFER ***/
+
+G_DEFINE_TYPE (SwfdecTestBuffer, swfdec_test_buffer, SWFDEC_TYPE_AS_OBJECT)
+
+static void
+swfdec_test_buffer_dispose (GObject *object)
+{
+ SwfdecTestBuffer *buffer = SWFDEC_TEST_BUFFER (object);
+
+ if (buffer->buffer) {
+ swfdec_buffer_unref (buffer->buffer);
+ buffer->buffer = NULL;
+ }
+
+ G_OBJECT_CLASS (swfdec_test_buffer_parent_class)->dispose (object);
+}
+
+static void
+swfdec_test_buffer_class_init (SwfdecTestBufferClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->dispose = swfdec_test_buffer_dispose;
+}
+
+static void
+swfdec_test_buffer_init (SwfdecTestBuffer *buffer)
+{
+}
+
+/*** AS CODE ***/
+
+static char *
+swfdec_test_diff_buffers (SwfdecBuffer *buf1, SwfdecBuffer *buf2, GError **error)
+{
+ const char *command[] = { "diff", "-u", NULL, NULL, NULL };
+ char *file1, *file2, *diff;
+ int fd;
+
+ /* write the first buffer to a temporary file */
+ fd = g_file_open_tmp (NULL, &file1, error);
+ if (fd < 0)
+ return NULL;
+ if (write (fd, buf1->data, buf1->length) != (int) buf1->length) {
+ close (fd);
+ g_free (file1);
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
+ "Could not write data to temporary file");
+ return NULL;
+ }
+ close (fd);
+
+ /* write the second buffer to a temporary file */
+ fd = g_file_open_tmp (NULL, &file2, error);
+ if (fd < 0) {
+ g_free (file1);
+ return NULL;
+ }
+ if (write (fd, buf2->data, buf2->length) != (int) buf2->length) {
+ close (fd);
+ g_free (file1);
+ g_free (file2);
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
+ "Could not write data to temporary file");
+ return NULL;
+ }
+ close (fd);
+
+ /* run diff command */
+ command[2] = file1;
+ command[3] = file2;
+ if (!g_spawn_sync (NULL, (char **) command, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL,
+ &diff, NULL, NULL, error)) {
+ unlink (file1);
+ unlink (file2);
+ g_free (file1);
+ g_free (file2);
+ return NULL;
+ }
+ unlink (file1);
+ unlink (file2);
+ g_free (file1);
+ g_free (file2);
+ return diff;
+}
+
+SWFDEC_TEST_FUNCTION ("Buffer_diff", swfdec_test_buffer_diff, 0)
+void
+swfdec_test_buffer_diff (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecTestBuffer *buffer, *compare;
+ GError *error = NULL;
+ char *ret;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_BUFFER, &buffer, "|o", &compare);
+
+ if (!SWFDEC_IS_TEST_BUFFER (compare)) {
+ swfdec_test_throw (cx, "must pass a buffer to Buffer.diff");
+ return;
+ }
+
+ ret = swfdec_test_diff_buffers (buffer->buffer, compare->buffer, &error);
+ if (ret) {
+ SWFDEC_AS_VALUE_SET_STRING (retval,
+ swfdec_as_context_give_string (cx, ret));
+ } else {
+ if (error) {
+ swfdec_test_throw (cx, "s", error->message);
+ g_error_free (error);
+ } else {
+ SWFDEC_AS_VALUE_SET_STRING (retval,
+ swfdec_as_context_get_string (cx, ""));
+ }
+ }
+}
+
+SWFDEC_TEST_FUNCTION ("Buffer_load", swfdec_test_buffer_load, 0)
+void
+swfdec_test_buffer_load (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecBuffer *b;
+ SwfdecAsObject *buffer;
+ const char *filename;
+ GError *error = NULL;
+
+ SWFDEC_AS_CHECK (0, NULL, "s", &filename);
+
+ b = swfdec_buffer_new_from_file (filename, &error);
+ if (b == NULL) {
+ swfdec_test_throw (cx, "%s", error->message);
+ g_error_free (error);
+ return;
+ }
+
+ buffer = swfdec_test_buffer_new (cx, b);
+ if (buffer == NULL)
+ return;
+ SWFDEC_AS_VALUE_SET_OBJECT (retval, buffer);
+}
+
+SWFDEC_TEST_FUNCTION ("Buffer", swfdec_test_buffer_create, swfdec_test_buffer_get_type)
+void
+swfdec_test_buffer_create (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecBufferQueue *queue;
+ SwfdecTestBuffer *buffer;
+ guint i;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_BUFFER, &buffer, "");
+
+ queue = swfdec_buffer_queue_new ();
+ for (i = 0; i < argc; i++) {
+ SwfdecBuffer *b = NULL;
+ if (SWFDEC_AS_VALUE_IS_OBJECT (&argv[i])) {
+ SwfdecAsObject *o = SWFDEC_AS_VALUE_GET_OBJECT (&argv[i]);
+ if (SWFDEC_IS_TEST_BUFFER (o))
+ b = swfdec_buffer_ref (SWFDEC_TEST_BUFFER (o)->buffer);
+ } else if (SWFDEC_AS_VALUE_IS_NUMBER (&argv[i])) {
+ b = swfdec_buffer_new_and_alloc (1);
+ b->data[0] = swfdec_as_value_to_integer (cx, &argv[i]);
+ }
+ if (b == NULL) {
+ const char *s = swfdec_as_value_to_string (cx, &argv[i]);
+ gsize len = strlen (s);
+ /* no terminating 0 byte on purpose here - use new Buffer (string, 0); to get that */
+ b = swfdec_buffer_new_and_alloc (len);
+ memcpy (b->data, s, len);
+ }
+ swfdec_buffer_queue_push (queue, b);
+ }
+ i = swfdec_buffer_queue_get_depth (queue);
+ if (i) {
+ buffer->buffer = swfdec_buffer_queue_pull (queue, i);
+ } else {
+ buffer->buffer = swfdec_buffer_new ();
+ }
+ swfdec_buffer_queue_unref (queue);
+}
+
diff --git a/test/swfdec_test_buffer.h b/test/swfdec_test_buffer.h
new file mode 100644
index 0000000..d80a9f8
--- /dev/null
+++ b/test/swfdec_test_buffer.h
@@ -0,0 +1,56 @@
+/* Swfdec
+ * Copyright (C) 2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef _SWFDEC_TEST_BUFFER_H_
+#define _SWFDEC_TEST_BUFFER_H_
+
+#include <swfdec/swfdec.h>
+
+G_BEGIN_DECLS
+
+
+typedef struct _SwfdecTestBuffer SwfdecTestBuffer;
+typedef struct _SwfdecTestBufferClass SwfdecTestBufferClass;
+
+#define SWFDEC_TYPE_TEST_BUFFER (swfdec_test_buffer_get_type())
+#define SWFDEC_IS_TEST_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEST_BUFFER))
+#define SWFDEC_IS_TEST_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEST_BUFFER))
+#define SWFDEC_TEST_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEST_BUFFER, SwfdecTestBuffer))
+#define SWFDEC_TEST_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEST_BUFFER, SwfdecTestBufferClass))
+#define SWFDEC_TEST_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWFDEC_TYPE_TEST_BUFFER, SwfdecTestBufferClass))
+
+struct _SwfdecTestBuffer
+{
+ SwfdecAsObject as_object;
+
+ SwfdecBuffer * buffer;
+};
+
+struct _SwfdecTestBufferClass
+{
+ SwfdecAsObjectClass as_object_class;
+};
+
+GType swfdec_test_buffer_get_type (void);
+
+SwfdecAsObject *swfdec_test_buffer_new (SwfdecAsContext * context,
+ SwfdecBuffer * buffer);
+
+G_END_DECLS
+#endif
diff --git a/test/swfdec_test_function.c b/test/swfdec_test_function.c
index 5f04136..6f13bbb 100644
--- a/test/swfdec_test_function.c
+++ b/test/swfdec_test_function.c
@@ -25,6 +25,7 @@
#include "swfdec_test_function_list.h"
/* needed by the function list */
+#include "swfdec_test_buffer.h"
#include "swfdec_test_image.h"
#include "swfdec_test_socket.h"
#include "swfdec_test_test.h"
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index 3c094c7..b496163 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -17,6 +17,11 @@
* Boston, MA 02110-1301 USA
*/
+Buffer = Native.Buffer;
+Buffer.load = Native.Buffer_load;
+Buffer.prototype = {};
+Buffer.prototype.diff = Native.Buffer_diff;
+
Image = Native.Image;
Image.prototype = {};
Image.prototype.compare = Native.Image_compare;
@@ -34,8 +39,8 @@ Test.prototype.mouse_press = Native.Test_mouse_press;
Test.prototype.mouse_release = Native.Test_mouse_release;
Test.prototype.render = Native.Test_render;
Test.prototype.reset = Native.Test_reset;
-Test.prototype.trace = Native.Test_trace;
Test.prototype.addProperty ("rate", Native.Test_get_rate, null);
+Test.prototype.addProperty ("trace", Native.Test_get_trace, null);
print = function (s) {
if (s)
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index e5ceb65..a8e5023 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -2,59 +2,67 @@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0x41, 0x01, 0x21, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x00, 0x4E, 0x61, 0x74, 0x69, 0x76,
- 0x65, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x63, 0x6F, 0x6D, 0x70,
- 0x61, 0x72, 0x65, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72,
- 0x65, 0x00, 0x73, 0x61, 0x76, 0x65, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x73, 0x61, 0x76,
- 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73,
- 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00,
- 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73,
- 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
- 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
- 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73,
- 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73,
- 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00,
- 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61,
- 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72,
- 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74,
- 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73,
- 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73,
- 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x61, 0x64, 0x64, 0x50, 0x72,
- 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49,
- 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F,
- 0x52, 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x00, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x02, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x03, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C,
- 0x96, 0x07, 0x00, 0x08, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x0A, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x08,
- 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x0C, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0F, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x11, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x12, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E,
- 0x96, 0x04, 0x00, 0x08, 0x13, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x14, 0x4E, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x15,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x16, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x17, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x18, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x1A, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x19, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08,
- 0x1C, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96,
- 0x02, 0x00, 0x08, 0x1D, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x1E,
- 0x08, 0x1D, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x1C, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x1F, 0x8E, 0x0B, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x1D, 0x1C,
- 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x20, 0x08, 0x1D, 0x1C, 0x47, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1C, 0x52,
- 0x17, 0x1D, 0x00
+ 0x88, 0x6E, 0x01, 0x26, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x6C,
+ 0x6F, 0x61, 0x64, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x64, 0x69,
+ 0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x49,
+ 0x6D, 0x61, 0x67, 0x65, 0x00, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72, 0x65, 0x00, 0x49, 0x6D, 0x61,
+ 0x67, 0x65, 0x5F, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72, 0x65, 0x00, 0x73, 0x61, 0x76, 0x65, 0x00,
+ 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x73, 0x61, 0x76, 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65,
+ 0x74, 0x00, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74,
+ 0x5F, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64,
+ 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E,
+ 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65,
+ 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F,
+ 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D,
+ 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65,
+ 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F,
+ 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64,
+ 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72,
+ 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00,
+ 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61,
+ 0x74, 0x65, 0x00, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x00, 0x74,
+ 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72,
+ 0x61, 0x63, 0x65, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F,
+ 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20,
+ 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D,
+ 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06,
+ 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E,
+ 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07,
+ 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0F, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x0F, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x10, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x11, 0x4E,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
+ 0x08, 0x12, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x14, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x16, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17,
+ 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
+ 0x00, 0x08, 0x18, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x1A, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x1D, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08,
+ 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x52, 0x17, 0x96,
+ 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x96, 0x09, 0x00, 0x08,
+ 0x1F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x02, 0x00, 0x08, 0x1E, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x21, 0x8E, 0x0B, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x22, 0x1C, 0x12,
+ 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x23, 0x08, 0x22, 0x1C, 0x47, 0x96, 0x07,
+ 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x52, 0x17,
+ 0x1D, 0x96, 0x02, 0x00, 0x08, 0x24, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x22, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00,
+ 0x96, 0x04, 0x00, 0x08, 0x25, 0x08, 0x22, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00,
+ 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x52, 0x17, 0x1D, 0x00
};
diff --git a/test/swfdec_test_test.c b/test/swfdec_test_test.c
index 0daa055..c263bed 100644
--- a/test/swfdec_test_test.c
+++ b/test/swfdec_test_test.c
@@ -25,141 +25,11 @@
#include <unistd.h>
#include "swfdec_test_test.h"
+#include "swfdec_test_buffer.h"
#include "swfdec_test_function.h"
#include "swfdec_test_image.h"
#include "swfdec_test_utils.h"
-/*** trace capturing ***/
-
-static char *
-swfdec_test_test_trace_diff (SwfdecTestTest *test)
-{
- const char *command[] = { "diff", "-u", test->trace_filename, NULL, NULL };
- char *tmp, *diff;
- int fd;
- GSList *walk;
-
- fd = g_file_open_tmp (NULL, &tmp, NULL);
- if (fd < 0)
- return FALSE;
-
- test->trace_captured = g_slist_reverse (test->trace_captured);
- for (walk = test->trace_captured; walk; walk = walk->next) {
- const char *s = walk->data;
- ssize_t len = strlen (s);
- if (write (fd, s, len) != len ||
- write (fd, "\n", 1) != 1) {
- close (fd);
- unlink (tmp);
- g_free (tmp);
- return NULL;
- }
- }
- close (fd);
- command[3] = tmp;
- if (!g_spawn_sync (NULL, (char **) command, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL,
- &diff, NULL, NULL, NULL)) {
- unlink (tmp);
- g_free (tmp);
- return NULL;
- }
- unlink (tmp);
- g_free (tmp);
- return diff;
-}
-
-static void
-swfdec_test_test_trace_stop (SwfdecTestTest *test)
-{
- if (test->trace_filename == NULL)
- return;
-
- if (test->trace_buffer &&
- test->trace_offset != test->trace_buffer->data + test->trace_buffer->length)
- test->trace_failed = TRUE;
-
- if (test->trace_failed) {
- char *diff = swfdec_test_test_trace_diff (test);
- /* FIXME: produce a diff here */
- swfdec_test_throw (SWFDEC_AS_OBJECT (test)->context, "invalid trace output:\n%s", diff);
- g_free (diff);
- }
-
- if (test->trace_buffer) {
- swfdec_buffer_unref (test->trace_buffer);
- test->trace_buffer = NULL;
- }
- g_free (test->trace_filename);
- test->trace_filename = NULL;
- g_slist_foreach (test->trace_captured, (GFunc) g_free, NULL);
- g_slist_free (test->trace_captured);
- test->trace_captured = NULL;
-}
-
-static void
-swfdec_test_test_trace_start (SwfdecTestTest *test, const char *filename)
-{
- GError *error = NULL;
-
- g_assert (test->trace_filename == NULL);
- g_assert (test->trace_captured == NULL);
-
- test->trace_filename = g_strdup (filename);
- test->trace_failed = FALSE;
- test->trace_buffer = swfdec_buffer_new_from_file (filename, &error);
- if (test->trace_buffer == NULL) {
- swfdec_test_throw (SWFDEC_AS_OBJECT (test)->context, "Could not start trace: %s", error->message);
- g_error_free (error);
- return;
- }
- test->trace_offset = test->trace_buffer->data;
-}
-
-static void
-swfdec_test_test_trace_cb (SwfdecPlayer *player, const char *message, SwfdecTestTest *test)
-{
- gsize len;
-
- if (test->trace_buffer == NULL)
- return;
-
- test->trace_captured = g_slist_prepend (test->trace_captured, g_strdup (message));
- if (test->trace_failed)
- return;
-
- len = strlen (message);
- if (len + 1 > test->trace_buffer->length - (test->trace_offset -test->trace_buffer->data)) {
- test->trace_failed = TRUE;
- return;
- }
- if (memcmp (message, test->trace_offset, len) != 0) {
- test->trace_failed = TRUE;
- return;
- }
- test->trace_offset += len;
- if (test->trace_offset[0] != '\n') {
- test->trace_failed = TRUE;
- return;
- }
- test->trace_offset++;
-}
-
-SWFDEC_TEST_FUNCTION ("Test_trace", swfdec_test_test_trace, 0)
-void
-swfdec_test_test_trace (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
- SwfdecAsValue *argv, SwfdecAsValue *retval)
-{
- SwfdecTestTest *test;
- const char *filename;
-
- SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "|s", &filename);
-
- swfdec_test_test_trace_stop (test);
- if (filename[0] == '\0')
- return;
- swfdec_test_test_trace_start (test, filename);
-}
-
/*** SWFDEC_TEST_TEST ***/
G_DEFINE_TYPE (SwfdecTestTest, swfdec_test_test, SWFDEC_TYPE_AS_OBJECT)
@@ -169,8 +39,10 @@ swfdec_test_test_dispose (GObject *object)
{
SwfdecTestTest *test = SWFDEC_TEST_TEST (object);
- /* FIXME: this can throw, is that ok? */
- swfdec_test_test_trace_stop (test);
+ if (test->trace) {
+ swfdec_buffer_queue_unref (test->trace);
+ test->trace = NULL;
+ }
g_free (test->filename);
test->filename = NULL;
@@ -192,8 +64,9 @@ swfdec_test_test_class_init (SwfdecTestTestClass *klass)
}
static void
-swfdec_test_test_init (SwfdecTestTest *this)
+swfdec_test_test_init (SwfdecTestTest *test)
{
+ test->trace = swfdec_buffer_queue_new ();
}
static void
@@ -205,6 +78,18 @@ swfdec_test_test_fscommand (SwfdecPlayer *player, const char *command,
}
}
+static void
+swfdec_test_test_trace_cb (SwfdecPlayer *player, const char *message, SwfdecTestTest *test)
+{
+ gsize len = strlen (message);
+ SwfdecBuffer *buffer;
+
+ buffer = swfdec_buffer_new_and_alloc (len + 1);
+ memcpy (buffer->data, message, len);
+ buffer->data[len] = '\n';
+ swfdec_buffer_queue_push (test->trace, buffer);
+}
+
static gboolean
swfdec_test_test_ensure_player (SwfdecTestTest *test)
{
@@ -233,6 +118,7 @@ swfdec_test_do_reset (SwfdecTestTest *test, const char *filename)
g_object_unref (test->player);
test->player = NULL;
}
+ swfdec_buffer_queue_clear (test->trace);
if (filename == NULL)
return;
@@ -378,6 +264,26 @@ swfdec_test_test_new (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
swfdec_test_do_reset (test, filename[0] ? filename : NULL);
}
+SWFDEC_TEST_FUNCTION ("Test_get_trace", swfdec_test_test_get_trace, 0)
+void
+swfdec_test_test_get_trace (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecTestTest *test;
+ SwfdecAsObject *o;
+ SwfdecBuffer *buffer;
+ gsize len;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_TEST, &test, "");
+
+ len = swfdec_buffer_queue_get_depth (test->trace);
+ buffer = swfdec_buffer_queue_peek (test->trace, len);
+ o = swfdec_test_buffer_new (cx, buffer);
+ if (o == NULL)
+ return;
+ SWFDEC_AS_VALUE_SET_OBJECT (retval, o);
+}
+
SWFDEC_TEST_FUNCTION ("Test_get_rate", swfdec_test_test_get_rate, 0)
void
swfdec_test_test_get_rate (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
diff --git a/test/swfdec_test_test.h b/test/swfdec_test_test.h
index b5c7e4f..110aecc 100644
--- a/test/swfdec_test_test.h
+++ b/test/swfdec_test_test.h
@@ -43,13 +43,7 @@ struct _SwfdecTestTest
char * filename; /* file the player should be loaded from */
SwfdecPlayer * player; /* the player or %NULL if none */
gboolean player_quit; /* the player has called fscommand:quit */
-
- /* trace stuff */
- char * trace_filename; /* file we're parsing */
- SwfdecBuffer * trace_buffer; /* buffer containing the file */
- guchar * trace_offset; /* how far we've parsed the trace data */
- gboolean trace_failed; /* TRUE if the tacing failed */
- GSList * trace_captured; /* captured trace strings (newest first) */
+ SwfdecBufferQueue * trace; /* all captured trace output */
};
struct _SwfdecTestTestClass
diff --git a/test/trace/default.stas b/test/trace/default.stas
index 3f31797..00b4b9a 100644
--- a/test/trace/default.stas
+++ b/test/trace/default.stas
@@ -22,10 +22,15 @@ run_test = function (t, file) {
print ("Testing " + file);
try {
t.reset (file);
- t.trace (file + ".trace");
+ var trace = Buffer.load (file + ".trace");
t.advance (0);
t.advance (Math.ceil (10000 / t.rate));
- t.trace ();
+ trace = t.trace.diff (trace);
+ if (trace) {
+ error ("different trace output");
+ Native.print (trace);
+ return false;
+ }
} catch (e) {
if (e) {
error (e);
diff --git a/test/trace/default.sts b/test/trace/default.sts
index 5e8dbaa..6945a22 100644
Binary files a/test/trace/default.sts and b/test/trace/default.sts differ
commit 427209eff1b38b89a3db05aac5607faa5f5934d5
Author: Benjamin Otte <otte at gnome.org>
Date: Thu Jan 31 16:07:26 2008 +0100
put swfdec_test_throw() into its own header
diff --git a/test/Makefile.am b/test/Makefile.am
index 0a6c9db..6c07c3c 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -9,7 +9,8 @@ swfdec_test_sources = \
swfdec_test_image.c \
swfdec_test_plugin.c \
swfdec_test_socket.c \
- swfdec_test_test.c
+ swfdec_test_test.c \
+ swfdec_test_utils.c
BUILT_SOURCES = \
swfdec_test_function_list.h
@@ -31,7 +32,8 @@ noinst_HEADERS = \
swfdec_test_initialize.h \
swfdec_test_plugin.h \
swfdec_test_socket.h \
- swfdec_test_test.h
+ swfdec_test_test.h \
+ swfdec_test_utils.h
test_CFLAGS = $(GLOBAL_CFLAGS) $(GTK_CFLAGS) $(SWFDEC_CFLAGS) $(CAIRO_CFLAGS)
test_LDFLAGS = $(SWFDEC_LIBS) $(GTK_LIBS) $(CAIRO_LIBS)
diff --git a/test/swfdec_test_test.c b/test/swfdec_test_test.c
index d5de83c..0daa055 100644
--- a/test/swfdec_test_test.c
+++ b/test/swfdec_test_test.c
@@ -27,25 +27,7 @@
#include "swfdec_test_test.h"
#include "swfdec_test_function.h"
#include "swfdec_test_image.h"
-
-static void
-swfdec_test_throw (SwfdecAsContext *cx, const char *message, ...)
-{
- SwfdecAsValue val;
-
- if (!swfdec_as_context_catch (cx, &val)) {
- va_list varargs;
- char *s;
-
- va_start (varargs, message);
- s = g_strdup_vprintf (message, varargs);
- va_end (varargs);
-
- /* FIXME: Throw a real object here? */
- SWFDEC_AS_VALUE_SET_STRING (&val, swfdec_as_context_give_string (cx, s));
- }
- swfdec_as_context_throw (cx, &val);
-}
+#include "swfdec_test_utils.h"
/*** trace capturing ***/
diff --git a/test/swfdec_test_utils.c b/test/swfdec_test_utils.c
new file mode 100644
index 0000000..ba8731f
--- /dev/null
+++ b/test/swfdec_test_utils.c
@@ -0,0 +1,44 @@
+/* Swfdec
+ * Copyright (C) 2007-2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "swfdec_test_utils.h"
+
+void
+swfdec_test_throw (SwfdecAsContext *cx, const char *message, ...)
+{
+ SwfdecAsValue val;
+
+ if (!swfdec_as_context_catch (cx, &val)) {
+ va_list varargs;
+ char *s;
+
+ va_start (varargs, message);
+ s = g_strdup_vprintf (message, varargs);
+ va_end (varargs);
+
+ /* FIXME: Throw a real object here? */
+ SWFDEC_AS_VALUE_SET_STRING (&val, swfdec_as_context_give_string (cx, s));
+ }
+ swfdec_as_context_throw (cx, &val);
+}
+
diff --git a/test/swfdec_test_utils.h b/test/swfdec_test_utils.h
new file mode 100644
index 0000000..f88aff0
--- /dev/null
+++ b/test/swfdec_test_utils.h
@@ -0,0 +1,34 @@
+/* Swfdec
+ * Copyright (C) 2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef _SWFDEC_TEST_UTILS_H_
+#define _SWFDEC_TEST_UTILS_H_
+
+#include <swfdec/swfdec.h>
+
+G_BEGIN_DECLS
+
+
+void swfdec_test_throw (SwfdecAsContext * cx,
+ const char * message,
+ ...);
+
+
+G_END_DECLS
+#endif
commit ca6332544500679bc658e0713fefc05ad08af466
Author: Benjamin Otte <otte at gnome.org>
Date: Thu Jan 31 13:21:56 2008 +0100
add some implementations about a plugin architecture
diff --git a/test/Makefile.am b/test/Makefile.am
index 5e822b0..0a6c9db 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -7,6 +7,7 @@ swfdec_test_sources = \
swfdec_test_function.c \
swfdec_test_global.c \
swfdec_test_image.c \
+ swfdec_test_plugin.c \
swfdec_test_socket.c \
swfdec_test_test.c
@@ -28,6 +29,7 @@ noinst_HEADERS = \
swfdec_test_function_list.h \
swfdec_test_image.h \
swfdec_test_initialize.h \
+ swfdec_test_plugin.h \
swfdec_test_socket.h \
swfdec_test_test.h
diff --git a/test/swfdec_test_plugin.c b/test/swfdec_test_plugin.c
new file mode 100644
index 0000000..6a641fb
--- /dev/null
+++ b/test/swfdec_test_plugin.c
@@ -0,0 +1,72 @@
+/* Swfdec
+ * Copyright (C) 2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "swfdec_test_plugin.h"
+#include <swfdec/swfdec.h>
+#include "swfdec_test_test.h"
+
+static void
+swfdec_test_plugin_swfdec_advance (SwfdecTestPlugin *plugin, unsigned int msecs)
+{
+ swfdec_player_advance (plugin->data, msecs);
+}
+
+static void
+swfdec_test_plugin_swfdec_finish (SwfdecTestPlugin *plugin)
+{
+ g_object_unref (plugin->data);
+}
+
+static void
+swfdec_test_plugin_swfdec_trace (SwfdecPlayer *player, const char *message,
+ SwfdecTestPlugin *plugin)
+{
+ plugin->trace (plugin, message);
+}
+
+static void
+swfdec_test_plugin_swfdec_fscommand (SwfdecPlayer *player, const char *command,
+ const char *para, SwfdecTestPlugin *plugin)
+{
+ if (g_ascii_strcasecmp (command, "quit") == 0) {
+ plugin->quit (plugin);
+ }
+}
+
+void
+swfdec_test_plugin_swfdec_new (SwfdecTestPlugin *plugin)
+{
+ SwfdecPlayer *player;
+ SwfdecURL *url;
+
+ plugin->advance = swfdec_test_plugin_swfdec_advance;
+ plugin->finish = swfdec_test_plugin_swfdec_finish;
+ plugin->data = player = swfdec_player_new (NULL);
+
+ g_signal_connect (player, "fscommand", G_CALLBACK (swfdec_test_plugin_swfdec_fscommand), plugin);
+ g_signal_connect (player, "trace", G_CALLBACK (swfdec_test_plugin_swfdec_trace), plugin);
+ url = swfdec_url_new_from_input (plugin->filename);
+ swfdec_player_set_url (player, url);
+ swfdec_url_free (url);
+ swfdec_player_advance (player, 0);
+}
diff --git a/test/swfdec_test_plugin.h b/test/swfdec_test_plugin.h
new file mode 100644
index 0000000..86b7f91
--- /dev/null
+++ b/test/swfdec_test_plugin.h
@@ -0,0 +1,70 @@
+/* Swfdec
+ * Copyright (C) 2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef _SWFDEC_TEST_PLUGIN_H_
+#define _SWFDEC_TEST_PLUGIN_H_
+
+/*
+ * SwfdecTestPlugin:
+ * @filename: The absolute filename to run
+ * @trace: Function the plugin should call when a trace string was captured.
+ * @quit: Function to call when the player quits, most likely by encountering
+ * an fscommand. The @finish function will still be called.
+ * @error: Function to call whenever the plugin encounters an error. This will
+ * cause the plugin to not call any other function but @finish anymore
+ * and raise an exception containing the provided description.
+ * @advance: Used to advance the player by the provided number of milliseconds
+ * @finish: Clean up any leftover data as the plugin is aout to be discarded
+ *
+ * The SwfdecTestPlugin structure is used to hold the functions used for
+ * communication between the plugin and the player. It contains two types of
+ * values: Those initialized by the player prior to calling
+ * swfdec_test_plugin_init() to be used by the plugin and those to be
+ * initialized by the plugin during swfdec_test_plugin_init() to be used by
+ * the test application for driving the player.
+ */
+typedef struct _SwfdecTestPlugin SwfdecTestPlugin;
+struct _SwfdecTestPlugin {
+ /* initialized by the player before calling swfdec_test_plugin_new() */
+ char * filename;
+ void (* trace) (SwfdecTestPlugin * plugin,
+ const char * string);
+ void (* quit) (SwfdecTestPlugin * plugin);
+ void (* error) (SwfdecTestPlugin * plugin,
+ const char * description);
+ /* initialized by the plugin during swfdec_test_plugin_new() */
+ void (* advance) (SwfdecTestPlugin * plugin,
+ unsigned int msecs);
+ void (* finish) (SwfdecTestPlugin * plugin);
+ void * data;
+};
+
+/**
+ * swfdec_test_plugin_init:
+ * @SwfdecTestPlugin: the plugin instance to be initialized
+ *
+ * The only function exported by the plugin. It gets called whenever a new
+ * plugin should be instantiated. The plugin should instantiate the player
+ * and do any initialization necessary on it using the provided filename.
+ *
+ * Returns: a new SwfdecTestPlugin instance
+ **/
+void swfdec_test_plugin_init (SwfdecTestPlugin *plugin);
+
+#endif
diff --git a/test/swfdec_test_test.h b/test/swfdec_test_test.h
index aac940f..b5c7e4f 100644
--- a/test/swfdec_test_test.h
+++ b/test/swfdec_test_test.h
@@ -20,6 +20,7 @@
#ifndef _SWFDEC_TEST_TEST_H_
#define _SWFDEC_TEST_TEST_H_
+#include "swfdec_test_plugin.h"
#include <swfdec/swfdec.h>
G_BEGIN_DECLS
@@ -58,6 +59,7 @@ struct _SwfdecTestTestClass
GType swfdec_test_test_get_type (void);
+void swfdec_test_plugin_swfdec_new (SwfdecTestPlugin * plugin);
G_END_DECLS
#endif
commit 9644fcadb928e092d68d1b2ad8de8fda971f0b52
Author: Benjamin Otte <otte at gnome.org>
Date: Wed Jan 30 21:30:32 2008 +0100
add initial socket implementation
diff --git a/test/Makefile.am b/test/Makefile.am
index d7f5830..5e822b0 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -7,6 +7,7 @@ swfdec_test_sources = \
swfdec_test_function.c \
swfdec_test_global.c \
swfdec_test_image.c \
+ swfdec_test_socket.c \
swfdec_test_test.c
BUILT_SOURCES = \
@@ -27,6 +28,7 @@ noinst_HEADERS = \
swfdec_test_function_list.h \
swfdec_test_image.h \
swfdec_test_initialize.h \
+ swfdec_test_socket.h \
swfdec_test_test.h
test_CFLAGS = $(GLOBAL_CFLAGS) $(GTK_CFLAGS) $(SWFDEC_CFLAGS) $(CAIRO_CFLAGS)
diff --git a/test/swfdec_test_function.c b/test/swfdec_test_function.c
index 4e6605d..5f04136 100644
--- a/test/swfdec_test_function.c
+++ b/test/swfdec_test_function.c
@@ -26,6 +26,7 @@
/* needed by the function list */
#include "swfdec_test_image.h"
+#include "swfdec_test_socket.h"
#include "swfdec_test_test.h"
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index debff41..3c094c7 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -22,6 +22,10 @@ Image.prototype = {};
Image.prototype.compare = Native.Image_compare;
Image.prototype.save = Native.Image_save;
+Socket = Native.Socket;
+Socket.prototype = {};
+Socket.prototype.process = Native.Socket_process;
+
Test = Native.Test;
Test.prototype = {};
Test.prototype.advance = Native.Test_advance;
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index 20be2e5..e5ceb65 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -2,53 +2,59 @@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0x23, 0x01, 0x1E, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x00, 0x4E, 0x61, 0x74, 0x69, 0x76,
+ 0x88, 0x41, 0x01, 0x21, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x00, 0x4E, 0x61, 0x74, 0x69, 0x76,
0x65, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x63, 0x6F, 0x6D, 0x70,
0x61, 0x72, 0x65, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72,
0x65, 0x00, 0x73, 0x61, 0x76, 0x65, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x73, 0x61, 0x76,
- 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54,
- 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73,
- 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73,
- 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65,
- 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72,
- 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73,
- 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C,
- 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74,
- 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65,
- 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x54,
- 0x65, 0x73, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54,
- 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x61, 0x64, 0x64,
- 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73,
- 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52,
- 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x02,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x03, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
- 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00,
- 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08,
- 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E,
- 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x4E, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0E,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x10, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x11, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x12, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x13, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x14, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00,
- 0x00, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x18,
- 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x19, 0x9B, 0x07, 0x00, 0x00, 0x01, 0x00, 0x73, 0x00, 0x27,
- 0x00, 0x96, 0x02, 0x00, 0x08, 0x1A, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00,
- 0x08, 0x1B, 0x08, 0x1A, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x1C, 0x9B, 0x07,
- 0x00, 0x00, 0x01, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x1A, 0x1C, 0x12, 0x9D,
- 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x1D, 0x08, 0x1A, 0x1C, 0x47, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x52, 0x17, 0x1D,
- 0x00
+ 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73,
+ 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00,
+ 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73,
+ 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
+ 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F,
+ 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73,
+ 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73,
+ 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00,
+ 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61,
+ 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72,
+ 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74,
+ 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73,
+ 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73,
+ 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x61, 0x64, 0x64, 0x50, 0x72,
+ 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49,
+ 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x45, 0x52, 0x52, 0x4F,
+ 0x52, 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x00, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x02, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02,
+ 0x4E, 0x96, 0x04, 0x00, 0x08, 0x03, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C,
+ 0x96, 0x07, 0x00, 0x08, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x0A, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x07, 0x00, 0x08,
+ 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x0C, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0F, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x11, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x12, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E,
+ 0x96, 0x04, 0x00, 0x08, 0x13, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x14, 0x4E, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x0A, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x15,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x16, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0A, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x17, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x18, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x1A, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x19, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0A, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x02, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08,
+ 0x1C, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96,
+ 0x02, 0x00, 0x08, 0x1D, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x1E,
+ 0x08, 0x1D, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x1C, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x1F, 0x8E, 0x0B, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x1D, 0x1C,
+ 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x20, 0x08, 0x1D, 0x1C, 0x47, 0x96,
+ 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1C, 0x52,
+ 0x17, 0x1D, 0x00
};
diff --git a/test/swfdec_test_socket.c b/test/swfdec_test_socket.c
new file mode 100644
index 0000000..a0382f6
--- /dev/null
+++ b/test/swfdec_test_socket.c
@@ -0,0 +1,163 @@
+/* Swfdec
+ * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <libsoup/soup-address.h>
+
+#include "swfdec_test_socket.h"
+#include "swfdec_test_function.h"
+
+static void
+swfdec_test_throw (SwfdecAsContext *cx, const char *message, ...)
+{
+ SwfdecAsValue val;
+
+ if (!swfdec_as_context_catch (cx, &val)) {
+ va_list varargs;
+ char *s;
+
+ va_start (varargs, message);
+ s = g_strdup_vprintf (message, varargs);
+ va_end (varargs);
+
+ /* FIXME: Throw a real object here? */
+ SWFDEC_AS_VALUE_SET_STRING (&val, swfdec_as_context_give_string (cx, s));
+ }
+ swfdec_as_context_throw (cx, &val);
+}
+
+/*** SWFDEC_TEST_SOCKET ***/
+
+G_DEFINE_TYPE (SwfdecTestSocket, swfdec_test_socket, SWFDEC_TYPE_AS_OBJECT)
+
+static void
+swfdec_test_socket_dispose (GObject *object)
+{
+ SwfdecTestSocket *sock = SWFDEC_TEST_SOCKET (object);
+
+ if (sock->socket) {
+ g_object_unref (sock->socket);
+ sock->socket = NULL;
+ }
+ if (sock->context) {
+ g_main_context_unref (sock->context);
+ sock->context = NULL;
+ }
+
+ G_OBJECT_CLASS (swfdec_test_socket_parent_class)->dispose (object);
+}
+
+static void
+swfdec_test_socket_class_init (SwfdecTestSocketClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->dispose = swfdec_test_socket_dispose;
+}
+
+static void
+swfdec_test_socket_init (SwfdecTestSocket *sock)
+{
+ sock->context = g_main_context_new ();
+}
+
+/*** AS CODE ***/
+
+SWFDEC_TEST_FUNCTION ("Socket_process", swfdec_test_socket_process, 0)
+void
+swfdec_test_socket_process (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecTestSocket *sock;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &socket, "");
+
+ while (g_main_context_iteration (sock->context, FALSE));
+}
+
+static void swfdec_test_socket_attach (SwfdecTestSocket *sock, SoupSocket *ssock);
+
+static void
+swfdec_test_socket_new_connection (SoupSocket *server, SoupSocket *conn, SwfdecTestSocket *sock)
+{
+ SwfdecAsContext *context = SWFDEC_AS_OBJECT (sock)->context;
+ SwfdecAsValue val;
+ SwfdecAsObject *new;
+
+ if (!swfdec_as_context_use_mem (context, sizeof (SwfdecTestSocket)))
+ return;
+
+ new = g_object_new (SWFDEC_TYPE_TEST_SOCKET, NULL);
+ swfdec_as_object_add (new, context, sizeof (SwfdecTestSocket));
+ swfdec_as_object_get_variable (context->global,
+ swfdec_as_context_get_string (context, "Socket"), &val);
+ if (SWFDEC_AS_VALUE_IS_OBJECT (&val))
+ swfdec_as_object_set_constructor (new, SWFDEC_AS_VALUE_GET_OBJECT (&val));
+
+ g_object_ref (conn);
+ swfdec_test_socket_attach (SWFDEC_TEST_SOCKET (new), conn);
+ SWFDEC_AS_VALUE_SET_OBJECT (&val, new);
+ swfdec_as_object_call (SWFDEC_AS_OBJECT (sock),
+ swfdec_as_context_get_string (context, "onNewConnection"),
+ 1, &val, NULL);
+}
+
+static void
+swfdec_test_socket_attach (SwfdecTestSocket *sock, SoupSocket *ssock)
+{
+ g_assert (sock->socket == NULL);
+
+ sock->socket = ssock;
+ g_signal_connect (ssock, "new-connection",
+ G_CALLBACK (swfdec_test_socket_new_connection), sock);
+}
+
+SWFDEC_TEST_FUNCTION ("Socket", swfdec_test_socket_create, swfdec_test_socket_get_type)
+void
+swfdec_test_socket_create (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecTestSocket *sock;
+ int port;
+ SoupAddress *addr;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &sock, "i", &port);
+
+ /* FIXME: throw here? */
+ if (port < 1024 || port >= 65535) {
+ swfdec_test_throw (cx, "invalid port %d", port);
+ return;
+ }
+
+ addr = soup_address_new_any (SOUP_ADDRESS_FAMILY_IPV4, port);
+ sock->socket = soup_socket_new (
+ SOUP_SOCKET_FLAG_NONBLOCKING, TRUE,
+ SOUP_SOCKET_ASYNC_CONTEXT, sock->context,
+ SOUP_SOCKET_LOCAL_ADDRESS, addr,
+ NULL);
+ g_object_unref (addr);
+ if (!soup_socket_listen (sock->socket)) {
+ swfdec_test_throw (cx, "failed to listen");
+ return;
+ }
+}
+
diff --git a/test/swfdec_test_socket.h b/test/swfdec_test_socket.h
new file mode 100644
index 0000000..c33fb3d
--- /dev/null
+++ b/test/swfdec_test_socket.h
@@ -0,0 +1,56 @@
+/* Swfdec
+ * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef _SWFDEC_TEST_SOCKET_H_
+#define _SWFDEC_TEST_SOCKET_H_
+
+#include <swfdec/swfdec.h>
+#include <libsoup/soup.h>
+
+G_BEGIN_DECLS
+
+
+typedef struct _SwfdecTestSocket SwfdecTestSocket;
+typedef struct _SwfdecTestSocketClass SwfdecTestSocketClass;
+
+#define SWFDEC_TYPE_TEST_SOCKET (swfdec_test_socket_get_type())
+#define SWFDEC_IS_TEST_SOCKET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_TEST_SOCKET))
+#define SWFDEC_IS_TEST_SOCKET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWFDEC_TYPE_TEST_SOCKET))
+#define SWFDEC_TEST_SOCKET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWFDEC_TYPE_TEST_SOCKET, SwfdecTestSocket))
+#define SWFDEC_TEST_SOCKET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_TEST_SOCKET, SwfdecTestSocketClass))
+#define SWFDEC_TEST_SOCKET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWFDEC_TYPE_TEST_SOCKET, SwfdecTestSocketClass))
+
+struct _SwfdecTestSocket
+{
+ SwfdecAsObject as_object;
+
+ GMainContext * context; /* the main context we're running in */
+ SoupSocket * socket; /* the socket we're servicing */
+};
+
+struct _SwfdecTestSocketClass
+{
+ SwfdecAsObjectClass as_object_class;
+};
+
+GType swfdec_test_socket_get_type (void);
+
+
+G_END_DECLS
+#endif
More information about the Swfdec-commits
mailing list