12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // Copyright 2013 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef PPAPI_TESTS_TEST_UDP_SOCKET_H_
- #define PPAPI_TESTS_TEST_UDP_SOCKET_H_
- #include <stddef.h>
- #include <string>
- #include "ppapi/c/pp_stdint.h"
- #include "ppapi/c/ppb_udp_socket.h"
- #include "ppapi/cpp/net_address.h"
- #include "ppapi/tests/test_case.h"
- namespace {
- typedef int32_t (*UDPSocketSetOption)(PP_Resource udp_socket,
- PP_UDPSocket_Option name,
- struct PP_Var value,
- struct PP_CompletionCallback callback);
- }
- namespace pp {
- class UDPSocket;
- }
- class TestUDPSocket: public TestCase {
- public:
- explicit TestUDPSocket(TestingInstance* instance);
- // TestCase implementation.
- virtual bool Init();
- virtual void RunTests(const std::string& filter);
- private:
- std::string GetLocalAddress(pp::NetAddress* address);
- std::string SetBroadcastOptions(pp::UDPSocket* socket);
- std::string BindUDPSocket(pp::UDPSocket* socket,
- const pp::NetAddress& address);
- std::string LookupPortAndBindUDPSocket(pp::UDPSocket* socket,
- pp::NetAddress* address);
- std::string ReadSocket(pp::UDPSocket* socket,
- pp::NetAddress* address,
- size_t size,
- std::string* message);
- std::string PassMessage(pp::UDPSocket* target,
- pp::UDPSocket* source,
- const pp::NetAddress& target_address,
- const std::string& message,
- pp::NetAddress* recvfrom_address);
- std::string SetMulticastOptions(pp::UDPSocket* socket);
- std::string TestReadWrite();
- std::string TestBroadcast();
- int32_t SetOptionValue(UDPSocketSetOption func,
- PP_Resource socket,
- PP_UDPSocket_Option option,
- const PP_Var& value);
- std::string TestSetOption_1_0();
- std::string TestSetOption_1_1();
- std::string TestSetOption();
- std::string TestParallelSend();
- std::string TestMulticast();
- // Error cases. It's up to the parent test fixture to ensure that these events
- // result in errors.
- std::string TestBindFails();
- std::string TestSetBroadcastFails();
- std::string TestSendToFails();
- std::string TestReadFails();
- pp::NetAddress address_;
- const PPB_UDPSocket_1_0* socket_interface_1_0_;
- const PPB_UDPSocket_1_1* socket_interface_1_1_;
- };
- #endif // PPAPI_TESTS_TEST_UDP_SOCKET_H_
|