Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Windows: Errors in teststandard/processes/streamio.tst in the master branch #3332

Closed
olexandr-konovalov opened this issue Mar 7, 2019 · 14 comments · Fixed by #3638
Closed
Labels
kind: bug Issues describing general bugs, and PRs fixing them os: windows Issues and PRs that are (at least partially) specific to Windows
Milestone

Comments

@olexandr-konovalov
Copy link
Member

See for example this Jenkins build (St Andrews only)

########> Diff in /proc/cygdrive/C/Users/jenkins/workspace/GAP-master-windows-\
build/GAP-master-snapshot/tst/teststandard/processes/streamio.tst:28
# Input is:
ForAny([1..10], x -> checkPartialRead(write, ReadLine, "aaa", "aaa\n"));
# Expected output:
true
# But found:
Error, Missing second
########
########> Diff in /proc/cygdrive/C/Users/jenkins/workspace/GAP-master-windows-\
build/GAP-master-snapshot/tst/teststandard/processes/streamio.tst:30
# Input is:
ForAny([1..10], x -> checkPartialRead(write, ReadLine, "aaa", "aaa"));
# Expected output:
true
# But found:
Error, Missing second
########
########> Diff in /proc/cygdrive/C/Users/jenkins/workspace/GAP-master-windows-\
build/GAP-master-snapshot/tst/teststandard/processes/streamio.tst:32
# Input is:
ForAny([1..10], x -> checkPartialRead(write, ReadAll, "aaa", "aaa\n"));
# Expected output:
true
# But found:
Error, Missing second
########
########> Diff in /proc/cygdrive/C/Users/jenkins/workspace/GAP-master-windows-\
build/GAP-master-snapshot/tst/teststandard/processes/streamio.tst:38
# Input is:
c := ReadByte(process);
# Expected output:
97
# But found:
fail
########
########> Diff in /proc/cygdrive/C/Users/jenkins/workspace/GAP-master-windows-\
build/GAP-master-snapshot/tst/teststandard/processes/streamio.tst:40
# Input is:
c := ReadByte(process);
# Expected output:
98
# But found:
fail
########
########> Diff in /proc/cygdrive/C/Users/jenkins/workspace/GAP-master-windows-\
build/GAP-master-snapshot/tst/teststandard/processes/streamio.tst:42
# Input is:
c := ReadByte(process);
# Expected output:
99
# But found:
fail
########
########> Diff in /proc/cygdrive/C/Users/jenkins/workspace/GAP-master-windows-\
build/GAP-master-snapshot/tst/teststandard/processes/streamio.tst:44
# Input is:
c := ReadByte(process);
# Expected output:
100
# But found:
fail
########
########> Diff in /proc/cygdrive/C/Users/jenkins/workspace/GAP-master-windows-\
build/GAP-master-snapshot/tst/teststandard/processes/streamio.tst:46
# Input is:
c := ReadByte(process);
# Expected output:
101
# But found:
fail
########
########> Diff in /proc/cygdrive/C/Users/jenkins/workspace/GAP-master-windows-\
build/GAP-master-snapshot/tst/teststandard/processes/streamio.tst:48
# Input is:
c := ReadByte(process);
# Expected output:
102
# But found:
fail
########
@olexandr-konovalov olexandr-konovalov added the os: windows Issues and PRs that are (at least partially) specific to Windows label Mar 7, 2019
@fingolfin fingolfin added the kind: bug Issues describing general bugs, and PRs fixing them label Mar 21, 2019
@olexandr-konovalov
Copy link
Member Author

Still happens - e.g. in St Andrews only link tonight. This blocks GAP 4.11 and needs addressing.

@olexandr-konovalov olexandr-konovalov added this to the GAP 4.11.0 milestone Apr 13, 2019
@olexandr-konovalov
Copy link
Member Author

Still happens - e.g. in St Andrews only link and thus blocks GAP 4.11.

@embray
Copy link
Contributor

embray commented Aug 21, 2019

What's an easy way to run just the tests in tst/teststandard/processes/streamio.tst so I can try it myself?

@olexandr-konovalov
Copy link
Member Author

