bloaty/third_party/protobuf/conformance/ConformanceJavaLite.java
Go to the documentation of this file.
1 
2 import com.google.protobuf.conformance.Conformance;
4 
5 class ConformanceJavaLite {
6  private int testCount = 0;
7 
8  private boolean readFromStdin(byte[] buf, int len) throws Exception {
9  int ofs = 0;
10  while (len > 0) {
11  int read = System.in.read(buf, ofs, len);
12  if (read == -1) {
13  return false; // EOF
14  }
15  ofs += read;
16  len -= read;
17  }
18 
19  return true;
20  }
21 
22  private void writeToStdout(byte[] buf) throws Exception {
23  System.out.write(buf);
24  }
25 
26  // Returns -1 on EOF (the actual values will always be positive).
27  private int readLittleEndianIntFromStdin() throws Exception {
28  byte[] buf = new byte[4];
29  if (!readFromStdin(buf, 4)) {
30  return -1;
31  }
32  return (buf[0] & 0xff)
33  | ((buf[1] & 0xff) << 8)
34  | ((buf[2] & 0xff) << 16)
35  | ((buf[3] & 0xff) << 24);
36  }
37 
38  private void writeLittleEndianIntToStdout(int val) throws Exception {
39  byte[] buf = new byte[4];
40  buf[0] = (byte)val;
41  buf[1] = (byte)(val >> 8);
42  buf[2] = (byte)(val >> 16);
43  buf[3] = (byte)(val >> 24);
44  writeToStdout(buf);
45  }
46 
47  private Conformance.ConformanceResponse doTest(Conformance.ConformanceRequest request) {
48  Conformance.TestAllTypes testMessage;
49 
50  switch (request.getPayloadCase()) {
51  case PROTOBUF_PAYLOAD: {
52  try {
53  testMessage = Conformance.TestAllTypes.parseFrom(request.getProtobufPayload());
54  } catch (InvalidProtocolBufferException e) {
55  return Conformance.ConformanceResponse.newBuilder().setParseError(e.getMessage()).build();
56  }
57  break;
58  }
59  case JSON_PAYLOAD: {
60  return Conformance.ConformanceResponse.newBuilder().setSkipped(
61  "Lite runtime does not support JSON format.").build();
62  }
63  case PAYLOAD_NOT_SET: {
64  throw new RuntimeException("Request didn't have payload.");
65  }
66 
67  default: {
68  throw new RuntimeException("Unexpected payload case.");
69  }
70  }
71 
72  switch (request.getRequestedOutputFormat()) {
73  case UNSPECIFIED:
74  throw new RuntimeException("Unspecified output format.");
75 
76  case PROTOBUF:
77  return Conformance.ConformanceResponse.newBuilder().setProtobufPayload(testMessage.toByteString()).build();
78 
79  case JSON:
80  return Conformance.ConformanceResponse.newBuilder().setSkipped(
81  "Lite runtime does not support JSON format.").build();
82 
83  default: {
84  throw new RuntimeException("Unexpected request output.");
85  }
86  }
87  }
88 
89  private boolean doTestIo() throws Exception {
90  int bytes = readLittleEndianIntFromStdin();
91 
92  if (bytes == -1) {
93  return false; // EOF
94  }
95 
96  byte[] serializedInput = new byte[bytes];
97 
98  if (!readFromStdin(serializedInput, bytes)) {
99  throw new RuntimeException("Unexpected EOF from test program.");
100  }
101 
102  Conformance.ConformanceRequest request =
103  Conformance.ConformanceRequest.parseFrom(serializedInput);
104  Conformance.ConformanceResponse response = doTest(request);
105  byte[] serializedOutput = response.toByteArray();
106 
107  writeLittleEndianIntToStdout(serializedOutput.length);
108  writeToStdout(serializedOutput);
109 
110  return true;
111  }
112 
113  public void run() throws Exception {
114  while (doTestIo()) {
115  this.testCount++;
116  }
117 
118  System.err.println("ConformanceJavaLite: received EOF from test runner after " +
119  this.testCount + " tests");
120  }
121 
122  public static void main(String[] args) throws Exception {
123  new ConformanceJavaLite().run();
124  }
125 }
benchmark.request
request
Definition: benchmark.py:77
buf
voidpf void * buf
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
com.google.protobuf
Definition: bloaty/third_party/protobuf/benchmarks/java/src/main/java/com/google/protobuf/ProtoCaliperBenchmark.java:2
absl::FormatConversionChar::e
@ e
asyncio_get_stats.args
args
Definition: asyncio_get_stats.py:40
main
int main(int argc, char **argv)
Definition: examples/cpp/compression/greeter_client.cc:78
ares::byte
unsigned char byte
Definition: ares-test.h:33
read
int read(izstream &zs, T *x, Items items)
Definition: bloaty/third_party/zlib/contrib/iostream2/zstream.h:115
client.run
def run()
Definition: examples/python/async_streaming/client.py:109
bytes
uint8 bytes[10]
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream_unittest.cc:153
asyncio_get_stats.response
response
Definition: asyncio_get_stats.py:28
com.google
com
com.google.protobuf.InvalidProtocolBufferException
Definition: bloaty/third_party/protobuf/java/core/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java:41
len
int len
Definition: abseil-cpp/absl/base/internal/low_level_alloc_test.cc:46


grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:01