mirror of
https://github.com/ilyakooo0/haskell.nix.git
synced 2024-09-11 06:55:40 +03:00
tests: Add stack-simple
This commit is contained in:
parent
bd603e0b51
commit
cf8d73321c
@ -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
3
test/stack-simple/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
.stack-work/
|
||||
stack-simple.cabal
|
||||
*~
|
32
test/stack-simple/.stack.nix/stack-simple.nix
Normal file
32
test/stack-simple/.stack.nix/stack-simple.nix
Normal 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";
|
||||
}
|
2
test/stack-simple/Setup.hs
Normal file
2
test/stack-simple/Setup.hs
Normal file
@ -0,0 +1,2 @@
|
||||
import Distribution.Simple
|
||||
main = defaultMain
|
6
test/stack-simple/app/Main.hs
Normal file
6
test/stack-simple/app/Main.hs
Normal file
@ -0,0 +1,6 @@
|
||||
module Main where
|
||||
|
||||
import Lib
|
||||
|
||||
main :: IO ()
|
||||
main = someFunc
|
35
test/stack-simple/default.nix
Normal file
35
test/stack-simple/default.nix
Normal 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;
|
||||
};
|
||||
}
|
48
test/stack-simple/package.yaml
Normal file
48
test/stack-simple/package.yaml
Normal 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
|
6
test/stack-simple/src/Lib.hs
Normal file
6
test/stack-simple/src/Lib.hs
Normal file
@ -0,0 +1,6 @@
|
||||
module Lib
|
||||
( someFunc
|
||||
) where
|
||||
|
||||
someFunc :: IO ()
|
||||
someFunc = putStrLn "someFunc"
|
5
test/stack-simple/stack-pkgs.nix
Normal file
5
test/stack-simple/stack-pkgs.nix
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
overlay = hackage:
|
||||
{ packages = {} // { stack-simple = ./.stack.nix/stack-simple.nix; }; };
|
||||
resolver = "lts-13.6";
|
||||
}
|
61
test/stack-simple/stack-simple.cabal
Normal file
61
test/stack-simple/stack-simple.cabal
Normal 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
|
64
test/stack-simple/stack.yaml
Normal file
64
test/stack-simple/stack.yaml
Normal 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
|
2
test/stack-simple/test/Spec.hs
Normal file
2
test/stack-simple/test/Spec.hs
Normal file
@ -0,0 +1,2 @@
|
||||
main :: IO ()
|
||||
main = putStrLn "Test suite not yet implemented"
|
Loading…
Reference in New Issue
Block a user