{- Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved. This source code is licensed under the BSD-style license found in the LICENSE file in the root directory of this source tree. -} module SocketChannelTest where import Network.Socket (maxListenQueue) import TestRunner import Test.HUnit hiding (State) import Thrift.Api import Thrift.Channel import Thrift.Channel.SocketChannel.Server import Thrift.Protocol.Id import Math.Calculator.Client import TestCommon main :: IO () main = testRunner . TestList $ runChannelTests mkClientTestSockWith [ addTest, divTest, putGetTest, putPutGetTest , exceptionTest, unimplementedTest, multiTest ] -- Client utilities ------------------------------------------------------------ mkClientTestSock :: String -> Thrift Calculator () -> Test mkClientTestSock lbl = mkClientTestSockWith lbl defaultRpcOptions mkClientTestSockWith :: String -> RpcOptions -> Thrift Calculator () -> Test mkClientTestSockWith lbl _opts action = TestLabel lbl $ TestCase $ do state <- initServerState withServer binaryProtocolId Nothing maxListenQueue (processCommand state) (\_ _ -> []) action