Skip to content

Instantly share code, notes, and snippets.

@wz1000
Created July 23, 2019 10:46
Show Gist options
  • Select an option

  • Save wz1000/9e2b6595690a89ab189e59d40ba572f8 to your computer and use it in GitHub Desktop.

Select an option

Save wz1000/9e2b6595690a89ab189e59d40ba572f8 to your computer and use it in GitHub Desktop.

Revisions

  1. wz1000 created this gist Jul 23, 2019.
    227 changes: 227 additions & 0 deletions functestnew
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,227 @@
    Command
    commands
    are prefixed
    get de-prefixed
    Completion
    completions
    works
    does not pull in unnecessary modules until needed
    completes imports
    completes qualified imports
    completes language extensions
    completes pragmas
    completes pragmas no close
    completes options pragma
    completes ghc options pragma values
    completes with no prefix
    strips compiler generated stuff from completions
    contexts
    only provides type suggestions
    only provides type suggestions
    have implicit foralls on basic polymorphic types
    have implicit foralls with multiple type variables
    snippets
    work for argumentless constructors
    work for polymorphic types
    work for complex types
    work for infix functions
    work for infix functions in backticks
    work for qualified infix functions
    work for qualified infix functions in backticks
    respects lsp configuration
    respects client capabilities
    Deferred
    deferred responses
    do not affect hover requests
    instantly respond to failed modules with no cache
    respond to untypecheckable modules with parsed module cache FAILED [1]
    returns hints as diagnostics
    multi-server setup
    doesn't have clashing commands on two servers
    multiple main modules
    Can load one file at a time, when more than one Main module exists
    Definition
    definitions
    goto's symbols
    goto's imported modules
    goto's exported modules
    goto's imported modules that are loaded
    goto's imported modules that are loaded, and then closed
    Diagnostics
    diagnostics providers
    diagnostics triggers
    runs diagnostics on save
    typed hole errors
    is deferred
    Warnings are warnings
    Overrides -Werror
    only diagnostics on save
    Respects diagnosticsOnChange setting
    Format
    format document
    works
    works with custom tab size
    format range
    works
    works with custom tab size
    formatting provider
    respects none
    can change on the fly
    brittany
    formats a document with LF endings
    formats a document with CRLF endings
    formats a range with LF endings
    formats a range with CRLF endings
    FunctionalBadProject
    behaviour on malformed projects
    deals with cabal file with unsatisfiable dependency FAILED [2]
    FunctionalCodeActions
    code actions
    hlint suggestions
    provides 3.8 code actions
    falls back to pre 3.8 code actions
    runs diagnostics on save
    rename suggestions
    works
    doesn't give both documentChanges and changes
    import suggestions
    formats with brittany
    Execute HsImport with formatter brittany
    works with 3.8 code action kinds
    formats
    import-list formats
    multiple import-list formats
    respects format config, multiple import-list
    respects format config
    import-list respects format config
    complex import-list
    complex import-list respects format config
    formats with floskell
    Execute HsImport with formatter floskell
    works with 3.8 code action kinds
    formats
    import-list formats
    multiple import-list formats
    respects format config, multiple import-list
    respects format config
    import-list respects format config
    complex import-list
    complex import-list respects format config
    add package suggestions
    adds to .cabal files
    adds to hpack package.yaml files
    redundant import code actions
    remove solitary redundant imports
    doesn't touch other imports
    typed hole code actions
    works
    shows more suggestions
    missing top level signature code actions
    Adds top level signature
    missing pragma warning code actions
    Adds TypeSynonymInstances pragma
    unused term code actions
    Prefixes with '_' FAILED [3]
    respect 'only' parameter
    FunctionalLiquid
    liquid haskell diagnostics
    runs diagnostics on save, no liquid
    runs diagnostics on save, with liquid haskell FAILED [4]
    HaRe
    HaRe
    code actions
    lift one level
    works
    lift to top level
    works
    delete definition
    works
    duplicate definition
    works
    demote definition
    works
    casesplit argument
    works FAILED [5]
    Highlight
    highlight
    works
    Hover
    hover
    works
    Progress
    window/progress
    sends indefinite progress notifications
    sends indefinite progress notifications with liquid FAILED [6]
    References
    references
    works with definitions
    Rename
    rename
    works
    Symbols
    document symbols
    3.10 hierarchical document symbols
    provides nested data types and constructors
    provides nested where functions
    provides pattern synonyms
    pre 3.10 symbol information
    provides nested data types and constructors
    provides nested where functions
    TypeDefinition
    type definitions
    finds local definition of record variable
    finds local definition of newtype variable
    finds local definition of sum type variable
    finds local definition of sum type contructor
    can not find non-local definition of type def
    find local definition of type def
    find type-definition of type def in component
    find definition of parameterized data type

    Failures:

    test/functional/DeferredSpec.hs:99:5:
    1) Deferred, deferred responses, respond to untypecheckable modules with parsed module cache
    uncaught exception: SessionException
    Received an unexpected message from the server:
    Was parsing: Pattern match failure in do expression at test/functional/DeferredSpec.hs:102:9-22
    Last message received: RspDocumentSymbols (ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 1, _result = Just (DSDocumentSymbols (List [])), _error = Nothing})

    To rerun use: --match "/Deferred/deferred responses/respond to untypecheckable modules with parsed module cache/"

    test/functional/FunctionalBadProjectSpec.hs:19:5:
    2) FunctionalBadProject, behaviour on malformed projects, deals with cabal file with unsatisfiable dependency
    uncaught exception: SessionException
    Timed out waiting to receive a message from the server.

    To rerun use: --match "/FunctionalBadProject/behaviour on malformed projects/deals with cabal file with unsatisfiable dependency/"

    test/functional/FunctionalCodeActionsSpec.hs:494:18:
    3) FunctionalCodeActions, code actions, unused term code actions, Prefixes with '_'
    expected: "{-# OPTIONS_GHC -Wall #-}\nmodule UnusedTerm () where\n_imUnused :: Int -> Int\n_imUnused 1 = 1\n_imUnused 2 = 2\n_imUnused _ = 3\n"
    but got: "\nmodule UnusedTerm () where\n_imUnused :: Int -> Int\n_imUnused 1 = 1\n_imUnused 2 = 2\n_imUnused _ = 3\n"

    To rerun use: --match "/FunctionalCodeActions/code actions/unused term code actions/Prefixes with '_'/"

    test/functional/FunctionalLiquidSpec.hs:93:18:
    4) FunctionalLiquid, liquid haskell diagnostics, runs diagnostics on save, with liquid haskell
    expected: 0
    but got: 2

    To rerun use: --match "/FunctionalLiquid/liquid haskell diagnostics/runs diagnostics on save, with liquid haskell/"

    test/functional/HaReSpec.hs:52:36:
    5) HaRe.HaRe, code actions, casesplit argument, works
    uncaught exception: SessionException
    Timed out waiting to receive a message from the server.

    To rerun use: --match "/HaRe/HaRe/code actions/casesplit argument/works/"

    test/functional/ProgressSpec.hs:63:3:
    6) Progress.window/progress sends indefinite progress notifications with liquid
    uncaught exception: SessionException
    Received an unexpected message from the server:
    Was parsing: Publish diagnostics notification
    Last message received: NotProgressStart (NotificationMessage {_jsonrpc = "2.0", _method = WindowProgressStart, _params = ProgressStartParams {_id = "0", _title = "Initialising Cradle", _cancellable = Just False, _message = Nothing, _percentage = Just 0.0}})

    To rerun use: --match "/Progress/window/progress/sends indefinite progress notifications with liquid/"