language: reenable migration checks (#3650)

This reenables the migration checks. The migration command now only
generates stumbs for conversions instead of using the formerly (generic)
upgrade template.
This commit is contained in:
Robin Krom 2019-11-27 17:10:54 +01:00 committed by GitHub
parent aebf7452f6
commit faa150b310
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 287 additions and 295 deletions

View File

@ -26,9 +26,7 @@ generateUpgradeModule templateNames modName qualA qualB =
upgradeTemplates :: String -> [String]
upgradeTemplates n =
[ "template instance " <> n <> "Upgrade = Upgrade A." <> n <> " B." <> n
, "template instance " <> n <> "Rollback = Rollback A." <> n <> " B." <> n
, "instance Convertible A." <> n <> " B." <> n <> " where"
[ "instance Convertible A." <> n <> " B." <> n <> " where"
, " convert A." <> n <> "{..} = B." <> n <> " {..}"
, "instance Convertible B." <> n <> " A." <> n <> " where"
, " convert B." <> n <> "{..} = A." <> n <> " {..}"

View File

@ -3,27 +3,28 @@
module DA.Daml.Assistant.IntegrationTests (main) where
import Conduit hiding (connect)
import qualified Data.Conduit.Zlib as Zlib
import qualified Data.Conduit.Tar.Extra as Tar.Conduit.Extra
import Control.Concurrent
import Control.Concurrent.Async
import Control.Exception
import Control.Monad
import Control.Monad.Fail (MonadFail)
import DA.Daml.Options.Types
import qualified Data.Aeson.Types as Aeson
import qualified Data.Conduit.Tar.Extra as Tar.Conduit.Extra
import qualified Data.Conduit.Zlib as Zlib
import Data.List.Extra
import qualified Data.Map as Map
import Data.Maybe (maybeToList)
import qualified Data.Text as T
import Data.Typeable
import Data.Maybe (maybeToList)
import Network.HTTP.Client
import Network.HTTP.Types
import Network.Socket
import System.Directory.Extra
import System.Environment.Blank
import System.FilePath
import System.Info.Extra
import System.IO.Extra
import System.Info.Extra
import System.Process
import Test.Main
import Test.Tasty
@ -144,295 +145,288 @@ packagingTests = testGroup "packaging"
withCurrentDirectory projDir $ callCommandQuiet "daml build"
let dar = projDir </> ".daml/dist/script-example-0.0.1.dar"
assertBool "script-example-0.0.1.dar was not created." =<< doesFileExist dar
, testCaseSteps "Build migration package" $ \step -> withTempDir $ \tmpDir -> do
-- it's important that we have fresh empty directories here!
let projectA = tmpDir </> "a-1.0"
let projectB = tmpDir </> "a-2.0"
let projectUpgrade = tmpDir </> "upgrade"
let projectRollback = tmpDir </> "rollback"
let aDar = projectA </> "projecta.dar"
let bDar = projectB </> "projectb.dar"
let upgradeDar = projectUpgrade </> distDir </> "upgrade-0.0.1.dar"
let rollbackDar= projectRollback </> distDir </> "rollback-0.0.1.dar"
let bWithUpgradesDar = "a-2.0-with-upgrades.dar"
step "Creating project a-1.0 ..."
createDirectoryIfMissing True (projectA </> "daml")
writeFileUTF8 (projectA </> "daml" </> "Main.daml") $ unlines
[ "{-# LANGUAGE EmptyCase #-}"
, "daml 1.2"
, "module Main where"
, "data OnlyA"
, "data Both"
, "template Foo"
, " with"
, " a : Int"
, " p : Party"
, " where"
, " signatory p"
]
-- TODO(MH, #3606): Enable theses tests again when `daml migrate` doesn't
-- depend on generic templates anymore. We need to add the following
-- import as well.
-- import DA.Daml.Options.Types
-- <> [ testCaseSteps "Build migration package" $ \step -> withTempDir $ \tmpDir -> do
-- -- it's important that we have fresh empty directories here!
-- let projectA = tmpDir </> "a-1.0"
-- let projectB = tmpDir </> "a-2.0"
-- let projectUpgrade = tmpDir </> "upgrade"
-- let projectRollback = tmpDir </> "rollback"
-- let aDar = projectA </> "projecta.dar"
-- let bDar = projectB </> "projectb.dar"
-- let upgradeDar = projectUpgrade </> distDir </> "upgrade-0.0.1.dar"
-- let rollbackDar= projectRollback </> distDir </> "rollback-0.0.1.dar"
-- let bWithUpgradesDar = "a-2.0-with-upgrades.dar"
-- step "Creating project a-1.0 ..."
-- createDirectoryIfMissing True (projectA </> "daml")
-- writeFileUTF8 (projectA </> "daml" </> "Main.daml") $ unlines
-- [ "{-# LANGUAGE EmptyCase #-}"
-- , "daml 1.2"
-- , "module Main where"
-- , "data OnlyA"
-- , "data Both"
-- , "template Foo"
-- , " with"
-- , " a : Int"
-- , " p : Party"
-- , " where"
-- , " signatory p"
-- ]
-- writeFileUTF8 (projectA </> "daml.yaml") $ unlines
-- [ "sdk-version: " <> sdkVersion
-- , "name: a"
-- , "version: \"1.0\""
-- , "source: daml"
-- , "exposed-modules: [Main]"
-- , "dependencies:"
-- , " - daml-prim"
-- , " - daml-stdlib"
-- ]
-- -- We use -o to test that we do not depend on the name of the dar
-- withCurrentDirectory projectA $ callCommandQuiet $ "daml build -o " <> aDar
-- assertBool "a-1.0.dar was not created." =<< doesFileExist aDar
-- step "Creating project a-2.0 ..."
-- createDirectoryIfMissing True (projectB </> "daml")
-- writeFileUTF8 (projectB </> "daml" </> "Main.daml") $ unlines
-- [ "daml 1.2"
-- , "module Main where"
-- , "data OnlyB"
-- , "data Both"
-- , "template Foo"
-- , " with"
-- , " a : Int"
-- , " p : Party"
-- , " where"
-- , " signatory p"
-- ]
-- writeFileUTF8 (projectB </> "daml.yaml") $ unlines
-- [ "sdk-version: " <> sdkVersion
-- , "name: a"
-- , "version: \"2.0\""
-- , "source: daml"
-- , "exposed-modules: [Main]"
-- , "dependencies:"
-- , " - daml-prim"
-- , " - daml-stdlib"
-- ]
-- -- We use -o to test that we do not depend on the name of the dar
-- withCurrentDirectory projectB $ callCommandQuiet $ "daml build -o " <> bDar
-- assertBool "a-2.0.dar was not created." =<< doesFileExist bDar
-- step "Creating upgrade/rollback project"
-- -- We use -o to verify that we do not depend on the
-- callCommandQuiet $ unwords ["daml", "migrate", projectUpgrade, aDar, bDar]
-- callCommandQuiet $ unwords ["daml", "migrate", projectRollback, bDar, aDar]
-- step "Build migration project"
-- withCurrentDirectory projectUpgrade $
-- callCommandQuiet "daml build"
-- assertBool "upgrade-0.0.1.dar was not created" =<< doesFileExist upgradeDar
-- step "Build rollback project"
-- withCurrentDirectory projectRollback $
-- callCommandQuiet "daml build"
-- assertBool "rollback-0.0.1.dar was not created" =<< doesFileExist rollbackDar
-- step "Merging upgrade dar"
-- callCommandQuiet $
-- unwords
-- [ "daml damlc merge-dars"
-- , bDar
-- , upgradeDar
-- , "--dar-name"
-- , bWithUpgradesDar
-- ]
-- assertBool "a-0.2-with-upgrades.dar was not created." =<< doesFileExist bWithUpgradesDar
-- , testCaseSteps "Build migration package with generics" $ \step -> withTempDir $ \tmpDir -> do
-- -- it's important that we have fresh empty directories here!
-- let projectA = tmpDir </> "a-1.0"
-- let projectB = tmpDir </> "a-2.0"
-- let projectUpgrade = tmpDir </> "upgrade"
-- let aDar = projectA </> "projecta.dar"
-- let bDar = projectB </> "projectb.dar"
-- let upgradeDar = projectUpgrade </> distDir </> "upgrade-0.0.1.dar"
-- step "Creating project a-1.0 ..."
-- createDirectoryIfMissing True (projectA </> "daml")
-- writeFileUTF8 (projectA </> "daml" </> "Main.daml") $ unlines
-- [ "{-# LANGUAGE EmptyCase #-}"
-- , "daml 1.2"
-- , "module Main where"
-- , "data OnlyA"
-- , "data Both"
-- , "template Foo"
-- , " with"
-- , " a : Int"
-- , " p : Party"
-- , " where"
-- , " signatory p"
-- ]
-- writeFileUTF8 (projectA </> "daml.yaml") $ unlines
-- [ "sdk-version: " <> sdkVersion
-- , "name: a"
-- , "version: \"1.0\""
-- , "source: daml"
-- , "exposed-modules: [Main]"
-- , "dependencies:"
-- , " - daml-prim"
-- , " - daml-stdlib"
-- ]
-- -- We use -o to test that we do not depend on the name of the dar
-- withCurrentDirectory projectA $ callCommandQuiet $ "daml build -o " <> aDar
-- assertBool "a-1.0.dar was not created." =<< doesFileExist aDar
-- step "Creating project a-2.0 ..."
-- createDirectoryIfMissing True (projectB </> "daml")
-- writeFileUTF8 (projectB </> "daml" </> "Main.daml") $ unlines
-- [ "daml 1.2"
-- , "module Main where"
-- , "data OnlyB"
-- , "data Both"
-- , "template Foo"
-- , " with"
-- , " a : Int"
-- , " p : Party"
-- , " new : Optional Text"
-- , " where"
-- , " signatory p"
-- ]
-- writeFileUTF8 (projectB </> "daml.yaml") $ unlines
-- [ "sdk-version: " <> sdkVersion
-- , "name: a"
-- , "version: \"2.0\""
-- , "source: daml"
-- , "exposed-modules: [Main]"
-- , "dependencies:"
-- , " - daml-prim"
-- , " - daml-stdlib"
-- ]
-- -- We use -o to test that we do not depend on the name of the dar
-- withCurrentDirectory projectB $ callCommandQuiet $ "daml build -o " <> bDar
-- assertBool "a-2.0.dar was not created." =<< doesFileExist bDar
-- step "Creating upgrade/rollback project"
-- callCommandQuiet $ unwords ["daml", "migrate", projectUpgrade, aDar, bDar]
-- step "Generate generic instances"
-- writeFileUTF8 (projectUpgrade </> "daml" </> "Main.daml") $ unlines
-- [ "daml 1.2"
-- , "module Main where"
-- , "import MainA qualified as A"
-- , "import MainB qualified as B"
-- , "import MainAGenInstances()"
-- , "import MainBGenInstances()"
-- , "import DA.Upgrade"
-- , "import DA.Generics"
-- , "template instance FooUpgrade = Upgrade A.Foo B.Foo"
-- , "template instance FooRollback = Rollback A.Foo B.Foo"
-- , "instance Convertible A.Foo B.Foo"
-- , "instance Convertible B.Foo A.Foo"
-- ]
-- callCommandQuiet $
-- unwords
-- [ "daml"
-- , "damlc"
-- , "generate-generic-src"
-- , "--srcdir"
-- , projectUpgrade </> "daml"
-- , "--qualify"
-- , "A"
-- , aDar
-- ]
-- callCommandQuiet $
-- unwords
-- [ "daml"
-- , "damlc"
-- , "generate-generic-src"
-- , "--srcdir"
-- , projectUpgrade </> "daml"
-- , "--qualify"
-- , "B"
-- , bDar
-- ]
-- step "Build migration project"
-- withCurrentDirectory projectUpgrade $
-- callCommandQuiet "daml build --generated-src"
-- assertBool "upgrade-0.0.1.dar was not created" =<< doesFileExist upgradeDar
writeFileUTF8 (projectA </> "daml.yaml") $ unlines
[ "sdk-version: " <> sdkVersion
, "name: a"
, "version: \"1.0\""
, "source: daml"
, "exposed-modules: [Main]"
, "dependencies:"
, " - daml-prim"
, " - daml-stdlib"
]
-- We use -o to test that we do not depend on the name of the dar
withCurrentDirectory projectA $ callCommandQuiet $ "daml build -o " <> aDar
assertBool "a-1.0.dar was not created." =<< doesFileExist aDar
step "Creating project a-2.0 ..."
createDirectoryIfMissing True (projectB </> "daml")
writeFileUTF8 (projectB </> "daml" </> "Main.daml") $ unlines
[ "daml 1.2"
, "module Main where"
, "data OnlyB"
, "data Both"
, "template Foo"
, " with"
, " a : Int"
, " p : Party"
, " where"
, " signatory p"
]
writeFileUTF8 (projectB </> "daml.yaml") $ unlines
[ "sdk-version: " <> sdkVersion
, "name: a"
, "version: \"2.0\""
, "source: daml"
, "exposed-modules: [Main]"
, "dependencies:"
, " - daml-prim"
, " - daml-stdlib"
]
-- We use -o to test that we do not depend on the name of the dar
withCurrentDirectory projectB $ callCommandQuiet $ "daml build -o " <> bDar
assertBool "a-2.0.dar was not created." =<< doesFileExist bDar
step "Creating upgrade/rollback project"
-- We use -o to verify that we do not depend on the
callCommandQuiet $ unwords ["daml", "migrate", projectUpgrade, aDar, bDar]
callCommandQuiet $ unwords ["daml", "migrate", projectRollback, bDar, aDar]
step "Build migration project"
withCurrentDirectory projectUpgrade $
callCommandQuiet "daml build"
assertBool "upgrade-0.0.1.dar was not created" =<< doesFileExist upgradeDar
step "Build rollback project"
withCurrentDirectory projectRollback $
callCommandQuiet "daml build"
assertBool "rollback-0.0.1.dar was not created" =<< doesFileExist rollbackDar
step "Merging upgrade dar"
callCommandQuiet $
unwords
[ "daml damlc merge-dars"
, bDar
, upgradeDar
, "--dar-name"
, bWithUpgradesDar
]
assertBool "a-0.2-with-upgrades.dar was not created." =<< doesFileExist bWithUpgradesDar
, testCaseSteps "Build migration package with generics" $ \step -> withTempDir $ \tmpDir -> do
-- it's important that we have fresh empty directories here!
let projectA = tmpDir </> "a-1.0"
let projectB = tmpDir </> "a-2.0"
let projectUpgrade = tmpDir </> "upgrade"
let aDar = projectA </> "projecta.dar"
let bDar = projectB </> "projectb.dar"
let upgradeDar = projectUpgrade </> distDir </> "upgrade-0.0.1.dar"
step "Creating project a-1.0 ..."
createDirectoryIfMissing True (projectA </> "daml")
writeFileUTF8 (projectA </> "daml" </> "Main.daml") $ unlines
[ "{-# LANGUAGE EmptyCase #-}"
, "daml 1.2"
, "module Main where"
, "data OnlyA"
, "data Both"
, "template Foo"
, " with"
, " a : Int"
, " p : Party"
, " where"
, " signatory p"
]
writeFileUTF8 (projectA </> "daml.yaml") $ unlines
[ "sdk-version: " <> sdkVersion
, "name: a"
, "version: \"1.0\""
, "source: daml"
, "exposed-modules: [Main]"
, "dependencies:"
, " - daml-prim"
, " - daml-stdlib"
]
-- We use -o to test that we do not depend on the name of the dar
withCurrentDirectory projectA $ callCommandQuiet $ "daml build -o " <> aDar
assertBool "a-1.0.dar was not created." =<< doesFileExist aDar
step "Creating project a-2.0 ..."
createDirectoryIfMissing True (projectB </> "daml")
writeFileUTF8 (projectB </> "daml" </> "Main.daml") $ unlines
[ "daml 1.2"
, "module Main where"
, "data OnlyB"
, "data Both"
, "template Foo"
, " with"
, " a : Int"
, " p : Party"
, " new : Optional Text"
, " where"
, " signatory p"
]
writeFileUTF8 (projectB </> "daml.yaml") $ unlines
[ "sdk-version: " <> sdkVersion
, "name: a"
, "version: \"2.0\""
, "source: daml"
, "exposed-modules: [Main]"
, "dependencies:"
, " - daml-prim"
, " - daml-stdlib"
]
-- We use -o to test that we do not depend on the name of the dar
withCurrentDirectory projectB $ callCommandQuiet $ "daml build -o " <> bDar
assertBool "a-2.0.dar was not created." =<< doesFileExist bDar
step "Creating upgrade/rollback project"
callCommandQuiet $ unwords ["daml", "migrate", projectUpgrade, aDar, bDar]
step "Generate generic instances"
writeFileUTF8 (projectUpgrade </> "daml" </> "Main.daml") $ unlines
[ "daml 1.2"
, "module Main where"
, "import MainA qualified as A"
, "import MainB qualified as B"
, "import MainAGenInstances()"
, "import MainBGenInstances()"
, "import DA.Upgrade"
, "import DA.Generics"
, "instance Convertible A.Foo B.Foo"
, "instance Convertible B.Foo A.Foo"
]
callCommandQuiet $
unwords
[ "daml"
, "damlc"
, "generate-generic-src"
, "--srcdir"
, projectUpgrade </> "daml"
, "--qualify"
, "A"
, aDar
]
callCommandQuiet $
unwords
[ "daml"
, "damlc"
, "generate-generic-src"
, "--srcdir"
, projectUpgrade </> "daml"
, "--qualify"
, "B"
, bDar
]
step "Build migration project"
withCurrentDirectory projectUpgrade $
callCommandQuiet "daml build --generated-src"
assertBool "upgrade-0.0.1.dar was not created" =<< doesFileExist upgradeDar
-- , testCaseSteps "Build migration package in LF 1.dev with Numerics" $ \step -> withTempDir $ \tmpDir -> do
-- -- it's important that we have fresh empty directories here!
-- let projectA = tmpDir </> "a-1.0"
-- let projectB = tmpDir </> "a-2.0"
-- let projectUpgrade = tmpDir </> "upgrade"
-- let projectRollback = tmpDir </> "rollback"
-- let aDar = projectA </> "projecta.dar"
-- let bDar = projectB </> "projectb.dar"
-- let upgradeDar = projectUpgrade </> distDir </> "upgrade-0.0.1.dar"
-- let rollbackDar= projectRollback </> distDir </> "rollback-0.0.1.dar"
-- let bWithUpgradesDar = "a-2.0-with-upgrades.dar"
-- step "Creating project a-1.0 ..."
-- createDirectoryIfMissing True (projectA </> "daml")
-- writeFileUTF8 (projectA </> "daml" </> "Main.daml") $ unlines
-- [ "daml 1.2"
-- , "module Main where"
-- , "data OnlyA"
-- , "data Both"
-- , "template Foo"
-- , " with"
-- , " a : Numeric 5"
-- , " p : Party"
-- , " where"
-- , " signatory p"
-- ]
-- writeFileUTF8 (projectA </> "daml.yaml") $ unlines
-- [ "sdk-version: " <> sdkVersion
-- , "name: a"
-- , "version: \"1.0\""
-- , "source: daml"
-- , "exposed-modules: [Main]"
-- , "dependencies:"
-- , " - daml-prim"
-- , " - daml-stdlib"
-- ]
-- -- We use -o to test that we do not depend on the name of the dar
-- withCurrentDirectory projectA $ callCommandQuiet $ "daml build --target 1.dev -o " <> aDar
-- assertBool "a-1.0.dar was not created." =<< doesFileExist aDar
-- step "Creating project a-2.0 ..."
-- createDirectoryIfMissing True (projectB </> "daml")
-- writeFileUTF8 (projectB </> "daml" </> "Main.daml") $ unlines
-- [ "daml 1.2"
-- , "module Main where"
-- , "data OnlyB"
-- , "data Both"
-- , "template Foo"
-- , " with"
-- , " a : Numeric 5"
-- , " p : Party"
-- , " where"
-- , " signatory p"
-- ]
-- writeFileUTF8 (projectB </> "daml.yaml") $ unlines
-- [ "sdk-version: " <> sdkVersion
-- , "name: a"
-- , "version: \"2.0\""
-- , "source: daml"
-- , "exposed-modules: [Main]"
-- , "dependencies:"
-- , " - daml-prim"
-- , " - daml-stdlib"
-- ]
-- -- We use -o to test that we do not depend on the name of the dar
-- withCurrentDirectory projectB $ callCommandQuiet $ "daml build --target 1.dev -o " <> bDar
-- assertBool "a-2.0.dar was not created." =<< doesFileExist bDar
-- step "Creating upgrade/rollback project"
-- -- We use -o to verify that we do not depend on the
-- callCommandQuiet $ unwords ["daml", "migrate", projectUpgrade, aDar, bDar]
-- callCommandQuiet $ unwords ["daml", "migrate", projectRollback, bDar, aDar]
-- step "Build migration project"
-- withCurrentDirectory projectUpgrade $
-- callCommandQuiet "daml build --target 1.dev"
-- assertBool "upgrade-0.0.1.dar was not created" =<< doesFileExist upgradeDar
-- step "Build rollback project"
-- withCurrentDirectory projectRollback $
-- callCommandQuiet "daml build --target 1.dev"
-- assertBool "rollback-0.0.1.dar was not created" =<< doesFileExist rollbackDar
-- step "Merging upgrade dar"
-- callCommandQuiet $
-- unwords
-- [ "daml damlc merge-dars"
-- , bDar
-- , upgradeDar
-- , "--dar-name"
-- , bWithUpgradesDar
-- ]
-- assertBool "a-0.2-with-upgrades.dar was not created." =<< doesFileExist bWithUpgradesDar
-- ]
, testCaseSteps "Build migration package in LF 1.dev with Numerics" $ \step -> withTempDir $ \tmpDir -> do
-- it's important that we have fresh empty directories here!
let projectA = tmpDir </> "a-1.0"
let projectB = tmpDir </> "a-2.0"
let projectUpgrade = tmpDir </> "upgrade"
let projectRollback = tmpDir </> "rollback"
let aDar = projectA </> "projecta.dar"
let bDar = projectB </> "projectb.dar"
let upgradeDar = projectUpgrade </> distDir </> "upgrade-0.0.1.dar"
let rollbackDar= projectRollback </> distDir </> "rollback-0.0.1.dar"
let bWithUpgradesDar = "a-2.0-with-upgrades.dar"
step "Creating project a-1.0 ..."
createDirectoryIfMissing True (projectA </> "daml")
writeFileUTF8 (projectA </> "daml" </> "Main.daml") $ unlines
[ "daml 1.2"
, "module Main where"
, "data OnlyA"
, "data Both"
, "template Foo"
, " with"
, " a : Numeric 5"
, " p : Party"
, " where"
, " signatory p"
]
writeFileUTF8 (projectA </> "daml.yaml") $ unlines
[ "sdk-version: " <> sdkVersion
, "name: a"
, "version: \"1.0\""
, "source: daml"
, "exposed-modules: [Main]"
, "dependencies:"
, " - daml-prim"
, " - daml-stdlib"
]
-- We use -o to test that we do not depend on the name of the dar
withCurrentDirectory projectA $ callCommandQuiet $ "daml build --target 1.dev -o " <> aDar
assertBool "a-1.0.dar was not created." =<< doesFileExist aDar
step "Creating project a-2.0 ..."
createDirectoryIfMissing True (projectB </> "daml")
writeFileUTF8 (projectB </> "daml" </> "Main.daml") $ unlines
[ "daml 1.2"
, "module Main where"
, "data OnlyB"
, "data Both"
, "template Foo"
, " with"
, " a : Numeric 5"
, " p : Party"
, " where"
, " signatory p"
]
writeFileUTF8 (projectB </> "daml.yaml") $ unlines
[ "sdk-version: " <> sdkVersion
, "name: a"
, "version: \"2.0\""
, "source: daml"
, "exposed-modules: [Main]"
, "dependencies:"
, " - daml-prim"
, " - daml-stdlib"
]
-- We use -o to test that we do not depend on the name of the dar
withCurrentDirectory projectB $ callCommandQuiet $ "daml build --target 1.dev -o " <> bDar
assertBool "a-2.0.dar was not created." =<< doesFileExist bDar
step "Creating upgrade/rollback project"
-- We use -o to verify that we do not depend on the
callCommandQuiet $ unwords ["daml", "migrate", projectUpgrade, aDar, bDar]
callCommandQuiet $ unwords ["daml", "migrate", projectRollback, bDar, aDar]
step "Build migration project"
withCurrentDirectory projectUpgrade $
callCommandQuiet "daml build --target 1.dev"
assertBool "upgrade-0.0.1.dar was not created" =<< doesFileExist upgradeDar
step "Build rollback project"
withCurrentDirectory projectRollback $
callCommandQuiet "daml build --target 1.dev"
assertBool "rollback-0.0.1.dar was not created" =<< doesFileExist rollbackDar
step "Merging upgrade dar"
callCommandQuiet $
unwords
[ "daml damlc merge-dars"
, bDar
, upgradeDar
, "--dar-name"
, bWithUpgradesDar
]
assertBool "a-0.2-with-upgrades.dar was not created." =<< doesFileExist bWithUpgradesDar
]
quickstartTests :: FilePath -> FilePath -> TestTree
quickstartTests quickstartDir mvnDir = testGroup "quickstart"