Test("C:/gap-path-to-your-installation/tst/teststandard/processes/streamio.tst");

@embray
Copy link
Contributor

embray commented Aug 21, 2019

I think the problem is just with the test, and it's not too surprising it fails in CI. I can't reproduce it manually, so far.

It might help to debug if the like if ReadLine(process) <> secondread then Error("Missing second"); fi; also output what it did read, because otherwise it just says "Missing second".

@embray
Copy link
Contributor

embray commented Aug 21, 2019

Nevermind, I can recreate the same failures if I modify slowwrite.sh to just exit -11 (for example). It's possible that this test is suffering from the same fork failures that were discussed e.g. on #2890?

@fingolfin
Copy link
Member

@embray yes, that is possible; which is why I wonder whether my PR #3513 might help with this.

@olexandr-konovalov
Copy link
Member Author

olexandr-konovalov commented Aug 23, 2019

@fingolfin @embray As I wrote in #3513, it does not fix errors from this issue.

@wilfwilson
Copy link
Member

wilfwilson commented Aug 30, 2019

Note that this test file, teststandard/processes/streamio.tst, was only added in 28th January 2019 in #3236. In particular, it was added after GAP 4.10, and not long before this issue was created.

I think it is possible, perhaps even likely, that this file would have also failed in GAP 4.10. (Although I have no way of testing this). I propose that we simply disable this test on Windows and proceed with a GAP 4.11 release, which contains many benefits to users on all platforms.

@ChrisJefferson
Copy link
Contributor

I also can't get this test to fail, it works fine on both 32-bit and 64-bit

Are you running on a machine with no 'sh'? That would explain the failure.

olexandr-konovalov pushed a commit to olexandr-konovalov/gap that referenced this issue Sep 1, 2019
This test requires sh, and does not work outside Cygwin.
Closes gap-system#3332
@olexandr-konovalov
Copy link
Member Author

@ChrisJefferson yes, this is on a cygwin-free machine where the GAP win-zip archive is tested. I agree with @wilfwilson to disable it on Windows. I've submitted PR #3637 to disable it.

olexandr-konovalov pushed a commit to olexandr-konovalov/gap that referenced this issue Sep 1, 2019
This test requires sh, and does not work outside Cygwin.
Closes gap-system#3332
olexandr-konovalov pushed a commit to olexandr-konovalov/gap that referenced this issue Sep 1, 2019
This test requires sh, and does not work outside Cygwin.
Closes gap-system#3332
olexandr-konovalov pushed a commit to olexandr-konovalov/gap that referenced this issue Sep 1, 2019
This test requires sh, and does not work outside Cygwin.
Closes gap-system#3332
olexandr-konovalov pushed a commit to olexandr-konovalov/gap that referenced this issue Sep 1, 2019
This test requires sh, and does not work outside Cygwin.
Closes gap-system#3332
olexandr-konovalov pushed a commit to olexandr-konovalov/gap that referenced this issue Sep 1, 2019
This test requires sh, and does not work outside Cygwin.
Closes gap-system#3332
@embray
Copy link
Contributor

embray commented Sep 4, 2019

In principle you could also ship bash, and its minor dependencies, with GAP--that can be nice for users too because then they get a bash shell to start gap from :) But I agree it's probably overkill just to include it for one test.

@ChrisJefferson
Copy link
Contributor

longer term, I want to distribute a full cygwin base system (which is small compared to GAP), so lots of things (having a shell, terminfo, temp directories, home directories) get set up correctly and automatically. This would also help running packages which themselves expect a shell.

@embray
Copy link
Contributor

embray commented Sep 4, 2019

@ChrisJefferson The Sage Windows builder might provide some help with that: https://github.com/sagemath/sage-windows

I'm currently not very happy with a lot of how it's structured and makefile is a complete mess. But it does represent a number of learned lessons.

It also creates two separate Cygwin installs: One for building, and then a smaller one representing what actually gets distributed for runtime. Though more and more the two are coming into parity as users demand to be able to install optional packages that require compilation anyways.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: bug Issues describing general bugs, and PRs fixing them os: windows Issues and PRs that are (at least partially) specific to Windows
Projects
None yet
5 participants