* Fixed a bunch of incorrect arginfo and a few incorrect error messages.
* Passes mem check test with no leaks!
* WIP.
* Fix build warning that was causing Bazel build to fail.
* Added compatibility code for PHP <8.0.
* Added test_valgrind target and made tests Valgrind-clean.
* Updated Valgrind test to fail if memory leaks are detected.
* Removed intermediate shell script so commands are easier to cut, paste, and modify.
* Passing all Valgrind tests!
* Hoist addref into ObjCache_Get().
* Removed special case of map descriptors by keying object map on upb_msgdef.
* Removed all remaining RETURN_ZVAL() macros.
* Removed all explicit reference add/del operations.
* Added REFCOUNTING.md to Makefile.am.
This is necessary because the Kotlin support requires Java 8 or
higher.
Making this test use Java 8 required switching it to the java_stretch
Docker image and updating that image to include some Python
dependencies.
* WIP.
* Added build config for all of the tests.
* Use ../src/protoc if it is available, for cases where Bazel isn't available.
* Added test_php.sh.
* Fix for the broken macOS tests.
* Move all jobs to use php80 instead of lots of separate jobs.
* Only pass -t flag if we are running in a terminal.
* Updated php_all job to use new Docker stuff.
* Add the kotlin and kotlin-lite directories to the main pom.xml
* Updated Kotlin versions to 3.17.0-rc1
* Fix Mac CI tests by resolving brew package conflict
This fixes MSVC (tested on MSVC2019 / 16.8) compilation error (line number is different, as I am working with protobuf 3.15.8:
```
google/protobuf/map_entry_lite.h:527: error C2760: syntax error: unexpected token ')', expected 'expression'
```
I believe [this](https://stackoverflow.com/questions/34696351/template-dependent-typename) explains why MSVC considers this to be a dependent template.
The test assertion is commented out, but this is causing some warnings
about an unused variable. This commit comments out the variable to fix
that problem.
* fix(ruby): Fix crash when calculating Message hash values on 64-bit Windows
* Better mapping for values outside the fixnum range
* Simpler downcasting of hash values
* Fix precedence
* Fix bundle on Ruby 2.4
* Add more testing for ReadOnlySpan parsing
* Update `AssertReadFromParseContext` to also run assertions for a
`ParseContext` initialized from a `ReadOnlySpan` of the given input.
* Remove passing `ReadOnlySpan` parameters by ref since they are not
altered and the type isn't large enough to benefit from performance
improvements for passing by `ref` or `in`
* Update `ParseContext` `Initialize` overloads for
`ReadOnlySpan<byte>`, going down to two (since nothing was calling the
overload that changed the recursion limit). The first now calls the
second to set the `buffer` and `state` on the context, and has
documentation to note that it is used to create a `ParserInternalState`
with default settings.
* fix(ruby): Fix various exceptions in Ruby on 64-bit Windows.
Activates the secondary ObjectCache map on this platform, to prevent weak keys from being garbage collected. This happened on 64-bit Windows because pointers don't necessarily fit in a Fixnum, and were being represented as GC-able Bignums on that platform.
* Removed extraneous code, and used VALUE instead of intptr_t
* Call the C function for new object instance rather than evaling a Ruby string
* Simplified PHP testing setup.
- Consolidated on a single autoloader, created by composer.
- Consolidated on a single phpunit invocation strategy: we run
phpunit on a directory, which will run all tests matching *Test.php
in that directory.
- We now rely on autoloading to import all test protos. require_once()
calls for test protos are removed.
- For now the valgrind tests are removed. A follow-up PR will re-enable
them in a more robust way.
* More improvements to PHP testing.
1. Replace custom PHPUnit-selection logic in test.sh with generic
composer version selection.
2. Optimized both test proto generation and the custom extension
build to avoid unnecessary work when the files are already up
to date.
* Added assertions to verify that the C test doesn't use PHP sources.
* Updated tests.sh for the new PHP testing commands.
* Removed obsolete rules from tests.sh.
* Fixed generate_test_protos.sh for when tmp does not exist.
Also removed undefined_test.php and fixed Makefile.am.
* Added php8.0_all again which is still used.
* Added missing file to Makefile.am.
* Re-added php_all_32 rule which is also still used.
* Updated testing commands for macOS and download composer.
* Use /usr/local/bin on mac instead of /usr/bin, since the latter is not writable.