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

Sync fork with upstream #2

Draft
wants to merge 412 commits into
base: master
Choose a base branch
from
Draft

Sync fork with upstream #2

wants to merge 412 commits into from

Conversation

ttstarck
Copy link

No description provided.

sodabrew and others added 30 commits November 22, 2016 23:09
But there isn't a public DNS record like 'example.com' with an A rrset,
so we'll continue to use yahoo.com for that.
* Minor syntax updates, avoid trailing semicolons
* Close connections to avoid hanging on keep-alive HTTP
* Use next_port helper instead of hardcoded port numbers
* Add EM timeouts
* Use HTTP/1.0 to prevent connection keep-alives
* Use next_port helper instead of hardcoded port number
Remove most unit test dependencies on third-party sites and improve consistency.
…n_count

Fix connection count off-by-one for epoll and kqueue
* Raise a ruby exception for InvalidWatchSignature addresses eventmachine#512
* Add unit test to check if exception is raised on invalid signature
Explicitly mark destructors that throw as "noexcept(false)" when compiling in a post C++11 dialect.
Fixes:

~~~
$ ruby -Itests tests/test_threaded_resource.rb 
tests/test_threaded_resource.rb:1:in `<main>': uninitialized constant Test (NameError)
~~~
* Promote InstallOneshotTimer arg from int to uint64_t in native extension
* Promote InstallOneshotTimer arg from int to BigInteger in Java class
* Use FIX2LONG in lieu of FIX2INT for interval type in t_add_oneshot_timer
* Add test for oneshot timer with large future value
nevans and others added 30 commits September 5, 2024 14:47
This also copies the default DH parameters from the stdlib OpenSSL gem,
which was in copied their default from RFC7919, Appendix A.1: ffdhe2048.
These were clobbered by later definitions that came from a different PR.
Resolves eventmachine#477, IO waits in Java code checkIO are reduced to at most timerQuantum miliseconds
Most deployments will be to linux servers, and EventMachine *is* still
maintaining *some* support for old versions of ruby.  So this still
keeps up to four EOL ruby builds for ubuntu, but _only_ for ruby
versions that went EOL _after_ that version of ubuntu was first
released.
From @MSP-Greg's comment on eventmachine#998:
> Since Ruby 2.3 & 2.4 are removed, we can change the workflow's line 46
> from uses: ruby/setup-ruby-pkgs@v1 to uses: ruby/setup-ruby@v1.

Co-authored-by: MSP-Greg <[email protected]>
This change still supports four EOL versions: 2.5, 2.6, 2.7, and 3.0.

Practically speaking, 2.0, 2.1, and 2.2 have already been removed from
CI.  ruby 2.5 was released with v2.1.0 of the openssl gem, and v2.1.0 of
that gem dropped support for OpenSSL libary versions 0.9.8 to 1.0.0.
So, by raising our ruby version, we also raise our minimum supported
OpenSSL version to 1.0.1 (or LibreSSL 2.5).
Ubuntu builds sort first (20.04, 22.04, 24.04), then macos-13, macos-14,
and windows-2022.  This also sorts the windows ucrt build immediately
after the other windows builds.
…-support

Remove most EOL rubies from the build matrix
In practice, I don't think either of these really matter:
* `@data` will just be reassigned in `#receive_data`'s `:base` clause
* `@content` should be reassigned (to non-frozen) by the earlier
  if/eslif clauses, prior to being mutated by the `else` clause.

But, for consistency, documentation, and in case this is subclassed, we
should ensure that these vars are always mutable buffers.
…ient-followup

Add str.dup to httpclient, for consistency
* Add `#ci?` for tests to adjust themselves in CI

* Update TIMEOUT_INTERVAL based on both OS and CI

Linux,   local: 0.25
Windows, local: 0.5
MacOS,   local: 0.5
Linux,   in CI: 1.0
Windows, in CI: 2.0
MacOS,   in CI: 2.0

And, of course, each test may include its own multiplier or increment.

* Raise timeouts for all HttpClient2 tests

...but especially for test_get_pipeline.

With the new TEST_INTERVAL, this will be 5s in CI for Linux, and 10s in
CI for Windows/MacOS.

* Add EM.stop in test errback

* Remove one second timeout from test

This seems to conflict with the setup_timeout at the top of the block.

* Fix casecmp backward compatible to ruby < 2.5

I forgot that we haven't dropped ruby versions prior to 2.5, yet!

* Apply pure_ruby multiplier to TIMEOUT_INTERVAL

The pure_ruby tests also tend to be much slower than running the
standard C++ reactor.

* Update tests/test_httpclient2.rb
The tests have been updated with "pend" or "omit", so the test suite
should still pass (albeit with a long "TODO list" in the output).
There's no longer any special reason to single out just these tests, so
this rake task is obsolete.
This stubbing is just enough to get the rest of the test suite running.
It should be safe, as `EM.kqueue?` and `EM.epoll?` already exist for
feature detection.  The implementation here basically mimics the
implementation in ext/rubymain.cpp.
…-pending

Run the full test suite in pure ruby CI
These all pass now.  I believe they were fixed by 0c0c715 in eventmachine#993.
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.