From 4441702b47ddfb0e862ccc3fa5caa00c5acc8aaf Mon Sep 17 00:00:00 2001 From: Baylac-Jacqué Félix Date: Thu, 10 Aug 2017 16:51:07 +0200 Subject: Setup travis CI. --- tests/spec/Network/WireGuard/RPCSpec.hs | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/spec/Network/WireGuard/RPCSpec.hs b/tests/spec/Network/WireGuard/RPCSpec.hs index b0422a3..286443e 100644 --- a/tests/spec/Network/WireGuard/RPCSpec.hs +++ b/tests/spec/Network/WireGuard/RPCSpec.hs @@ -1,11 +1,34 @@ module Network.WireGuard.RPCSpec (spec) where -import Test.Hspec (Spec, describe, it, shouldBe) +import Control.Monad.STM (atomically, STM) +import qualified Data.ByteString as BS (ByteString) +import qualified Data.ByteString.Lazy as BSL (ByteString) +import qualified Data.ByteString.Char8 as BC (pack) +import qualified Data.ByteString.Lazy.Char8 as BCL (pack) +import Data.Conduit (runConduit, yield, ( .|)) +import Data.Conduit.Binary (sinkLbs) +import Test.Hspec (Spec, describe, + it, shouldBe) -import Network.WireGuard.RPC (runRPC) +import Network.WireGuard.RPC (serveConduit) +import Network.WireGuard.Internal.State (Device, createDevice) +getCommand :: BS.ByteString +getCommand = BC.pack "\n\nget=1\n\n" + +deviceS :: STM Device +deviceS = createDevice "wg0" + +bsDeviceStrict :: BS.ByteString +bsDeviceStrict = BC.pack "private_key=e84b5a6d2717c1003a13b431570353dbaca9146cf150c5f8575680feba52027a\nlisten_port=12912\npublic_key=b85996fecc9c7f1fc6d2572a76eda11d59bcd20be8e543b15ce4bd85a8e75a33\npreshared_key=188515093e952f5f22e865cef3012e72f8b5f0b598ac0309d5dacce3b70fcf52\nallowed_ip=192.168.4.4/32\nendpoint=[abcd:23::33%2]:51820\n\n" + +bsDevice :: BSL.ByteString +bsDevice = BCL.pack "private_key=e84b5a6d2717c1003a13b431570353dbaca9146cf150c5f8575680feba52027a\nlisten_port=12912\npublic_key=b85996fecc9c7f1fc6d2572a76eda11d59bcd20be8e543b15ce4bd85a8e75a33\npreshared_key=188515093e952f5f22e865cef3012e72f8b5f0b598ac0309d5dacce3b70fcf52\nallowed_ip=192.168.4.4/32\nendpoint=[abcd:23::33%2]:51820\npublic_key=58402e695ba1772b1cc9309755f043251ea77fdcf10fbe63989ceb7e19321376\ntx_bytes=38333\nrx_bytes=2224\nallowed_ip=192.168.4.6/32\npersistent_keepalive_interval=111\nendpoint=182.122.22.19:3233\npublic_key=662e14fd594556f522604703340351258903b64f35553763f19426ab2a515c58\nendpoint=5.152.198.39:51820\nallowed_ip=192.168.4.10/32\nallowed_ip=192.168.4.11/32\ntx_bytes=1212111\nrx_bytes=1929999999\nerrno=0" + spec :: Spec -spec = describe "test" $ - it "should fail" $ - True `shouldBe` False +spec = describe "serveConduit" $ + it "must respond to a get v1 request" $ do + device <- atomically deviceS + res <- runConduit (yield getCommand .| serveConduit device .| sinkLbs) + res `shouldBe` bsDevice -- cgit v1.2.3-59-g8ed1b