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

build: coverage does not work with clang #858

Closed
mattklein123 opened this issue Apr 27, 2017 · 1 comment
Closed

build: coverage does not work with clang #858

mattklein123 opened this issue Apr 27, 2017 · 1 comment
Assignees
Labels

Comments

@mattklein123
Copy link
Member

It looks like clang coverage output is not compatible with gcov/gcovr. Need to ultimately figure out some solution here. (This is true at least as of 4.0 release).

@mattklein123 mattklein123 modified the milestone: 1.4.0 May 19, 2017
htuch added a commit to htuch/envoy that referenced this issue May 21, 2017
clang isn't compatible with gcov (see envoyproxy#858). We plan to switch to lcov in the future (see envoyproxy#1000).
For now, just make sure we fail visibly and document.
htuch added a commit that referenced this issue May 22, 2017
clang isn't compatible with gcov (see #858). We plan to switch to lcov in the future (see #1000).
For now, just make sure we fail visibly and document.
@mattklein123 mattklein123 modified the milestones: 1.4.0, 1.5.0 Aug 4, 2017
@mattklein123 mattklein123 removed this from the 1.5.0 milestone Oct 3, 2017
@mattklein123 mattklein123 added the help wanted Needs help! label Oct 28, 2017
@mattklein123
Copy link
Member Author

Closing as dup of #1000

jpsim pushed a commit that referenced this issue Nov 28, 2022
## Context

As part of the work to support platform (Swift/Kotlin) L7 filters, we are updating the public interfaces/functionality of the Envoy Mobile library to combine the concepts of a `StreamEmitter` and `ResponseHandler` into a "stream".

## Goals

- Unify the existing response handler and stream emitter types into a single "stream" type that will make it easier to communicate with an underlying filter manager for both outbound requests and inbound responses
- Provide guard rails that prevent the consumer from making mistakes, such as setting callback handlers after starting a stream and thus missing updates
- Provide a clear interface to the user for creating and starting streams
- Focus on the basics (bi-directional streaming support), which will allow for other wrappers to be written in the future (i.e., GRPC, unary, Rx, etc.)
- Update interfaces to utilize the new wrapper types introduced on master (`ResponseHeaders`, `RequestHeaders`, etc.)

## Types

- `StreamClient`: The publicly exposed interface of `EnvoyEngine`. Provides a function for starting a new stream using Envoy Mobile, and is built using `StreamClientBuilder`
- `StreamPrototype`: Type that allows users to set up a stream (providing callbacks, etc.) prior to starting it
- `Stream`: Produced by calling `start()` on a `StreamPrototype`, and allows the consumer to send data over the stream and eventually close it
- `GRPCClient` / `GRPCStreamPrototype` / `GRPCStream`: Types wrapping the above 3 types, converting the existing gRPC types to utilize the new functionality

To start a stream, consumers now do something like this:

```swift
let streamClient = try StreamClientBuilder().build()
...
```
```swift
let headers = RequestHeadersBuilder(method: .get, authority: "envoyproxy.io", path: "/test")
  .addUpstreamHttpProtocol(.http2)
  .build()

streamClient
  .newStream()
  .setOnResponseHeaders { ... }
  .setOnResponseData { ... }
  .start()
  .sendHeaders(headers, endStream: false)
  .sendData(data)
  .close()
```

## Tests

- Unit tests have been added / updated accordingly.
- Sample apps have also been updated (CI validates via "hello world").

## Notes

- A follow-up PR will migrate Android to mirror these
- Documentation will be updated separately

Signed-off-by: Michael Rebello <[email protected]>
Signed-off-by: JP Simard <[email protected]>
jpsim pushed a commit that referenced this issue Nov 29, 2022
## Context

As part of the work to support platform (Swift/Kotlin) L7 filters, we are updating the public interfaces/functionality of the Envoy Mobile library to combine the concepts of a `StreamEmitter` and `ResponseHandler` into a "stream".

## Goals

- Unify the existing response handler and stream emitter types into a single "stream" type that will make it easier to communicate with an underlying filter manager for both outbound requests and inbound responses
- Provide guard rails that prevent the consumer from making mistakes, such as setting callback handlers after starting a stream and thus missing updates
- Provide a clear interface to the user for creating and starting streams
- Focus on the basics (bi-directional streaming support), which will allow for other wrappers to be written in the future (i.e., GRPC, unary, Rx, etc.)
- Update interfaces to utilize the new wrapper types introduced on master (`ResponseHeaders`, `RequestHeaders`, etc.)

## Types

- `StreamClient`: The publicly exposed interface of `EnvoyEngine`. Provides a function for starting a new stream using Envoy Mobile, and is built using `StreamClientBuilder`
- `StreamPrototype`: Type that allows users to set up a stream (providing callbacks, etc.) prior to starting it
- `Stream`: Produced by calling `start()` on a `StreamPrototype`, and allows the consumer to send data over the stream and eventually close it
- `GRPCClient` / `GRPCStreamPrototype` / `GRPCStream`: Types wrapping the above 3 types, converting the existing gRPC types to utilize the new functionality

To start a stream, consumers now do something like this:

```swift
let streamClient = try StreamClientBuilder().build()
...
```
```swift
let headers = RequestHeadersBuilder(method: .get, authority: "envoyproxy.io", path: "/test")
  .addUpstreamHttpProtocol(.http2)
  .build()

streamClient
  .newStream()
  .setOnResponseHeaders { ... }
  .setOnResponseData { ... }
  .start()
  .sendHeaders(headers, endStream: false)
  .sendData(data)
  .close()
```

## Tests

- Unit tests have been added / updated accordingly.
- Sample apps have also been updated (CI validates via "hello world").

## Notes

- A follow-up PR will migrate Android to mirror these
- Documentation will be updated separately

Signed-off-by: Michael Rebello <[email protected]>
Signed-off-by: JP Simard <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants