packages feed

jvm-binary-0.0.1: test-suite/Test.hs

{-# OPTIONS_GHC -F -pgmF tasty-discover -optF --tree-display #-}


-- {-# LANGUAGE OverloadedStrings #-}
-- import           Language.JVM.Binary.Attribute (Attribute(..))
-- import           Language.JVM.Binary.ClassFile


-- import           Data.Binary            (decode, encode)
-- import qualified Data.ByteString.Lazy   as LBS
-- import qualified Data.ByteString.Char8  as BC
-- import qualified Data.ByteString as BS

-- import qualified Test.Tasty
-- import           Test.Tasty.Hspec
-- import           Test.Tasty.QuickCheck  as QC


-- main :: IO ()
-- main = do
--   putStrLn ".."
--   test <- testSpec "jvmhs" classfileSpec
--   Test.Tasty.defaultMain (Test.Tasty.testGroup "All of it" [ test, encodedecode ])

-- classfileSpec :: Spec
-- classfileSpec = beforeAll (LBS.readFile "test-suite/project/Main.class") $ do
--   it "can read the bytestring" $
--     \bs -> let classfile = decode bs
--            in (magicNumber classfile) `shouldBe` 3405691582

--   it "can encode and decode attributes" $
--     \_ -> let attr = Attribute 1 (BC.pack "Hello")
--            in (decode . encode ) attr `shouldBe` attr

--   it "will encode and decode back to a class file" $ \bs ->
--     let classfile = decode bs :: ClassFile
--         encoding = encode classfile
--     in (methods classfile) `shouldBe` (methods $ decode (LBS.append encoding (LBS.repeat 0)))

--   it "will encode the data back to the same format" $ \bs ->
--     let classfile = decode bs :: ClassFile
--     in bs `shouldBe` encode classfile


-- encodedecode :: Test.Tasty.TestTree
-- encodedecode =
--   Test.Tasty.testGroup "encode . decode == id"
--   [ QC.testProperty "Attribute" $ \(ArbAttribute attr) ->
--       (decode . encode) attr == attr
--   ]

-- newtype ArbAttribute =
--   ArbAttribute Attribute deriving (Show, Eq)

-- instance Arbitrary ArbAttribute where
--   arbitrary = do
--     index <- arbitrary
--     len <- choose (0, 50)
--     bs <- BS.pack <$> sequence (replicate len arbitrary)
--     return $ ArbAttribute (Attribute index bs)