hspec / hspec-wai

Helpers to test WAI applications with Hspec

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Test suite failure on GHC 7.6.3

snoyberg opened this issue · comments

Discovered via Stackage:

Unpacking to hspec-wai-0.3.0.1/
Resolving dependencies...
Configuring hspec-wai-0.3.0.1...
Building hspec-wai-0.3.0.1...
Preprocessing library hspec-wai-0.3.0.1...
[1 of 5] Compiling Test.Hspec.Wai.Util ( src/Test/Hspec/Wai/Util.hs, dist/build/Test/Hspec/Wai/Util.o )
[2 of 5] Compiling Test.Hspec.Wai.Matcher ( src/Test/Hspec/Wai/Matcher.hs, dist/build/Test/Hspec/Wai/Matcher.o )
[3 of 5] Compiling Test.Hspec.Wai.Internal ( src/Test/Hspec/Wai/Internal.hs, dist/build/Test/Hspec/Wai/Internal.o )
[4 of 5] Compiling Test.Hspec.Wai   ( src/Test/Hspec/Wai.hs, dist/build/Test/Hspec/Wai.o )
[5 of 5] Compiling Test.Hspec.Wai.JSON ( src/Test/Hspec/Wai/JSON.hs, dist/build/Test/Hspec/Wai/JSON.o )
In-place registering hspec-wai-0.3.0.1...
Preprocessing test suite 'spec' for hspec-wai-0.3.0.1...
[1 of 1] Compiling Main             ( test/Spec.hs, dist/build/spec/spec-tmp/Main.o )
Linking dist/build/spec/spec ...
Preprocessing test suite 'doctests' for hspec-wai-0.3.0.1...
[1 of 1] Compiling Main             ( test/doctests.hs, dist/build/doctests/doctests-tmp/Main.o )
Linking dist/build/doctests/doctests ...
Preprocessing test suite 'README' for hspec-wai-0.3.0.1...
[1 of 1] Compiling Main             ( README.lhs, dist/build/README/README-tmp/Main.o )
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package array-0.4.0.1 ... linking ... done.
Loading package deepseq-1.3.0.1 ... linking ... done.
Loading package bytestring-0.10.0.2 ... linking ... done.
Loading package containers-0.5.0.0 ... linking ... done.
Loading package text-1.1.1.3 ... linking ... done.
Loading package hashable-1.2.2.0 ... linking ... done.
Loading package scientific-0.3.3.0 ... linking ... done.
Loading package attoparsec-0.12.1.1 ... linking ... done.
Loading package dlist-0.7.1 ... linking ... done.
Loading package transformers-0.3.0.0 ... linking ... done.
Loading package mtl-2.1.3.1 ... linking ... done.
Loading package old-locale-1.0.0.5 ... linking ... done.
Loading package syb-0.4.2 ... linking ... done.
Loading package pretty-1.1.1.0 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package time-1.4.0.1 ... linking ... done.
Loading package unordered-containers-0.2.5.0 ... linking ... done.
Loading package primitive-0.5.3.0 ... linking ... done.
Loading package vector-0.10.11.0 ... linking ... done.
Loading package aeson-0.7.0.6 ... linking ... done.
Loading package filepath-1.3.0.1 ... linking ... done.
Loading package unix-2.6.0.1 ... linking ... done.
Loading package directory-1.2.0.1 ... linking ... done.
Loading package old-time-1.1.0.1 ... linking ... done.
Loading package polyparse-1.9 ... linking ... done.
Loading package cpphs-1.18.5 ... linking ... done.
Loading package haskell-src-exts-1.15.0.1 ... linking ... done.
Loading package th-lift-0.6.1 ... linking ... done.
Loading package th-orphans-0.8.1 ... linking ... done.
Loading package haskell-src-meta-0.6.0.7 ... linking ... done.
Loading package parsec-3.1.5 ... linking ... done.
Loading package aeson-qq-0.7.2 ... linking ... done.
Loading package case-insensitive-1.2.0.0 ... linking ... done.
Loading package HUnit-1.2.5.2 ... linking ... done.
Loading package random-1.0.1.3 ... linking ... done.
Loading package tf-random-0.5 ... linking ... done.
Loading package QuickCheck-2.7.6 ... linking ... done.
Loading package ansi-terminal-0.6.1.1 ... linking ... done.
Loading package stm-2.4.3 ... linking ... done.
Loading package async-2.0.1.5 ... linking ... done.
Loading package hspec-expectations-0.6.1 ... linking ... done.
Loading package quickcheck-io-0.1.1 ... linking ... done.
Loading package setenv-0.1.1.1 ... linking ... done.
Loading package hspec2-0.4.1 ... linking ... done.
Loading package blaze-builder-0.3.3.2 ... linking ... done.
Loading package http-types-0.8.5 ... linking ... done.
Loading package network-2.5.0.0 ... linking ... done.
Loading package vault-0.3.0.3 ... linking ... done.
Loading package wai-3.0.1.1 ... linking ... done.
Loading package base64-bytestring-1.0.0.1 ... linking ... done.
Loading package data-default-class-0.0.1 ... linking ... done.
Loading package auto-update-0.1.1.2 ... linking ... done.
Loading package fast-logger-2.2.0 ... linking ... done.
Loading package base-unicode-symbols-0.2.2.4 ... linking ... done.
Loading package transformers-base-0.4.3 ... linking ... done.
Loading package monad-control-0.3.3.0 ... linking ... done.
Loading package lifted-base-0.2.2.1 ... linking ... done.
Loading package exceptions-0.6.1 ... linking ... done.
Loading package mmorph-1.0.4 ... linking ... done.
Loading package resourcet-1.1.2.3 ... linking ... done.
Loading package process-1.1.0.2 ... linking ... done.
Loading package zlib-0.5.4.1 ... linking ... done.
Loading package streaming-commons-0.1.4.2 ... linking ... done.
Loading package stringsearch-0.3.6.5 ... linking ... done.
Loading package nats-0.2 ... linking ... done.
Loading package semigroups-0.15.2 ... linking ... done.
Loading package void-0.6.1 ... linking ... done.
Loading package byteorder-1.0.4 ... linking ... done.
Loading package easy-file-0.2.0 ... linking ... done.
Loading package binary-0.5.1.1 ... linking ... done.
Loading package unix-time-0.3.3 ... linking ... done.
Loading package wai-logger-2.2.3 ... linking ... done.
Loading package word8-0.1.1 ... linking ... done.
Loading package wai-extra-3.0.2.1 ... linking ... done.
Loading package hspec-wai-0.3.0.1 ... linking ... done.
Loading package data-default-instances-base-0.0.1 ... linking ... done.
Loading package data-default-instances-containers-0.0.1 ... linking ... done.
Loading package data-default-instances-dlist-0.0.1 ... linking ... done.
Loading package data-default-instances-old-locale-0.0.1 ... linking ... done.
Loading package data-default-0.5.3 ... linking ... done.
Loading package regex-base-0.93.2 ... linking ... done.
Loading package regex-posix-0.95.2 ... linking ... done.
Loading package regex-compat-0.95.1 ... linking ... done.
Loading package http-date-0.0.4 ... linking ... done.
Loading package simple-sendfile-0.2.17 ... linking ... done.
Loading package unix-compat-0.4.1.3 ... linking ... done.
Loading package warp-3.0.1.1 ... linking ... done.
Loading package scotty-0.9.0 ... linking ... done.
Loading package markdown-unlit-0.2.0.1 ... linking ... done.
Linking dist/build/README/README ...
Building hspec-wai-0.3.0.1...
Preprocessing library hspec-wai-0.3.0.1...
In-place registering hspec-wai-0.3.0.1...
Preprocessing test suite 'spec' for hspec-wai-0.3.0.1...
Preprocessing test suite 'doctests' for hspec-wai-0.3.0.1...
Preprocessing test suite 'README' for hspec-wai-0.3.0.1...
Running 3 test suites...
Test suite spec: RUNNING...


