module Main where import qualified System.SD.Daemon as SD import Network.Socket import System.Posix.Types import Test.HUnit as H import Test.Framework (defaultMain, testGroup) import Test.Framework.Providers.HUnit import Control.Monad import qualified Control.Exception as E main = defaultMain tests tests = [ testGroup "System.SD.Daemon" [ testCase "sd_booted" test_sd_booted , testCase "sd_notify" test_sd_notify , testCase "sd_listen_fds1" test_sd_listen_fds1 , testCase "sd_listen_fds2" test_sd_listen_fds2 , testCase "sd_is_fifo" test_sd_is_fifo , testCase "sd_is_socket" test_sd_is_fifo , testCase "sd_is_socket_inet" test_sd_is_socket_inet , testCase "sd_is_socket_unix" test_sd_is_socket_unix ] ] where test_sd_booted = void $ SD.sdBooted test_sd_notify = void $ SD.sdNotify False [SD.readyVar, SD.statusVar "Test"] test_sd_listen_fds1 = do fds <- SD.sdListenFds False assertEqual "sd_listen_fds should return 0" 0 fds test_sd_listen_fds2 = do fds <- SD.sdListenFds' False assertEqual "sd_listen_fds should return 0" [] fds test_sd_is_fifo = do is_fifo <- SD.sdIsFifo (Fd 0) Nothing assertEqual "sd_is_fifo should return False for fd 0" False is_fifo test_sd_is_socket = do is_socket <- SD.sdIsSocket (Fd 0) AF_UNSPEC NoSocketType Nothing assertEqual "sd_is_socket should return False for fd 0" False is_socket test_sd_is_socket_inet = do is_socket <- SD.sdIsSocketInet (Fd 0) AF_UNSPEC NoSocketType Nothing (PortNum 0) assertEqual "sd_is_socket_inet should return False for fd 0" False is_socket test_sd_is_socket_unix = do is_socket <- SD.sdIsSocketUnix (Fd 0) NoSocketType Nothing Nothing 0 assertEqual "sd_is_socket_unix should return False for fd 0" False is_socket