packages feed

morloc-0.33.0: test-suite/Main.hs

import Test.Tasty
import qualified System.Directory as SD

import PropertyTests (propertyTests)
import UnitTypeTests
import GoldenMakefileTests (goldenMakefileTest)

main = do
  wd <- SD.getCurrentDirectory >>= SD.makeAbsolute
  let golden = \msg f -> goldenMakefileTest msg (wd ++ "/test-suite/golden-tests/" ++ f)
  defaultMain $
    testGroup
      "Morloc tests"
      [ packerTests
      , unitTypeTests
      , typeOrderTests
      , typeAliasTests
      , propertyTests
      , jsontype2jsonTests
      , recordAccessTests

      , golden "import-1" "import-1"

      , golden "argument-form-1-c" "argument-form-1-c"
      , golden "argument-form-1-py" "argument-form-1-py"
      , golden "argument-form-1-r" "argument-form-1-r"

      , golden "argument-form-2-c" "argument-form-2-c"
      , golden "argument-form-2-py" "argument-form-2-py"
      , golden "argument-form-2-r" "argument-form-2-r"

      -- see github issue #7
      , golden "argument-form-3-c" "argument-form-3-c"
      , golden "argument-form-3-py" "argument-form-3-py"
      , golden "argument-form-3-r" "argument-form-3-r"

      , golden "argument-form-4-c" "argument-form-4-c"
      , golden "argument-form-4-py" "argument-form-4-py"
      , golden "argument-form-4-r" "argument-form-4-r"

      , golden "argument-form-5-c" "argument-form-5-c"
      , golden "argument-form-5-py" "argument-form-5-py"
      , golden "argument-form-5-r" "argument-form-5-r"

      , golden "argument-form-6-c" "argument-form-6-c"
      , golden "argument-form-6-py" "argument-form-6-py"
      , golden "argument-form-6-r" "argument-form-6-r"

      , golden "argument-form-7-c" "argument-form-7-c"
      , golden "argument-form-7-py" "argument-form-7-py"
      , golden "argument-form-7-r" "argument-form-7-r"

      , golden "argument-form-8-c" "argument-form-8-c"
      , golden "argument-form-8-py" "argument-form-8-py"
      , golden "argument-form-8-r" "argument-form-8-r"

      , golden "defaults-1-py" "defaults-1-py"

      , golden "interop-1-py" "interop-1-py"
      , golden "interop-1-r" "interop-1-r"
      , golden "interop-2" "interop-2"

      , golden "manifold-form-0" "manifold-form-0"
      , golden "manifold-form-0x" "manifold-form-0x"
      , golden "manifold-form-1" "manifold-form-1"
      , golden "manifold-form-2" "manifold-form-2"
      , golden "manifold-form-2x" "manifold-form-2x"
      , golden "manifold-form-3" "manifold-form-3"
      , golden "manifold-form-3x" "manifold-form-3x"
      , golden "manifold-form-4_c" "manifold-form-4_c"
      , golden "manifold-form-4_py" "manifold-form-4_py"
      , golden "manifold-form-4_r" "manifold-form-4_r"
      , golden "manifold-form-5_c" "manifold-form-5_c"
      , golden "manifold-form-5_py" "manifold-form-5_py"
      , golden "manifold-form-5_r" "manifold-form-5_r"
      , golden "manifold-form-6_c" "manifold-form-6_c"
      , golden "manifold-form-6_py" "manifold-form-6_py"
      , golden "manifold-form-6_r" "manifold-form-6_r"

      -- see github issue #9
      , golden "manifold-form-7_c" "manifold-form-7_c"
      , golden "manifold-form-7_py" "manifold-form-7_py"
      , golden "manifold-form-7_r" "manifold-form-7_r"

      , golden "records-1-py" "records-1-py"
      , golden "records-1-r" "records-1-r"
      -- see github issue #8
      , golden "records-1-c" "records-1-c"

      , golden "selection-1" "selection-1"
      , golden "selection-2" "selection-2"
      , golden "selection-3" "selection-3"
      , golden "selection-4" "selection-4"

      -- import two instances in one languages for a function
      -- this is also a test of a function that is defind in a local file
      , golden "multiple-instances-1-c" "multiple-instances-1-c"
      , golden "multiple-instances-1-py" "multiple-instances-1-py"
      , golden "multiple-instances-1-r" "multiple-instances-1-r"
      -- multiple sources and a declaration
      , golden "multiple-instances-2-c" "multiple-instances-2-c"
      , golden "multiple-instances-2-py" "multiple-instances-2-py"
      , golden "multiple-instances-2-r" "multiple-instances-2-r"
      -- tests of module forms
      -- where *-sid
      --   s - number of sourced instances
      --   i - number of imported instances
      --   d - number of declared instances
      , golden "module-form-00n" "module-form-00n"
      , golden "module-form-011" "module-form-011"
      , golden "module-form-01n" "module-form-01n"
      , golden "module-form-0n0" "module-form-0n0"
      , golden "module-form-0n1" "module-form-0n1"
      , golden "module-form-101" "module-form-101"
      , golden "module-form-10n" "module-form-10n"
      , golden "module-form-110" "module-form-110"
      , golden "module-form-111" "module-form-111"
      , golden "module-form-1n0" "module-form-1n0"
      , golden "module-form-n00" "module-form-n00"
      , golden "module-form-n01" "module-form-n01"
      , golden "module-form-n10" "module-form-n10"

      -- tests of serialization
      -- , golden "c  S" "serial-form-1-c"
      -- , golden "py S" "serial-form-1-py"
      -- , golden "r  S" "serial-form-1-r"
      , golden "C serial-form-2-c"  "serial-form-2-c"
      , golden "C serial-form-2-py" "serial-form-2-py"
      , golden "C serial-form-2-r"  "serial-form-2-r"
      -- , golden "c  R" "serial-form-3-c"
      -- , golden "py R" "serial-form-3-py"
      -- , golden "r  R" "serial-form-3-r"
      -- outer simple type
      , golden "S(S) serial-form-4-c"  "serial-form-4-c"
      , golden "S(S) serial-form-4-py" "serial-form-4-py"
      , golden "S(S) serial-form-4-r"  "serial-form-4-r"
      , golden "S(C) serial-form-5-c"  "serial-form-5-c"
      , golden "S(C) serial-form-5-py" "serial-form-5-py"
      , golden "S(C) serial-form-5-r"  "serial-form-5-r"
      , golden "S(R) serial-form-6-c"  "serial-form-6-c"
      , golden "S(R) serial-form-6-py" "serial-form-6-py"
      , golden "S(R) serial-form-6-r"  "serial-form-6-r"
      -- outer constructed type
      , golden "C(S) serial-form-7-c"  "serial-form-7-c"
      , golden "C(S) serial-form-7-py" "serial-form-7-py"
      , golden "C(S) serial-form-7-r"  "serial-form-7-r"
      , golden "C(C) serial-form-8-c"  "serial-form-8-c"
      , golden "C(C) serial-form-8-py" "serial-form-8-py"
      , golden "C(C) serial-form-8-r"  "serial-form-8-r"
      , golden "C(R) serial-form-9-c"  "serial-form-9-c"
      , golden "C(R) serial-form-9-py" "serial-form-9-py"
      , golden "C(R) serial-form-9-r"  "serial-form-9-r"
      -- outer record type
      , golden "R(S) serial-form-10-c"  "serial-form-10-c"
      , golden "R(S) serial-form-10-py" "serial-form-10-py"
      , golden "R(S) serial-form-10-r"  "serial-form-10-r"
      , golden "R(C) serial-form-11-c"  "serial-form-11-c"
      , golden "R(C) serial-form-11-py" "serial-form-11-py"
      , golden "R(C) serial-form-11-r"  "serial-form-11-r"
      , golden "R(R) serial-form-12-c"  "serial-form-12-c"
      , golden "R(R) serial-form-12-py" "serial-form-12-py"
      , golden "R(R) serial-form-12-r"  "serial-form-12-r"
      -- table handling
      , golden "C++ table default"    "table-1-c"
      , golden "py3 table default"    "table-1-py"
      , golden "R table default"      "table-1-r"
      , golden "C++ table object"     "table-2-c"
      , golden "py3 table object"     "table-2-py"
      , golden "R table object"       "table-2-r"
      -- object handling
      , golden "C++ object handling"  "object-1-c"
      , golden "py3 object handling"  "object-1-py"
      , golden "R object handling"    "object-1-r"
      -- record access
      , golden "record-access-gen"    "record-access-gen"
      , golden "record-access-c"      "record-access-c"
      , golden "record-access-py"     "record-access-py"
      , golden "record-access-r"      "record-access-r"
      -- type identities
      , golden "type-identities-c"    "type-identities-c"
      ]