grpc: Add the missing call of the finished() signal

Add the missing call of the finished() signal to the native-based
implementation of gRPC stream. Emit both errorOccured and finished
when the stream is finished with error. This behavior is aligned
with the behavior of QNetworkReply.

Task-number: QTBUG-108212
Change-Id: I3f45e33c89aca1cd258066a9f7b3df846ceeccc2
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
Alexey Edelev 2022-11-04 19:31:32 +01:00
parent e02a320d98
commit b5662a170f
3 changed files with 3 additions and 12 deletions

View File

@ -289,6 +289,7 @@ void QGrpcChannelPrivate::stream(QGrpcStream *stream, const QString &service,
if (sub->status.code() != QGrpcStatus::Ok) { if (sub->status.code() != QGrpcStatus::Ok) {
stream->errorOccurred(sub->status); stream->errorOccurred(sub->status);
} }
stream->finished();
}); });
*abortConnection = QObject::connect(stream, &QGrpcStream::finished, sub.get(), *abortConnection = QObject::connect(stream, &QGrpcStream::finished, sub.get(),

View File

@ -390,9 +390,8 @@ void QGrpcHttp2Channel::stream(QGrpcStream *grpcStream, const QString &service,
grpcStream->errorOccurred(QGrpcStatus{ grpcStream->errorOccurred(QGrpcStatus{
grpcStatus, grpcStatus,
QLatin1StringView(networkReply->rawHeader(GrpcStatusMessage)) }); QLatin1StringView(networkReply->rawHeader(GrpcStatusMessage)) });
} else {
grpcStream->finished();
} }
grpcStream->finished();
break; break;
} }
default: default:

View File

@ -260,9 +260,6 @@ void QtGrpcClientTest::StreamStringTest()
void QtGrpcClientTest::StreamStringAndAbortTest() void QtGrpcClientTest::StreamStringAndAbortTest()
{ {
// TODO
QSKIP("Fix-me: QTBUG-10821");
SimpleStringMessage result; SimpleStringMessage result;
SimpleStringMessage request; SimpleStringMessage request;
request.setTestFieldString("Stream"); request.setTestFieldString("Stream");
@ -284,15 +281,12 @@ void QtGrpcClientTest::StreamStringAndAbortTest()
void QtGrpcClientTest::StreamStringAndDeferredAbortTest() void QtGrpcClientTest::StreamStringAndDeferredAbortTest()
{ {
// TODO
QSKIP("Fix-me: QTBUG-10821");
SimpleStringMessage result; SimpleStringMessage result;
SimpleStringMessage request; SimpleStringMessage request;
request.setTestFieldString("Stream"); request.setTestFieldString("Stream");
auto stream = _client->streamTestMethodServerStream(request); auto stream = _client->streamTestMethodServerStream(request);
QTimer::singleShot(3100, stream.get(), [stream]() { stream->abort(); }); QTimer::singleShot(3400, stream.get(), [stream]() { stream->abort(); });
QSignalSpy streamFinishedSpy(stream.get(), &QGrpcStream::finished); QSignalSpy streamFinishedSpy(stream.get(), &QGrpcStream::finished);
QVERIFY(streamFinishedSpy.isValid()); QVERIFY(streamFinishedSpy.isValid());
@ -456,9 +450,6 @@ void QtGrpcClientTest::StreamAndGetAsyncReplyTest()
void QtGrpcClientTest::MultipleStreamsTest() void QtGrpcClientTest::MultipleStreamsTest()
{ {
// TODO
QSKIP("Fix-me: QTBUG-10821");
SimpleStringMessage result; SimpleStringMessage result;
SimpleStringMessage request; SimpleStringMessage request;
request.setTestFieldString("Stream"); request.setTestFieldString("Stream");