Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[skip circleci] Enable func-test suite for windows #2296

Merged
merged 3 commits into from
Nov 2, 2021

Conversation

jneira
Copy link
Member

@jneira jneira commented Oct 23, 2021

No description provided.

Copy link
Collaborator

@pepeiborra pepeiborra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved with a heavy heart

@jneira
Copy link
Member Author

jneira commented Oct 24, 2021

RIP

@jneira
Copy link
Member Author

jneira commented Oct 24, 2021

I cant do much locally cause all tests fail in my local windows machine due to session timeouts. But they work (but func-test for ghc-9) in windows ci ~
I've just tried func-tests with ghc 8.10.7 and worked, trying with 9.0.1
🤷

@jneira
Copy link
Member Author

jneira commented Oct 25, 2021

Setting -j2 for the hls executable did the trick in my repo: https://github.com/jneira/haskell-language-server/runs/3993462232?check_suite_focus=true

It matches the option for the ghcide executable in its test suite:

shakeProfiling <- getEnv "SHAKE_PROFILING"
let cmd = unwords $
[ghcideExe, "--lsp", "--test", "--verbose", "-j2", "--cwd", startDir
] ++ ["--shake-profiling=" <> dir | Just dir <- [shakeProfiling]
] ++ extraOptions

Pro: maybe it make tests more stable overall (including other os's)
Contra: maybe we are masking concurrency related issues which could be fixed (see #2303)

@jneira
Copy link
Member Author

jneira commented Oct 25, 2021

ci is green here too, do you think the -j2 trick should be done @pepeiborra?

@jneira jneira requested a review from pepeiborra October 25, 2021 09:42
@jneira jneira added the merge me Label to trigger pull request merge label Oct 25, 2021
@jneira
Copy link
Member Author

jneira commented Oct 25, 2021

Tests are stuck here although they succeded in my repo 🤦

@jneira
Copy link
Member Author

jneira commented Oct 26, 2021

The same workflow configuration, with the same cache key and the same github build info succeded in my repo: https://github.com/jneira/haskell-language-server/runs/3999519889?check_suite_focus=true

Locally it succeded at first but it got stuck at hie-bios tests in a posterior run so i am gonna try ignore only that one.

@jneira
Copy link
Member Author

jneira commented Oct 26, 2021

Where the test suite get stuck:

tests log
 Test suite func-test: RUNNING...
haskell-language-server
  commands
    are prefixed:                                                          OK (26.93s)
    get de-prefixed:                                                       OK (3.68s)
  completions
    works:                                                                 OK (2.56s)
    itemCompletion/resolve works:                                          IGNORED
      no support for itemCompletion/resolve requests
    completes imports:                                                     OK (2.11s)
    completes qualified imports:                                           OK (2.02s)
    completes with no prefix:                                              OK (2.95s)
    strips compiler generated stuff from completions:                      OK (3.51s)
    have implicit foralls on basic polymorphic types:                      OK (2.51s)
    have implicit foralls with multiple type variables:                    OK (2.49s)
    maxCompletions:                                                        OK (2.54s)
    import function completions:                                           OK (2.00s)
    import second function completion:                                     OK (2.10s)
    contexts
      only provides type suggestions:                                      OK (2.18s)
      only provides value suggestions:                                     OK (2.47s)
      completes qualified type suggestions:                                OK (2.24s)
    snippets
      work for argumentless constructors:                                  OK (2.42s)
      work for polymorphic types:                                          OK (2.52s)
      work for complex types:                                              OK (2.44s)
      work for infix functions:                                            OK (2.47s)
      work for infix functions in backticks:                               OK (2.47s)
      work for qualified infix functions:                                  OK (2.51s)
      work for qualified infix functions in backticks:                     OK (2.34s)
      respects lsp configuration:                                          OK (2.49s)
      respects client capabilities:                                        OK (2.47s)
  plugin config
    config parsing
      empty object as user configuration should not send error logMessage: OK (0.59s)
  deferred responses
    instantly respond to failed modules with no cache:                     OK (0.78s)
    multiple main modules
      Can load one file at a time, when more than one Main module exists:  IGNORED
        Broken: Unexpected ConduitParser.empty
  definitions
    goto's symbols:                                                        IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/References.hs
    goto's imported modules:                                               IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/Bar.hs
    goto's exported modules:                                               IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/Bar.hs
    goto's imported modules that are loaded:                               IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/Bar.hs
    goto's imported modules that are loaded, and then closed:              IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/Bar.hs
  diagnostics providers
    Diagnostics work
      example plugin produces diagnostics:                                 OK (0.51s)
    only diagnostics on save
      Respects diagnosticsOnChange setting:                                IGNORED
        diagnosticsOnChange parameter is not supported right now
    Warnings are warnings
      Overrides -Werror:                                                   OK (4.33s)
  format document
warning: LF will be replaced by CRLF in C:\Users\runneradmin\AppData\Local\Temp\For9F2.actual.
The file will have its original line endings in your working directory
    works:                                                                 OK (0.46s)
warning: LF will be replaced by CRLF in C:\Users\runneradmin\AppData\Local\Temp\ForB7A.actual.
The file will have its original line endings in your working directory
    works with custom tab size:                                            OK (0.39s)
    format range
warning: LF will be replaced by CRLF in C:\Users\runneradmin\AppData\Local\Temp\ForCE2.actual.
The file will have its original line endings in your working directory
      works:                                                               OK (0.36s)
warning: LF will be replaced by CRLF in C:\Users\runneradmin\AppData\Local\Temp\ForE3B.actual.
The file will have its original line endings in your working directory
      works with custom tab size:                                          OK (0.35s)
    formatting provider
      respects none:                                                       OK (0.19s)
      can change on the fly:                                               OK (0.70s)
      supports both new and old configuration sections:                    OK (0.36s)
  behaviour on malformed projects
    no test executed:                                                      OK
  code actions
    import suggestions
      works with 3.8 code action kinds:                                    OK (2.80s)
    add package suggestions
      adds to .cabal files:                                                IGNORED
        no support for adding dependent packages via code action
      adds to hpack package.yaml files:                                    IGNORED
        no support for adding dependent packages via code action
    redundant import code actions
      remove solitary redundant imports:                                   OK (1.97s)
      doesn't touch other imports:                                         OK (2.13s)
    rename suggestions
      works:                                                               OK (2.78s)
      doesn't give both documentChanges and changes:                       OK (2.97s)
    missing top level signature code actions
      Adds top level signature:                                            OK (2.60s)
    typed hole code actions
      works:                                                               OK (2.66s)
      doesn't work when wingman is active:                                 FAIL (expected: The wingman plugin doesn't yet compile in GHC9) (2.68s)
        Exception: user error (didn't expected code action matching '["replace _ with minBound"]' but found one anyway) (expected failure)
      shows more suggestions:                                              OK (2.98s)
      doesnt show more suggestions when wingman is active:                 FAIL (expected: The wingman plugin doesn't yet compile in GHC9) (2.66s)
        Exception: user error (didn't expected code action matching '["replace _ with foo2 _"]' but found one anyway) (expected failure)
    unused term code actions
      Prefixes with '_':                                                   IGNORED
        no support for prefixing unused names with _
      respect 'only' parameter:                                            OK (2.53s)
  liquid haskell diagnostics
    liquid haskell generates diagnostics:                                  IGNORED
      no liquid haskell
  hie-bios
    loads modules inside main-is:                                          OK (0.94s)
    reports errors in hie.yaml:                                            OK (0.21s)
  highlight
    works:                                                                 OK (1.08s)
  window/workDoneProgress
    sends indefinite progress notifications:                               OK (0.93s)
    eval plugin sends progress reports:                                    OK (8.32s)
    ormolu plugin sends progress notifications:                            OK (0.73s)
    fourmolu plugin sends progress notifications:                          OK (0.94s)
    liquid haskell plugin sends progress notifications:                    IGNORED
      no liquid Haskell support
  references
    works with definitions:                                                IGNORED
      Broken
  document symbols
    pre 3.10 symbol information
Error: The operation was canceled.
tests log
Test suite func-test: RUNNING...
haskell-language-server
  commands
    are prefixed:                                                          OK (27.25s)
    get de-prefixed:                                                       OK (3.39s)
  completions
    works:                                                                 OK (2.80s)
    itemCompletion/resolve works:                                          IGNORED
      no support for itemCompletion/resolve requests
    completes imports:                                                     OK (2.35s)
    completes qualified imports:                                           OK (2.23s)
    completes with no prefix:                                              OK (2.40s)
    strips compiler generated stuff from completions:                      OK (2.50s)
    have implicit foralls on basic polymorphic types:                      OK (2.41s)
    have implicit foralls with multiple type variables:                    OK (2.45s)
    maxCompletions:                                                        OK (2.45s)
    import function completions:                                           OK (2.12s)
    import second function completion:                                     OK (2.23s)
    contexts
      only provides type suggestions:                                      OK (2.32s)
      only provides value suggestions:                                     OK (2.41s)
      completes qualified type suggestions:                                OK (2.49s)
    snippets
      work for argumentless constructors:                                  OK (2.58s)
      work for polymorphic types:                                          OK (2.40s)
      work for complex types:                                              OK (2.54s)
      work for infix functions:                                            OK (2.22s)
      work for infix functions in backticks:                               OK (2.28s)
      work for qualified infix functions:                                  OK (3.00s)
      work for qualified infix functions in backticks:                     OK (2.70s)
      respects lsp configuration:                                          OK (2.39s)
      respects client capabilities:                                        OK (2.52s)
  plugin config
    config parsing
      empty object as user configuration should not send error logMessage: OK (0.62s)
  deferred responses
    instantly respond to failed modules with no cache:                     OK (0.90s)
    multiple main modules
      Can load one file at a time, when more than one Main module exists:  IGNORED
        Broken: Unexpected ConduitParser.empty
  definitions
    goto's symbols:                                                        IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/References.hs
    goto's imported modules:                                               IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/Bar.hs
    goto's exported modules:                                               IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/Bar.hs
    goto's imported modules that are loaded:                               IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/Bar.hs
    goto's imported modules that are loaded, and then closed:              IGNORED
      Broken: file:///Users/jwindsor/src/haskell-language-server/test/testdata/Bar.hs
  diagnostics providers
    Diagnostics work
      example plugin produces diagnostics:                                 OK (0.48s)
    only diagnostics on save
      Respects diagnosticsOnChange setting:                                IGNORED
        diagnosticsOnChange parameter is not supported right now
    Warnings are warnings
      Overrides -Werror:                                                   OK (4.87s)
  format document
warning: LF will be replaced by CRLF in C:\Users\runneradmin\AppData\Local\Temp\ForD698.actual.
The file will have its original line endings in your working directory
    works:                                                                 OK (0.84s)
Error: The operation was canceled.

Dont see a pattern for now

@jneira jneira added pr: failing tests and removed merge me Label to trigger pull request merge labels Oct 28, 2021
@jneira jneira changed the title Enable func-test suite for windows [skip circleci] Enable func-test suite for windows Oct 28, 2021
@jneira
Copy link
Member Author

jneira commented Nov 2, 2021

Ok, i've isolated the problematic tests to progress onesso the rest can be enabled. I think we can merge this and try to discern what concrete progress test(s) are triggering the hang

@jneira jneira added merge me Label to trigger pull request merge and removed pr: failing tests labels Nov 2, 2021
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
merge me Label to trigger pull request merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants