From ec81f29594c0dfba6caef7524e3a2c3e1b6ea79c Mon Sep 17 00:00:00 2001
From: "Edward Z. Yang" <ezyang@cs.stanford.edu>
Date: Tue, 26 Aug 2014 17:31:23 +0100
Subject: [PATCH] Failing test-case for sandbox add-source regression.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
---
 cabal-install/tests/PackageTests.hs           |  2 ++
 .../PackageTests/MultipleSource/Check.hs      | 25 +++++++++++++++++++
 .../PackageTests/MultipleSource/p/LICENSE     |  0
 .../PackageTests/MultipleSource/p/Setup.hs    |  2 ++
 .../PackageTests/MultipleSource/p/p.cabal     | 11 ++++++++
 .../PackageTests/MultipleSource/q/LICENSE     |  0
 .../PackageTests/MultipleSource/q/Setup.hs    |  2 ++
 .../PackageTests/MultipleSource/q/q.cabal     | 11 ++++++++
 8 files changed, 53 insertions(+)
 create mode 100644 cabal-install/tests/PackageTests/MultipleSource/Check.hs
 create mode 100644 cabal-install/tests/PackageTests/MultipleSource/p/LICENSE
 create mode 100644 cabal-install/tests/PackageTests/MultipleSource/p/Setup.hs
 create mode 100644 cabal-install/tests/PackageTests/MultipleSource/p/p.cabal
 create mode 100644 cabal-install/tests/PackageTests/MultipleSource/q/LICENSE
 create mode 100644 cabal-install/tests/PackageTests/MultipleSource/q/Setup.hs
 create mode 100644 cabal-install/tests/PackageTests/MultipleSource/q/q.cabal

diff --git a/cabal-install/tests/PackageTests.hs b/cabal-install/tests/PackageTests.hs
index fabc213fa4..24f1bb454b 100644
--- a/cabal-install/tests/PackageTests.hs
+++ b/cabal-install/tests/PackageTests.hs
@@ -26,6 +26,7 @@ import Test.Framework (Test, defaultMain, testGroup)
 -- Modules containing the tests.
 import qualified PackageTests.Exec.Check
 import qualified PackageTests.Freeze.Check
+import qualified PackageTests.MultipleSource.Check
 
 -- List of tests to run. Each test will be called with the path to the
 -- cabal binary to use.
@@ -33,6 +34,7 @@ tests :: FilePath -> FilePath -> [Test]
 tests cabalPath ghcPkgPath =
     [ testGroup "Freeze" $ PackageTests.Freeze.Check.tests cabalPath
     , testGroup "Exec"   $ PackageTests.Exec.Check.tests cabalPath ghcPkgPath
+    , testGroup "MultipleSource" $ PackageTests.MultipleSource.Check.tests cabalPath
     ]
 
 cabalProgram :: Program
diff --git a/cabal-install/tests/PackageTests/MultipleSource/Check.hs b/cabal-install/tests/PackageTests/MultipleSource/Check.hs
new file mode 100644
index 0000000000..0d76d38665
--- /dev/null
+++ b/cabal-install/tests/PackageTests/MultipleSource/Check.hs
@@ -0,0 +1,25 @@
+module PackageTests.MultipleSource.Check
+       ( tests
+       ) where
+
+
+import PackageTests.PackageTester
+
+import Test.Framework                 as TF (Test)
+import Test.Framework.Providers.HUnit (testCase)
+
+import System.FilePath ((</>))
+
+dir :: FilePath
+dir = "PackageTests" </> "MultipleSource"
+
+tests :: FilePath -> [TF.Test]
+tests cabalPath =
+    [ testCase "finds second source of multiple source" $ do
+          -- can fail if there is no pre-existing sandbox
+          _ <- cabal_sandbox dir ["delete"] cabalPath
+          assertSandboxSucceeded =<< cabal_sandbox dir ["init"] cabalPath
+          assertSandboxSucceeded =<< cabal_sandbox dir ["add-source", "p"] cabalPath
+          assertSandboxSucceeded =<< cabal_sandbox dir ["add-source", "q"] cabalPath
+          assertInstallSucceeded =<< cabal_install dir ["q"] cabalPath
+    ]
diff --git a/cabal-install/tests/PackageTests/MultipleSource/p/LICENSE b/cabal-install/tests/PackageTests/MultipleSource/p/LICENSE
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cabal-install/tests/PackageTests/MultipleSource/p/Setup.hs b/cabal-install/tests/PackageTests/MultipleSource/p/Setup.hs
new file mode 100644
index 0000000000..9a994af677
--- /dev/null
+++ b/cabal-install/tests/PackageTests/MultipleSource/p/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/cabal-install/tests/PackageTests/MultipleSource/p/p.cabal b/cabal-install/tests/PackageTests/MultipleSource/p/p.cabal
new file mode 100644
index 0000000000..8fe1d6c6dd
--- /dev/null
+++ b/cabal-install/tests/PackageTests/MultipleSource/p/p.cabal
@@ -0,0 +1,11 @@
+name:                p
+version:             0.1.0.0
+license-file:        LICENSE
+author:              Edward Z. Yang
+maintainer:          ezyang@cs.stanford.edu
+build-type:          Simple
+cabal-version:       >=1.10
+
+library
+  build-depends:       base
+  default-language:    Haskell2010
diff --git a/cabal-install/tests/PackageTests/MultipleSource/q/LICENSE b/cabal-install/tests/PackageTests/MultipleSource/q/LICENSE
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/cabal-install/tests/PackageTests/MultipleSource/q/Setup.hs b/cabal-install/tests/PackageTests/MultipleSource/q/Setup.hs
new file mode 100644
index 0000000000..9a994af677
--- /dev/null
+++ b/cabal-install/tests/PackageTests/MultipleSource/q/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/cabal-install/tests/PackageTests/MultipleSource/q/q.cabal b/cabal-install/tests/PackageTests/MultipleSource/q/q.cabal
new file mode 100644
index 0000000000..9fb08608ab
--- /dev/null
+++ b/cabal-install/tests/PackageTests/MultipleSource/q/q.cabal
@@ -0,0 +1,11 @@
+name:                q
+version:             0.1.0.0
+license-file:        LICENSE
+author:              Edward Z. Yang
+maintainer:          ezyang@cs.stanford.edu
+build-type:          Simple
+cabal-version:       >=1.10
+
+library
+  build-depends:       base
+  default-language:    Haskell2010
-- 
GitLab