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

Test some more things in CI #469

Merged
merged 3 commits into from Jul 24, 2022
Merged

Test some more things in CI #469

merged 3 commits into from Jul 24, 2022

Conversation

arp242
Copy link
Member

@arp242 arp242 commented Jul 23, 2022

  • Test all GOOS/GOARCH combinations by looping over "go tool dist list";
    this just tests if it compiles.

  • Add a Vagrant box to test Debian 6 / Linux 2.6.32; this was adapted
    from @horahoradev's patch at Replace Use of Kthread-blocking Epoll with Poller Read, Remove Per-Event LStats on Linux #433 #434.

  • Update the minimum version requirements: we test Linux 2.6.32 now and
    turns out that's also the minimum version Go supports in recent
    releases, so just set it to that.

    Need Go 1.16 for retract in go.mod. I don't know, maybe we can just
    remove the retract? Latest Debian ships with Go 1.15.

  • Test both Go 1.16 and 1.18 (the lowest supported version and newest
    version). I guess we could also test 1.17, but the CI already takes
    somewhat long and I can't recall ever having a situation where an
    intermediate version failed.

  • Test macOS 11 and 12; macOS 10.15 will (probably) end support in
    November, so probably not worth supporting this. GitHub will remove
    support for this at the end of August.

  • Test OpenBSD, NetBSD. I had to skip a test to get it to work on NetBSD.

  • Move "lint" to its own YAML file.

Future work:

  • Actually run tests for all systems Go supports. Bit pointless right
    now as many of these don't do anything. Currently untested are
    Solaris, illumios, plan9, AIX, Android, iOS, DragonflyBSD, WASM.

    Some of these might be difficult (AIX, iOS, Android), but haven't
    looked in to it. I tried setting up Solaris with the
    vmactions/solaris, but it doesn't seem to have an easy way to install
    Go.

  • GitHub only supports Windows Server 2019 and 2022; probabably also
    want to test Server 2016, but GitHub dropped support for this. Can
    maybe use AppVeyor(?)

  • Could maybe test older versions of BSD, too. Not sure of it's worth
    it.

- Test all GOOS/GOARCH combinations by looping over "go tool dist list";
this just tests if it compiles.

- Add a Vagrant box to test Debian 6 / Linux 2.6.32; this was adapted
from @horahoradev's patch at #434.

- Update the minimum version requirements: we test Linux 2.6.32 now and
  turns out that's also the minimum version [Go supports] in recent
  releases, so just set it to that.

  Need Go 1.16 for retract in go.mod. I don't know, maybe we can just
  remove the retract? Latest Debian ships with Go 1.15.

  [Go supports]: golang/go#45964

- Test both Go 1.16 and 1.18 (the lowest supported version and newest
  version). I guess we could also test 1.17, but the CI already takes
  somewhat long and I can't recall ever having a situation where an
  intermediate version failed.

- Test macOS 11 and 12; macOS 10.15 will (probably) end support in
  November, so probably not worth supporting this. GitHub will [remove]
  support for this at the end of August.

  [remove]: https://github.blog/changelog/2022-07-20-github-actions-the-macos-10-15-actions-runner-image-is-being-deprecated-and-will-be-removed-by-8-30-22/

- Test OpenBSD, NetBSD.

- Move "lint" to its own YAML file.

Future work:

- Actually run tests for all systems Go supports. Bit pointless right
  now as many of these don't do anything. Currently untested are
  Solaris, illumios, plan9, AIX, Android, iOS, DragonflyBSD, WASM.

  Some of these might be difficult (AIX, iOS, Android), but haven't
  looked in to it. I tried setting up Solaris with the
  vmactions/solaris, but it doesn't seem to have an easy way to install
  Go.

- GitHub only [supports] Windows Server 2019 and 2022; probabably also
  want to test Server 2016, but GitHub dropped support for this. Can
  maybe use AppVeyor(?)

  [supports]: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#choosing-github-hosted-runners

- Could maybe test older versions of BSD, too. Not sure of it's worth
  it.
This test doesn't seem to work; I'm sure it passed at least once in the
CI, but locally I can't seem to get it to work.

Fails with:

	=== RUN   TestFsnotifyMultipleOperations
    	integration_test.go:114: event received: "/tmp/fsnotify2194826986/TestFsnotifySeq.testfile": CREATE
    	integration_test.go:114: event received: "/tmp/fsnotify2194826986/TestFsnotifySeq.testfile": WRITE
    	integration_test.go:114: event received: "/tmp/fsnotify2194826986/TestFsnotifySeq.testfile": REMOVE|RENAME
    	integration_test.go:114: event received: "/tmp/fsnotify2194826986/TestFsnotifySeq.testfile": CREATE
    	integration_test.go:186: incorrect number of rename+delete events received after 500 ms (2 vs 1)
    	integration_test.go:114: event received: "/tmp/fsnotify2194826986/TestFsnotifySeq.testfile": REMOVE
    	integration_test.go:114: event received: "/tmp/fsnotify2194826986": REMOVE|WRITE

For reference, this is the output on Linux and OpenBSD (the output is
identical):

	=== RUN   TestFsnotifyMultipleOperations
    	integration_test.go:114: event received: "/tmp/fsnotify989736723/TestFsnotifySeq.testfile": CREATE
    	integration_test.go:114: event received: "/tmp/fsnotify989736723/TestFsnotifySeq.testfile": WRITE
    	integration_test.go:114: event received: "/tmp/fsnotify989736723/TestFsnotifySeq.testfile": RENAME
    	integration_test.go:114: event received: "/tmp/fsnotify989736723/TestFsnotifySeq.testfile": CREATE
    	integration_test.go:190: calling Close()
    	integration_test.go:192: waiting for the event channel to become closed...
    	integration_test.go:195: event channel closed
I guess this started failing after I rebased on main; let's see if a
small sleep works to clean up the file descriptors.
arp242 added a commit to horahoradev/fsnotify that referenced this pull request Jul 23, 2022
@arp242 arp242 merged commit 4b8b298 into main Jul 24, 2022
@arp242 arp242 deleted the actions branch July 24, 2022 09:22
arp242 added a commit to horahoradev/fsnotify that referenced this pull request Jul 24, 2022
arp242 added a commit that referenced this pull request Jul 24, 2022
…ent LStats on Linux #433 (#434)

* Replaced use of raw epoll with netpoller read

* Remove Debian 6 Vagrant test; it's in #469 now

* Added ignoreLinux lstats back in

* Update test

Co-authored-by: Martin Tournoij <martin@arp242.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant