diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.out new file mode 100644 index 00000000000..6ab0552908f --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: An 'autogen-module' is neither on 'exposed-modules' or 'other-modules'. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.test.hs new file mode 100644 index 00000000000..c4993d305a0 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- All `autogen-modules` have to appear in `other-modules` or +-- `exposed-modules`. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/pkg.cabal new file mode 100644 index 00000000000..70a246f1e66 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/pkg.cabal @@ -0,0 +1,13 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +library + exposed-modules: Foo + default-language: Haskell2010 + autogen-modules: AutoGenMod diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.out new file mode 100644 index 00000000000..b68d84b92ca --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: On benchmark 'benchmark' an 'autogen-module' is not on 'other-modules' +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.test.hs new file mode 100644 index 00000000000..f5bae2b7719 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- All `autogen-modules` have to appear in `other-modules` or +-- `exposed-modules` (benchmark). +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/pkg.cabal new file mode 100644 index 00000000000..c0974d47744 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/pkg.cabal @@ -0,0 +1,14 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +benchmark benchmark + main-is: Main.hs + default-language: Haskell2010 + autogen-modules: AutoGenMod + type: exitcode-stdio-1.0 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.out new file mode 100644 index 00000000000..da988f6cbfd --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: On executable 'exe' an 'autogen-module' is not on 'other-modules' +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.test.hs new file mode 100644 index 00000000000..5ae464e34c8 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- All `autogen-modules` have to appear in `other-modules` or +-- `exposed-modules` (executables). +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/pkg.cabal new file mode 100644 index 00000000000..5f77032a190 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/pkg.cabal @@ -0,0 +1,13 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +executable exe + main-is: Main.hs + default-language: Haskell2010 + autogen-modules: AutoGenMod diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.out new file mode 100644 index 00000000000..4f41f16f1b8 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: On test suite 'test' an 'autogen-module' is not on 'other-modules' +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.test.hs new file mode 100644 index 00000000000..b1376d3e707 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- All `autogen-modules` have to appear in `other-modules` or +-- `exposed-modules` (testsuite). +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/pkg.cabal new file mode 100644 index 00000000000..2a3a7b8d9f6 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/pkg.cabal @@ -0,0 +1,14 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +test-suite test + main-is: Main.hs + default-language: Haskell2010 + autogen-modules: AutoGenMod + type: exitcode-stdio-1.0 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.out new file mode 100644 index 00000000000..ddf7b473d98 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: An include in 'autogen-includes' is neither in 'includes' or 'install-includes'. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.test.hs new file mode 100644 index 00000000000..4aa8ec52fa3 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- All `autogen-includes` should appear in `install-includes` or +-- `includes`. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/pkg.cabal new file mode 100644 index 00000000000..3883446e39d --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/pkg.cabal @@ -0,0 +1,13 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +library + exposed-modules: Foo + default-language: Haskell2010 + autogen-includes: AutoGenInc diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.out new file mode 100644 index 00000000000..9e561d01843 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: An include in 'autogen-includes' is not in 'includes'. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.test.hs new file mode 100644 index 00000000000..b77926c7b20 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- All `autogen-includes` should appear in `install-includes` or +-- `includes` (benchmark). +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/pkg.cabal new file mode 100644 index 00000000000..41994a39eaf --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/pkg.cabal @@ -0,0 +1,14 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +benchmark benchmark + main-is: Main.hs + autogen-includes: AutoGenInc + default-language: Haskell2010 + type: exitcode-stdio-1.0 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.out new file mode 100644 index 00000000000..9e561d01843 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: An include in 'autogen-includes' is not in 'includes'. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.test.hs new file mode 100644 index 00000000000..16bea7097fa --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- All `autogen-includes` should appear in `install-includes` or +-- `includes` (executable). +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/pkg.cabal new file mode 100644 index 00000000000..dee9ecac257 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/pkg.cabal @@ -0,0 +1,13 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +executable exe + main-is: Main.hs + autogen-includes: AutoGenInc + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.out new file mode 100644 index 00000000000..9e561d01843 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: An include in 'autogen-includes' is not in 'includes'. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.test.hs new file mode 100644 index 00000000000..4831b0d10ce --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- All `autogen-includes` should appear in `install-includes` or +-- `includes` (testsuite). +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/pkg.cabal new file mode 100644 index 00000000000..77c3dea90da --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/pkg.cabal @@ -0,0 +1,14 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +test-suite test + main-is: Main.hs + autogen-includes: AutoGenInc + default-language: Haskell2010 + type: exitcode-stdio-1.0 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/LICENSE b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/LICENSE new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/Setup.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/Setup.hs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.out new file mode 100644 index 00000000000..7601cdfe961 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The following errors will cause portability problems on other environments: +Warning: The package uses a C/C++/obj-C source file for the 'main-is' field. To use this feature you need to specify 'cabal-version: 1.18' or higher. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.test.hs new file mode 100644 index 00000000000..9ea2870a5a7 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- You need `cabal-version` ≥ 1.18 to use C/C++/obj-C source files +-- in `main-is`. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/pkg.cabal new file mode 100644 index 00000000000..67c7c77e304 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/pkg.cabal @@ -0,0 +1,16 @@ +cabal-version: 1.12 +build-type: Custom +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3 +license-file: LICENSE + +custom-setup + +executable exe + main-is: main.c + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/LICENSE b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/LICENSE new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/Setup.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/Setup.hs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.out new file mode 100644 index 00000000000..7601cdfe961 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The following errors will cause portability problems on other environments: +Warning: The package uses a C/C++/obj-C source file for the 'main-is' field. To use this feature you need to specify 'cabal-version: 1.18' or higher. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.test.hs new file mode 100644 index 00000000000..321d9f405c0 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.test.hs @@ -0,0 +1,6 @@ +import Test.Cabal.Prelude + +-- You need `cabal-version` ≥ 1.18 to use C/C++/obj-C source files +-- in `main-is`. (testsuite) +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/pkg.cabal new file mode 100644 index 00000000000..f630ad2f7ef --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/pkg.cabal @@ -0,0 +1,17 @@ +cabal-version: 1.12 +build-type: Custom +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3 +license-file: LICENSE + +custom-setup + +test-suite test + main-is: main.c + default-language: Haskell2010 + type: exitcode-stdio-1.0 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.out new file mode 100644 index 00000000000..2a5d655986f --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: The 'main-is' field must specify a '.hs' or '.lhs' file (even if it is generated by a preprocessor), or it may specify a C/C++/obj-C source file. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.test.hs new file mode 100644 index 00000000000..7b9587e9dd4 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- `main-is` has to be a `.hs` or `.lhs` file (or C* source file). +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/pkg.cabal new file mode 100644 index 00000000000..4dbb9433c55 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/pkg.cabal @@ -0,0 +1,12 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +executable exe + main-is: Main + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.out new file mode 100644 index 00000000000..75b0c3501b5 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: The 'main-is' field must specify a '.hs' or '.lhs' file (even if it is generated by a preprocessor). +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.test.hs new file mode 100644 index 00000000000..8a04366f0ff --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- `main-is` has to be a `.hs` or `.lhs` file (or C* source file) (benchmark). +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/pkg.cabal new file mode 100644 index 00000000000..64eb428d975 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/pkg.cabal @@ -0,0 +1,14 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +benchmark benchmark + Main-is: Main + type: exitcode-stdio-1.0 + default-language: Haskell2010 + diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.out new file mode 100644 index 00000000000..2a5d655986f --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: The 'main-is' field must specify a '.hs' or '.lhs' file (even if it is generated by a preprocessor), or it may specify a C/C++/obj-C source file. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.test.hs new file mode 100644 index 00000000000..9e146620e9c --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- `main-is` has to be a `.hs` or `.lhs` file (or C* source file) (testsuite). +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/pkg.cabal new file mode 100644 index 00000000000..417760a7b0b --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/pkg.cabal @@ -0,0 +1,14 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +test-suite test + Main-is: Main + type: exitcode-stdio-1.0 + default-language: Haskell2010 + diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.out new file mode 100644 index 00000000000..bcf3b0fbc66 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.out @@ -0,0 +1,6 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: No executables, libraries, tests, or benchmarks found. Nothing to do. +Warning: These warnings may cause trouble when distributing the package: +Warning: pkg.cabal:0:0: A package using 'cabal-version: 2.2' must use section syntax. See the Cabal user guide for details. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.test.hs new file mode 100644 index 00000000000..fa4a9ef2372 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- No exec, library, test or benchmark. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/pkg.cabal new file mode 100644 index 00000000000..1bdd2efb111 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/pkg.cabal @@ -0,0 +1,8 @@ +cabal-version: 2.2 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.out new file mode 100644 index 00000000000..d1b03551437 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.out @@ -0,0 +1,3 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: Duplicate sections: dup. The name of every library, executable, test suite, and benchmark section in the package must be unique. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.test.hs new file mode 100644 index 00000000000..975ee117919 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- Duplicate section names. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/pkg.cabal new file mode 100644 index 00000000000..58f13667fb3 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/pkg.cabal @@ -0,0 +1,17 @@ +cabal-version: 2.2 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +library dup + exposed-modules: Foo + default-language: Haskell2010 + +test-suite dup + main-is: Main.hs + type: exitcode-stdio-1.0 + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.out new file mode 100644 index 00000000000..62d7b27ba34 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: These warnings may cause trouble when distributing the package: +Warning: library does not expose any modules + diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.test.hs new file mode 100644 index 00000000000..603e9a04ed7 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- No exposed modules. +main = cabalTest $ + cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/pkg.cabal new file mode 100644 index 00000000000..3457c076a3a --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/pkg.cabal @@ -0,0 +1,11 @@ +cabal-version: 2.2 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +library + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.out new file mode 100644 index 00000000000..fbeefcb7140 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: Illegal internal library name pkg. Internal libraries cannot have the same name as the package. Maybe you wanted a non-internal library? If so, rewrite the section stanza from 'library: 'pkg' to 'library'. +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.test.hs new file mode 100644 index 00000000000..66ad00ddbd2 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- Internal library / package name clash. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/pkg.cabal new file mode 100644 index 00000000000..f56cc44a638 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/pkg.cabal @@ -0,0 +1,12 @@ +cabal-version: 2.2 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +library pkg + exposed-modules: Foo + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.out new file mode 100644 index 00000000000..33e622b6422 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.out @@ -0,0 +1,4 @@ +# cabal check +Warning: The package will not build sanely due to these errors: +Warning: No 'main-is' field found for executable exe +Warning: Hackage would reject this package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.test.hs new file mode 100644 index 00000000000..b7417753322 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- Missing `main-is`. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/pkg.cabal new file mode 100644 index 00000000000..970662c948b --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/pkg.cabal @@ -0,0 +1,11 @@ +cabal-version: 3.0 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +executable exe + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoName/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoName/cabal.out new file mode 100644 index 00000000000..ab65466745f --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoName/cabal.out @@ -0,0 +1,3 @@ +# cabal check +Warning: pkg.cabal:0:0: "name" field missing +Error: cabal: parse error diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoName/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoName/cabal.test.hs new file mode 100644 index 00000000000..f77c2e52762 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoName/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- No package name. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoName/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoName/pkg.cabal new file mode 100644 index 00000000000..5dfbc389647 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoName/pkg.cabal @@ -0,0 +1,11 @@ +cabal-version: 2.2 +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +library + exposed-modules: Foo + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoVersion/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoVersion/cabal.out new file mode 100644 index 00000000000..2605c4dada8 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoVersion/cabal.out @@ -0,0 +1,3 @@ +# cabal check +Warning: pkg.cabal:0:0: "version" field missing +Error: cabal: parse error diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoVersion/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoVersion/cabal.test.hs new file mode 100644 index 00000000000..7f83ead0ebe --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoVersion/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- No version. +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoVersion/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoVersion/pkg.cabal new file mode 100644 index 00000000000..ac0d432a647 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoVersion/pkg.cabal @@ -0,0 +1,11 @@ +cabal-version: 2.2 +name: pkg +synopsis: synopsis +description: description +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +library + exposed-modules: Foo + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/OkDupNamesExe/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/OkDupNamesExe/cabal.out new file mode 100644 index 00000000000..37aa169b416 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/OkDupNamesExe/cabal.out @@ -0,0 +1,2 @@ +# cabal check +No errors or warnings could be found in the package. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/OkDupNamesExe/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/OkDupNamesExe/cabal.test.hs new file mode 100644 index 00000000000..cff44832998 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/OkDupNamesExe/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- It is OK for executables to have the same name of the external library. +main = cabalTest $ + cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/OkDupNamesExe/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/OkDupNamesExe/pkg.cabal new file mode 100644 index 00000000000..5ed64fee6e1 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/OkDupNamesExe/pkg.cabal @@ -0,0 +1,16 @@ +cabal-version: 2.2 +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3.0-or-later + +library + exposed-modules: Foo + default-language: Haskell2010 + +executable pkg + main-is: Main.hs + default-language: Haskell2010 diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/LICENSE b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/LICENSE new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/Setup.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/Setup.hs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.out new file mode 100644 index 00000000000..7abcdcbd17a --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.out @@ -0,0 +1,3 @@ +# cabal check +Warning: These warnings may cause trouble when distributing the package: +Warning: pkg.cabal:17:3: The field "signatures" is available only since the Cabal specification version 2.0. This field will be ignored. diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.test.hs new file mode 100644 index 00000000000..2ef34c34581 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.test.hs @@ -0,0 +1,5 @@ +import Test.Cabal.Prelude + +-- `signatures` field used with cabal-version < 2.0 +main = cabalTest $ + fails $ cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/pkg.cabal b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/pkg.cabal new file mode 100644 index 00000000000..1babc29c4e0 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/pkg.cabal @@ -0,0 +1,17 @@ +cabal-version: 1.24 +build-type: Custom +name: pkg +synopsis: synopsis +description: description +version: 0 +category: example +maintainer: none@example.com +license: GPL-3 +license-file: LICENSE + +custom-setup + +library + exposed-modules: Foo + default-language: Haskell2010 + signatures: Str