@@ -443,73 +443,6 @@ public void testDownloadDirectoryNested() throws Exception {
443443 assertThat (execRoot .getRelative ("a/bar/wobble/qux" ).isExecutable ()).isFalse ();
444444 }
445445
446- @ Test
447- public void testUploadBlobCacheHitWithRetries () throws Exception {
448- final GrpcRemoteCache client = newClient ();
449- final Digest digest = DIGEST_UTIL .computeAsUtf8 ("abcdefg" );
450- serviceRegistry .addService (
451- new ContentAddressableStorageImplBase () {
452- private int numErrors = 4 ;
453-
454- @ Override
455- public void findMissingBlobs (
456- FindMissingBlobsRequest request ,
457- StreamObserver <FindMissingBlobsResponse > responseObserver ) {
458- if (numErrors -- <= 0 ) {
459- responseObserver .onNext (FindMissingBlobsResponse .getDefaultInstance ());
460- responseObserver .onCompleted ();
461- } else {
462- responseObserver .onError (Status .UNAVAILABLE .asRuntimeException ());
463- }
464- }
465- });
466- assertThat (client .uploadBlob ("abcdefg" .getBytes (UTF_8 ))).isEqualTo (digest );
467- }
468-
469- @ Test
470- public void testUploadBlobSingleChunk () throws Exception {
471- final GrpcRemoteCache client = newClient ();
472- final Digest digest = DIGEST_UTIL .computeAsUtf8 ("abcdefg" );
473- serviceRegistry .addService (
474- new ContentAddressableStorageImplBase () {
475- @ Override
476- public void findMissingBlobs (
477- FindMissingBlobsRequest request ,
478- StreamObserver <FindMissingBlobsResponse > responseObserver ) {
479- responseObserver .onNext (
480- FindMissingBlobsResponse .newBuilder ().addMissingBlobDigests (digest ).build ());
481- responseObserver .onCompleted ();
482- }
483- });
484- serviceRegistry .addService (
485- new ByteStreamImplBase () {
486- @ Override
487- public StreamObserver <WriteRequest > write (
488- final StreamObserver <WriteResponse > responseObserver ) {
489- return new StreamObserver <WriteRequest >() {
490- @ Override
491- public void onNext (WriteRequest request ) {
492- assertThat (request .getResourceName ()).contains (digest .getHash ());
493- assertThat (request .getFinishWrite ()).isTrue ();
494- assertThat (request .getData ().toStringUtf8 ()).isEqualTo ("abcdefg" );
495- }
496-
497- @ Override
498- public void onCompleted () {
499- responseObserver .onNext (WriteResponse .newBuilder ().setCommittedSize (7 ).build ());
500- responseObserver .onCompleted ();
501- }
502-
503- @ Override
504- public void onError (Throwable t ) {
505- fail ("An error occurred: " + t );
506- }
507- };
508- }
509- });
510- assertThat (client .uploadBlob ("abcdefg" .getBytes (UTF_8 ))).isEqualTo (digest );
511- }
512-
513446 static class TestChunkedRequestObserver implements StreamObserver <WriteRequest > {
514447 private final StreamObserver <WriteResponse > responseObserver ;
515448 private final String contents ;
@@ -559,46 +492,6 @@ public void onError(Throwable t) {
559492 }
560493 }
561494
562- private Answer <StreamObserver <WriteRequest >> blobChunkedWriteAnswer (
563- final String contents , final int chunkSize ) {
564- return new Answer <StreamObserver <WriteRequest >>() {
565- @ Override
566- @ SuppressWarnings ("unchecked" )
567- public StreamObserver <WriteRequest > answer (InvocationOnMock invocation ) {
568- return new TestChunkedRequestObserver (
569- (StreamObserver <WriteResponse >) invocation .getArguments ()[0 ], contents , chunkSize );
570- }
571- };
572- }
573-
574- @ Test
575- public void testUploadBlobMultipleChunks () throws Exception {
576- final Digest digest = DIGEST_UTIL .computeAsUtf8 ("abcdef" );
577- serviceRegistry .addService (
578- new ContentAddressableStorageImplBase () {
579- @ Override
580- public void findMissingBlobs (
581- FindMissingBlobsRequest request ,
582- StreamObserver <FindMissingBlobsResponse > responseObserver ) {
583- responseObserver .onNext (
584- FindMissingBlobsResponse .newBuilder ().addMissingBlobDigests (digest ).build ());
585- responseObserver .onCompleted ();
586- }
587- });
588-
589- ByteStreamImplBase mockByteStreamImpl = Mockito .mock (ByteStreamImplBase .class );
590- serviceRegistry .addService (mockByteStreamImpl );
591- for (int chunkSize = 1 ; chunkSize <= 6 ; ++chunkSize ) {
592- GrpcRemoteCache client = newClient ();
593- Chunker .setDefaultChunkSizeForTesting (chunkSize );
594- when (mockByteStreamImpl .write (ArgumentMatchers .<StreamObserver <WriteResponse >>any ()))
595- .thenAnswer (blobChunkedWriteAnswer ("abcdef" , chunkSize ));
596- assertThat (client .uploadBlob ("abcdef" .getBytes (UTF_8 ))).isEqualTo (digest );
597- }
598- Mockito .verify (mockByteStreamImpl , Mockito .times (6 ))
599- .write (ArgumentMatchers .<StreamObserver <WriteResponse >>any ());
600- }
601-
602495 @ Test
603496 public void testUploadDirectory () throws Exception {
604497 final GrpcRemoteCache client = newClient ();
0 commit comments