grpc-java/gae-interop-testing
Eric Anderson 1dee7efca4 Avoid accidental Java 9+ dependency with --release
In d654707 we swapped compiling the uploaded artifacts to Java 11. This
caused ABI issues with ByteBuffer, like clear() returning ByteBuffer
instead of Buffer.

There are source-level approaches to avoid the accidental ABI dependency
on Java 11, but we have no tool able to detect such breakages.
We use Animalsniffer for similar cases, but it fails to detect these[1].
Since we have no tool, source-level approaches can't gain the necessary
confidence that all incompatibility fixes have been resolved.

Java has had javac-level ways to address this, but they used to require
setting bootclasspath. Since Java 9, though, they made it easier and we
can use --release, which does exactly what we need.

Fixes #10432

1. https://github.com/mojohaus/animal-sniffer/issues/77
2023-07-31 17:51:49 -07:00
..
gae-jdk8 Avoid accidental Java 9+ dependency with --release 2023-07-31 17:51:49 -07:00
README.md doc: Change http to https for security links 2019-02-27 17:25:42 -08:00

README.md

Google App Engine interop tests

This directory contains interop tests that runs in Google App Engine as gRPC clients.

Prerequisites

  • Install the Google Cloud SDK and ensure that gcloud is in the path
  • Set up an App Engine app with your choice of a PROJECT_ID.
  • Associate your gcloud environment with your app:
    # Log into Google Cloud
    $ gcloud auth login
    
    # Associate this codebase with a GAE project
    $ gcloud config set project PROJECT_ID
    

Running the tests in GAE

You can run the gradle task to execute the interop tests.

# cd into gae-jdk8
$ ../../gradlew runInteropTestRemote

# Or run one of these from the root gRPC Java directory:
$ ./gradlew :grpc-gae-interop-testing-jdk8:runInteropTestRemote

Optional:

You can also browse to http://${PROJECT_ID}.appspot.google.com to see the result of the interop test.

Debugging

You can find the server side logs by logging into http://appengine.google.com and scrolling down to the section titled Application Errors and Server Errors.

Click on the / URI to view the log entries for each test run.