Skip to content

Two integration tests failing because of type mismatch when compiling with current Obsidian Obelisk  #72

Open

Description

@hacklschorsch

I am not understanding what is happening here - I'll try and give as much related information as I can.

I am working on building tahoe-lafs-mobile for iOS.
Towards that, I am in the process of upgrading Obsidian Obelisk, the framework in use.
Current Obelisk employs GHC 8.10.7 (up from 8.6.x) and a few more aged software versions.

Currently, when building the software - which depends on haskell-magic-wormhole - I run into a problem with two integration test failures I do not understand enough to fix myself:

tests/Integration.hs:97:68: error:
    • Couldn't match type ‘HashMap.HashMap k0 v0’               
                     with ‘Data.Aeson.KeyMap.KeyMap Aeson.Value’
      Expected type: Aeson.Object
        Actual type: HashMap.HashMap k0 v0
    • In the first argument of ‘Aeson.Object’, namely ‘HashMap.empty’
      In the third argument of ‘Versions.versionExchange’, namely
        ‘(Aeson.Object HashMap.empty)’
      In a stmt of a 'do' block:
        Versions.versionExchange
          conn sessionKey (Aeson.Object HashMap.empty)

This same error is output twice, once on line 97 and once on line 98.
Looking at the relevant code, I find the only mention of the version test 10 lines up:

Versions.versionExchange conn sessionKey

I am trying to build with aeson version 2.0.3.0.
My suspicion is that their interface changed somehow; I don't find the change in their changelog nor could I find what this should now look like.

Please find the full build log (output of nix log /nix/store/dj88nh63dczy5s0i69prz459rmd93d7b-magic-wormhole-0.3.4.drv) here: magic-wormhole-test-failure.txt

Activity

  1. hacklschorsch commented on Apr 15, 2024

    @hacklschorsch
    CollaboratorAuthor

    Might be of interest: The checkPhase is overwritten using

    checkPhase=''
        set -x
        runHook preCheck
        ./Setup test --test-options '--pattern "$2 != \"Integration\""'
        runHook postCheck
    '';

    See the code.

    This should make it so that the integration tests aren't run at all?
    Yet the error message comes from the integration test suite.
    (Excluding integration tests like above doesn't exclude compilation I guess?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions