packages feed

jvm-streaming-0.4.0: src/test/haskell/Main.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
module Main where

import Control.Concurrent (runInBoundThread)
import Data.List (intersperse)
import qualified Data.Text as Text
import qualified Data.Text.Encoding as Text
import Foreign.JNI
import Language.Java.Inline (loadJavaWrappers)
import Language.Java.Streaming.Jars (getJars)
import qualified Spec
import Test.Hspec


main :: IO ()
main = do
    jars <- getJars
    let classpath = concat $ intersperse ":" jars
    withJVM [Text.encodeUtf8 $ Text.pack $ "-Djava.class.path=" ++ classpath] $ do
      loadJavaWrappers -- causes classes in jvm-batching.jar to be loaded
                       -- since they are used in java quotations
      hspec $ around_ (runInBoundThread . runInAttachedThread) Spec.spec