Source

NXT / tests / Main.hs

module Main where

import Robotics.NXT
import Robotics.NXT.Basic

import Control.Exception
import Control.Monad.State.Class

import Test.Framework (defaultMainWithArgs, testGroup,Test)
import Test.Framework.Providers.HUnit


import System.Environment ( getArgs)
import Data.IORef
import Control.Monad.IO.Class (liftIO)

main :: IO()
main = do
  (device:args) <- getArgs
  bracket (do
                i<-initialize device
                newIORef i)
        (\ref->do
                i'<-readIORef ref
                terminate i')
        (\ref->defaultMainWithArgs (tests ref) args)
 
--  withNXT device (do
--        i<-get
--        ref<-liftIO $ newIORef i
--        liftIO $ defaultMainWithArgs (tests ref) args
--        i'<-liftIO $ readIORef ref
--        return ()
--        )

tests :: IORef (NXTInternals) -> [Test]
tests ref= [testGroup "Basic Tests" (concatMap hUnitTestToTests (basicTests ref))
         ]
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.