[Swfdec-commits] Branch 'test' - 8 commits - test/.gitignore test/swfdec_test_buffer.c test/swfdec_test_buffer.h test/swfdec_test.c test/swfdec_test_initialize.as test/swfdec_test_initialize.h test/swfdec_test_socket.c test/swfdec_test_socket.h test/swfdec_test_test.c test/trace
Benjamin Otte
company at kemper.freedesktop.org
Sun Feb 3 13:15:12 PST 2008
test/.gitignore | 2
test/swfdec_test.c | 4
test/swfdec_test_buffer.c | 32 +++++--
test/swfdec_test_buffer.h | 4
test/swfdec_test_initialize.as | 5 -
test/swfdec_test_initialize.h | 175 +++++++++++++++++++++--------------------
test/swfdec_test_socket.c | 172 ++++++++++++++++++++++++++++++++--------
test/swfdec_test_socket.h | 5 +
test/swfdec_test_test.c | 13 ++-
test/trace/default.stas | 2
10 files changed, 285 insertions(+), 129 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)
More information about the Swfdec-commits
mailing list