mirror of
https://github.com/GaloisInc/macaw.git
synced 2024-12-18 19:41:44 +03:00
31 lines
999 B
Haskell
31 lines
999 B
Haskell
|
module MismatchTests where
|
||
|
|
||
|
|
||
|
import Test.Tasty
|
||
|
import Test.Tasty.HUnit
|
||
|
import Shared
|
||
|
import Data.Monoid
|
||
|
import Control.Monad.Catch
|
||
|
|
||
|
|
||
|
armMismatchTests :: [FilePath] -> TestTree
|
||
|
armMismatchTests badBinList =
|
||
|
testGroup "ARM Mismatch Tests"
|
||
|
[ testGroup "BAD binaries" $ map testCorruptElf badBinList
|
||
|
]
|
||
|
|
||
|
testCorruptElf :: FilePath -> TestTree
|
||
|
testCorruptElf fpath =
|
||
|
testCase fpath $
|
||
|
catch (withELF fpath (const $ assertFailure "ELF read should have failed"))
|
||
|
(\e -> case e of
|
||
|
ElfHeaderParseError _ _ _ -> return () -- tr '\0' '8' test-just-exit.exe
|
||
|
ElfParseError _ _ -> return () -- tr '\05' '8' test-just-exit.exe
|
||
|
other -> assertFailure $ "Unexpected exception: " <> show other)
|
||
|
|
||
|
|
||
|
{-
|
||
|
$ cat test-just-exit.exe | tr '\034' '8' > test-just-exit8.exe=bad
|
||
|
== Result throws "error" instead of returning an parse failure.
|
||
|
-}
|