Index: ppapi/tests/test_transport.cc |
diff --git a/ppapi/tests/test_transport.cc b/ppapi/tests/test_transport.cc |
index bcb7552c990f1892f8d0b6d4ac58b07d39562646..c0567b9ba226f0d6f9300e7b957464564412ab29 100644 |
--- a/ppapi/tests/test_transport.cc |
+++ b/ppapi/tests/test_transport.cc |
@@ -9,11 +9,11 @@ |
#include <string> |
#include "ppapi/c/dev/ppb_testing_dev.h" |
-#include "ppapi/c/dev/ppb_transport_dev.h" |
#include "ppapi/c/pp_errors.h" |
#include "ppapi/cpp/completion_callback.h" |
#include "ppapi/cpp/instance.h" |
#include "ppapi/cpp/module.h" |
+#include "ppapi/cpp/dev/transport_dev.h" |
#include "ppapi/tests/test_utils.h" |
#include "ppapi/tests/testing_instance.h" |
@@ -26,11 +26,62 @@ bool TestTransport::Init() { |
} |
void TestTransport::RunTest() { |
- RUN_TEST(FirstTransport); |
+ RUN_TEST(Basics); |
// TODO(juberti): more Transport tests here... |
} |
-std::string TestTransport::TestFirstTransport() { |
- // TODO(juberti): actual test |
+std::string TestTransport::TestBasics() { |
+ pp::Transport_Dev t1(instance_, "test", ""), t2(instance_, "test", ""); |
brettw
2011/02/10 07:19:16
I think Google style discourages multiple declarat
Sergey Ulanov
2011/02/10 21:14:54
Done. Also renamed all variables.
|
+ TestCompletionCallback c1, c2, gna1, gna2; |
+ PP_Var a1, a2; |
+ int32_t rv; |
+ |
+ rv = t1.Connect(c1); |
+ if (rv != PP_ERROR_WOULDBLOCK) { |
brettw
2011/02/10 07:19:16
test_case.h defines ASSERT_TRUE which makes this p
Sergey Ulanov
2011/02/10 21:14:54
Actullay ASSERT_EQ is more appropriate here.
|
+ return ReportError("Transport::Connect", rv); |
+ } |
+ rv = t2.Connect(c2); |
+ if (rv != PP_ERROR_WOULDBLOCK) { |
+ return ReportError("Transport::Connect", rv); |
+ } |
+ rv = t1.GetNextAddress(&a1, gna1); |
+ if (rv != PP_ERROR_WOULDBLOCK) { |
+ return ReportError("Transport::GetNextAddress", rv); |
+ } |
+ rv = t2.GetNextAddress(&a2, gna2); |
+ if (rv != PP_ERROR_WOULDBLOCK) { |
+ return ReportError("Transport::GetNextAddress", rv); |
+ } |
+ rv = gna1.WaitForResult(); |
+ if (rv != 0) { |
+ return ReportError("Transport::GetNextAddress", rv); |
+ } |
+ rv = gna2.WaitForResult(); |
+ if (rv != 0) { |
+ return ReportError("Transport::GetNextAddress", rv); |
+ } |
+ rv = t1.ReceiveRemoteAddress(a2); |
+ if (rv != 0) { |
+ return ReportError("Transport::ReceiveRemoteAddress", rv); |
+ } |
+ rv = t2.ReceiveRemoteAddress(a1); |
+ if (rv != 0) { |
+ return ReportError("Transport::ReceiveRemoteAddress", rv); |
+ } |
+ rv = c1.WaitForResult(); |
+ if (rv != 0) { |
+ return ReportError("Transport::Connect", rv); |
+ } |
+ rv = c2.WaitForResult(); |
+ if (rv != 0) { |
+ return ReportError("Transport::Connect", rv); |
+ } |
+ if (!t1.IsWritable()) { |
+ return ReportError("Transport::IsWritable", 0); |
+ } |
+ if (!t2.IsWritable()) { |
+ return ReportError("Transport::IsWritable", 0); |
+ } |
+ // TODO(sergeyu): Verify that data can be sent/received. |
PASS(); |
} |