tests: Add stack-simple

This commit is contained in:
Rodney Lorrimar 2019-02-08 10:15:46 +10:00
parent bd603e0b51
commit cf8d73321c
No known key found for this signature in database
GPG Key ID: 2CCD588917A9A868
12 changed files with 265 additions and 0 deletions

View File

@ -14,6 +14,7 @@ in {
cabal-22 = callPackage ./cabal-22 { inherit (haskell) mkPkgSet; };
with-packages = callPackage ./with-packages { inherit (haskell) mkPkgSet; inherit util; };
builder-haddock = callPackage ./builder-haddock { inherit (haskell) mkPkgSet; };
stack-simple = callPackage ./stack-simple { inherit (haskell) mkStackPkgSet; };
# Run unit tests with: nix-instantiate --eval --strict -A unit
# An empty list means success.

3
test/stack-simple/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.stack-work/
stack-simple.cabal
*~

View File

@ -0,0 +1,32 @@
{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }:
({
flags = {};
package = {
specVersion = "0";
identifier = { name = "stack-simple"; version = "0.1.0.0"; };
license = "BSD-3-Clause";
copyright = "2019 Author name here";
maintainer = "example@example.com";
author = "Author name here";
homepage = "https://github.com/githubuser/stack-simple#readme";
url = "";
synopsis = "";
description = "Please see the README on GitHub at <https://github.com/githubuser/stack-simple#readme>";
buildType = "Simple";
};
components = {
"library" = { depends = [ (hsPkgs.base) ]; };
exes = {
"stack-simple-exe" = {
depends = [ (hsPkgs.base) (hsPkgs.stack-simple) ];
};
};
tests = {
"stack-simple-test" = {
depends = [ (hsPkgs.base) (hsPkgs.stack-simple) ];
};
};
};
} // rec { src = (pkgs.lib).mkDefault ../.; }) // {
cabal-generator = "hpack";
}

View File

@ -0,0 +1,2 @@
import Distribution.Simple
main = defaultMain

View File

@ -0,0 +1,6 @@
module Main where
import Lib
main :: IO ()
main = someFunc

View File

@ -0,0 +1,35 @@
{ stdenv, mkStackPkgSet }:
with stdenv.lib;
let
# ./stack-pkgs.nix and ./.stack.nix/stack-simple are
# generated by running hpack then stack-to-nix.
pkgSet = mkStackPkgSet {
stack-pkgs = import ./stack-pkgs.nix;
pkg-def-overlays = [];
modules = [];
};
packages = pkgSet.config.hsPkgs;
in
stdenv.mkDerivation {
name = "stack-simple-test";
buildCommand = ''
exe="${packages.stack-simple.components.exes.stack-simple-exe}/bin/stack-simple-exe"
printf "checking whether executable runs... " >& 2
$exe
touch $out
'';
meta.platforms = platforms.all;
passthru = {
# Attributes used for debugging with nix repl
inherit pkgSet packages;
};
}

View File

@ -0,0 +1,48 @@
name: stack-simple
version: 0.1.0.0
github: "githubuser/stack-simple"
license: BSD3
author: "Author name here"
maintainer: "example@example.com"
copyright: "2019 Author name here"
extra-source-files:
- README.md
- ChangeLog.md
# Metadata used when publishing your package
# synopsis: Short description of your package
# category: Web
# To avoid duplicated efforts in documentation and dealing with the
# complications of embedding Haddock markup inside cabal files, it is
# common to point users to the README.md file.
description: Please see the README on GitHub at <https://github.com/githubuser/stack-simple#readme>
dependencies:
- base >= 4.7 && < 5
library:
source-dirs: src
executables:
stack-simple-exe:
main: Main.hs
source-dirs: app
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- stack-simple
tests:
stack-simple-test:
main: Spec.hs
source-dirs: test
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- stack-simple

View File

@ -0,0 +1,6 @@
module Lib
( someFunc
) where
someFunc :: IO ()
someFunc = putStrLn "someFunc"

View File

@ -0,0 +1,5 @@
{
overlay = hackage:
{ packages = {} // { stack-simple = ./.stack.nix/stack-simple.nix; }; };
resolver = "lts-13.6";
}

View File

@ -0,0 +1,61 @@
cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.31.1.
--
-- see: https://github.com/sol/hpack
--
-- hash: 0df70dbda375296766e47fd09b809934bff5ee3edb5a16e93681d4cb37cef875
name: stack-simple
version: 0.1.0.0
description: Please see the README on GitHub at <https://github.com/githubuser/stack-simple#readme>
homepage: https://github.com/githubuser/stack-simple#readme
bug-reports: https://github.com/githubuser/stack-simple/issues
author: Author name here
maintainer: example@example.com
copyright: 2019 Author name here
license: BSD3
build-type: Simple
extra-source-files:
README.md
ChangeLog.md
source-repository head
type: git
location: https://github.com/githubuser/stack-simple
library
exposed-modules:
Lib
other-modules:
Paths_stack_simple
hs-source-dirs:
src
build-depends:
base >=4.7 && <5
default-language: Haskell2010
executable stack-simple-exe
main-is: Main.hs
other-modules:
Paths_stack_simple
hs-source-dirs:
app
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends:
base >=4.7 && <5
, stack-simple
default-language: Haskell2010
test-suite stack-simple-test
type: exitcode-stdio-1.0
main-is: Spec.hs
other-modules:
Paths_stack_simple
hs-source-dirs:
test
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends:
base >=4.7 && <5
, stack-simple
default-language: Haskell2010

View File

@ -0,0 +1,64 @@
# This file was automatically generated by 'stack init'
#
# Some commonly used options have been documented as comments in this file.
# For advanced use and comprehensive documentation of the format, please see:
# https://docs.haskellstack.org/en/stable/yaml_configuration/
# Resolver to choose a 'specific' stackage snapshot or a compiler version.
# A snapshot resolver dictates the compiler version and the set of packages
# to be used for project dependencies. For example:
#
# resolver: lts-3.5
# resolver: nightly-2015-09-21
# resolver: ghc-7.10.2
#
# The location of a snapshot can be provided as a file or url. Stack assumes
# a snapshot provided as a file might change, whereas a url resource does not.
#
# resolver: ./custom-snapshot.yaml
# resolver: https://example.com/snapshots/2018-01-01.yaml
resolver: lts-13.6
# User packages to be built.
# Various formats can be used as shown in the example below.
#
# packages:
# - some-directory
# - https://example.com/foo/bar/baz-0.0.2.tar.gz
# - location:
# git: https://github.com/commercialhaskell/stack.git
# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a
# subdirs:
# - auto-update
# - wai
packages:
- .
# Dependency packages to be pulled from upstream that are not in the resolver
# using the same syntax as the packages field.
# (e.g., acme-missiles-0.3)
# extra-deps: []
# Override default flag values for local packages and extra-deps
# flags: {}
# Extra package databases containing global packages
# extra-package-dbs: []
# Control whether we use the GHC we find on the path
# system-ghc: true
#
# Require a specific version of stack, using version ranges
# require-stack-version: -any # Default
# require-stack-version: ">=1.9"
#
# Override the architecture used by stack, especially useful on Windows
# arch: i386
# arch: x86_64
#
# Extra directories used by stack for building
# extra-include-dirs: [/path/to/dir]
# extra-lib-dirs: [/path/to/dir]
#
# Allow a newer minor version of GHC than the snapshot specifies
# compiler-check: newer-minor

View File

@ -0,0 +1,2 @@
main :: IO ()
main = putStrLn "Test suite not yet implemented"