Finished in 0.0002 seconds
0 examples, 0 failures
Test suite spec: PASS
Test suite logged to: dist/test/hspec-wai-0.3.0.1-spec.log
Test suite doctests: RUNNING...

src/Test/Hspec/Wai/Internal.hs:28:42:
    No instance for (MonadIO
                       (transformers-0.3.0.0:Control.Monad.Trans.Reader.ReaderT
                          Application
                          (transformers-0.3.0.0:Control.Monad.Trans.State.Lazy.StateT
                             Network.Wai.Test.ClientState IO)))
      arising from the 'deriving' clause of a data type declaration
    Possible fix:
      add an instance declaration for
      (MonadIO
         (transformers-0.3.0.0:Control.Monad.Trans.Reader.ReaderT
            Application
            (transformers-0.3.0.0:Control.Monad.Trans.State.Lazy.StateT
               Network.Wai.Test.ClientState IO)))
      or use a standalone 'deriving instance' declaration,
           so you can specify the instance context yourself
    When deriving the instance for (MonadIO WaiSession)
Test suite doctests: FAIL
Test suite logged to: dist/test/hspec-wai-0.3.0.1-doctests.log
Test suite README: RUNNING...

GET /
  - responds with 200
  - responds with 'hello'
  - responds with 200 / 'hello'
  - has Content-Type: text/plain

GET /some-json
  - responds with some JSON

Finished in 0.0016 seconds
5 examples, 0 failures
Test suite README: PASS
Test suite logged to: dist/test/hspec-wai-0.3.0.1-README.log
2 of 3 test suites (2 of 3 test cases) passed.

From the build output, hspec-wai is build against transformers-0.3.0.0. I assume that a newer version of transformers is also installed and doctest will pick the latest version (as GHCi would do). That way we end up with two versions of transformers which leads to the failure.

I'll fix this by running doctest on travis only.

On Hackage as hspec-wai-0.3.0.2.