@@ -746,6 +746,41 @@ TEST(TracingClientTest, UploadFileResumable) {
746746 " gl-cpp.status_code" , code_str)))));
747747}
748748
749+ TEST (TracingClientTest, ExecuteParallelUploadFile) {
750+ auto span_catcher = InstallSpanCatcher ();
751+ auto mock = std::make_shared<MockClient>();
752+ EXPECT_CALL (*mock, ExecuteParallelUploadFile)
753+ .WillOnce (
754+ [](std::vector<
755+ std::thread>, // NOLINT(performance-unnecessary-value-param)
756+ std::vector<
757+ storage::internal::
758+ ParallelUploadFileShard>, // NOLINT(performance-unnecessary-value-param)
759+ bool ) {
760+ EXPECT_TRUE (ThereIsAnActiveSpan ());
761+ return PermanentError ();
762+ });
763+ auto under_test = TracingConnection (mock);
764+ std::vector<std::thread> threads;
765+ std::vector<storage::internal::ParallelUploadFileShard> shards;
766+ bool ignore_cleanup_failures = false ;
767+ auto actual = under_test.ExecuteParallelUploadFile (
768+ std::move (threads), std::move (shards), ignore_cleanup_failures);
769+
770+ auto const code = PermanentError ().code ();
771+ auto const code_str = StatusCodeToString (code);
772+ auto const msg = PermanentError ().message ();
773+ EXPECT_THAT (actual, StatusIs (code));
774+ EXPECT_THAT (
775+ span_catcher->GetSpans (),
776+ ElementsAre (AllOf (
777+ SpanNamed (" storage::ParallelUploadFile/ExecuteParallelUploadFile" ),
778+ SpanHasInstrumentationScope (), SpanKindIsClient (),
779+ SpanWithStatus (opentelemetry::trace::StatusCode::kError , msg),
780+ SpanHasAttributes (
781+ OTelAttribute<std::string>(" gl-cpp.status_code" , code_str)))));
782+ }
783+
749784TEST (TracingClientTest, ListBucketAcl) {
750785 auto span_catcher = InstallSpanCatcher ();
751786 auto mock = std::make_shared<MockClient>();
0 commit comments