From 3ad0e47d736b0a28632c7d78b50ef2527e15af3b Mon Sep 17 00:00:00 2001 From: Oleg Grenrus <oleg.grenrus@iki.fi> Date: Thu, 28 Nov 2019 04:36:23 +0200 Subject: [PATCH] fetchRepoTarball output is non-deterministic This could solve some non-determinism in output of cabal-testsuite which we experienced on appveyor, i.e. https://github.com/haskell/cabal/issues/6271 --- cabal-install/Distribution/Client/FetchUtils.hs | 7 ++++--- .../PackageTests/Backpack/Includes2/cabal-external.test.hs | 1 - .../PackageTests/Backpack/Includes2/cabal-internal.test.hs | 1 - .../PackageTests/Backpack/Includes3/cabal-external.test.hs | 1 - .../PackageTests/Backpack/Includes3/cabal-internal.test.hs | 1 - .../PackageTests/Backpack/bkpcabal01/cabal.test.hs | 1 - .../PackageTests/Regression/T5309/cabal.test.hs | 1 - .../PackageTests/Regression/T5677/cabal.test.hs | 1 - 8 files changed, 4 insertions(+), 10 deletions(-) diff --git a/cabal-install/Distribution/Client/FetchUtils.hs b/cabal-install/Distribution/Client/FetchUtils.hs index ae2e271796..1099c91d72 100644 --- a/cabal-install/Distribution/Client/FetchUtils.hs +++ b/cabal-install/Distribution/Client/FetchUtils.hs @@ -162,7 +162,7 @@ fetchPackage verbosity repoCtxt loc = case loc of -- | Fetch a repo package if we don't have it already. -- fetchRepoTarball :: Verbosity -> RepoContext -> Repo -> PackageId -> IO FilePath -fetchRepoTarball verbosity repoCtxt repo pkgid = do +fetchRepoTarball verbosity' repoCtxt repo pkgid = do fetched <- doesFileExist (packageFile repo pkgid) if fetched then do info verbosity $ display pkgid ++ " has already been downloaded." @@ -171,9 +171,10 @@ fetchRepoTarball verbosity repoCtxt repo pkgid = do res <- downloadRepoPackage progressMessage verbosity ProgressDownloaded (display pkgid) return res - - where + -- whether we download or not is non-deterministic + verbosity' = verboseUnmarkOutput verbosity' + downloadRepoPackage = case repo of RepoLocal{..} -> return (packageFile repo pkgid) diff --git a/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-external.test.hs b/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-external.test.hs index d07a96756a..3e9936d856 100644 --- a/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-external.test.hs +++ b/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-external.test.hs @@ -2,7 +2,6 @@ import Test.Cabal.Prelude main = cabalTest $ do skipUnless =<< ghcVersionIs (>= mkVersion [8,1]) - skipIf =<< isWindows -- TODO: https://github.com/haskell/cabal/issues/6271 withProjectFile "cabal.external.project" $ do cabal "v2-build" ["exe"] withPlan $ do diff --git a/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-internal.test.hs b/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-internal.test.hs index 8aa865addb..ed5c0978c7 100644 --- a/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-internal.test.hs +++ b/cabal-testsuite/PackageTests/Backpack/Includes2/cabal-internal.test.hs @@ -2,7 +2,6 @@ import Test.Cabal.Prelude main = cabalTest $ do skipUnless =<< ghcVersionIs (>= mkVersion [8,1]) - skipIf =<< isWindows -- TODO: https://github.com/haskell/cabal/issues/6271 withProjectFile "cabal.internal.project" $ do cabal "v2-build" ["exe"] withPlan $ do diff --git a/cabal-testsuite/PackageTests/Backpack/Includes3/cabal-external.test.hs b/cabal-testsuite/PackageTests/Backpack/Includes3/cabal-external.test.hs index 1e247c8ce6..2940109161 100644 --- a/cabal-testsuite/PackageTests/Backpack/Includes3/cabal-external.test.hs +++ b/cabal-testsuite/PackageTests/Backpack/Includes3/cabal-external.test.hs @@ -2,7 +2,6 @@ import Test.Cabal.Prelude main = cabalTest $ do skipUnless =<< ghcVersionIs (>= mkVersion [8,1]) - skipIf =<< isWindows -- TODO: https://github.com/haskell/cabal/issues/6271 withProjectFile "cabal.external.project" $ do cabal "v2-build" ["exe"] withPlan $ do diff --git a/cabal-testsuite/PackageTests/Backpack/Includes3/cabal-internal.test.hs b/cabal-testsuite/PackageTests/Backpack/Includes3/cabal-internal.test.hs index ebf0589111..56c49c6e97 100644 --- a/cabal-testsuite/PackageTests/Backpack/Includes3/cabal-internal.test.hs +++ b/cabal-testsuite/PackageTests/Backpack/Includes3/cabal-internal.test.hs @@ -2,7 +2,6 @@ import Test.Cabal.Prelude main = cabalTest $ do skipUnless =<< ghcVersionIs (>= mkVersion [8,1]) - skipIf =<< isWindows -- TODO: https://github.com/haskell/cabal/issues/6271 withProjectFile "cabal.internal.project" $ do cabal "v2-build" ["exe"] withPlan $ do diff --git a/cabal-testsuite/PackageTests/Backpack/bkpcabal01/cabal.test.hs b/cabal-testsuite/PackageTests/Backpack/bkpcabal01/cabal.test.hs index ae7e000f4c..08cbbd3c80 100644 --- a/cabal-testsuite/PackageTests/Backpack/bkpcabal01/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Backpack/bkpcabal01/cabal.test.hs @@ -2,5 +2,4 @@ import Test.Cabal.Prelude main = cabalTest $ do -- GHC 8.2.2 had a regression ("unknown package: hole"), see also #4908 skipUnless =<< ghcVersionIs (\v -> v >= mkVersion [8,2] && v /= mkVersion [8,2,2]) - skipIf =<< isWindows -- TODO: https://github.com/haskell/cabal/issues/6271 cabal "v2-build" ["all"] diff --git a/cabal-testsuite/PackageTests/Regression/T5309/cabal.test.hs b/cabal-testsuite/PackageTests/Regression/T5309/cabal.test.hs index 71f5f7a9b3..c7d8b1760d 100644 --- a/cabal-testsuite/PackageTests/Regression/T5309/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Regression/T5309/cabal.test.hs @@ -1,6 +1,5 @@ import Test.Cabal.Prelude main = cabalTest $ do - skipIf =<< isWindows -- TODO: https://github.com/haskell/cabal/issues/6271 cabal "v2-build" ["all"] cabal "v2-test" ["all"] cabal "v2-bench" ["all"] diff --git a/cabal-testsuite/PackageTests/Regression/T5677/cabal.test.hs b/cabal-testsuite/PackageTests/Regression/T5677/cabal.test.hs index 133f492145..cf2a0b01cd 100644 --- a/cabal-testsuite/PackageTests/Regression/T5677/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Regression/T5677/cabal.test.hs @@ -2,5 +2,4 @@ import Test.Cabal.Prelude main = cabalTest $ do -- -Wmissing-export-lists is new in 8.4. skipUnless =<< ghcVersionIs (>= mkVersion [8,3]) - skipIf =<< isWindows -- TODO: https://github.com/haskell/cabal/issues/6271 cabal "v2-build" ["all"] -- GitLab