summaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-11-07 12:44:46 +0100
committerjonmv <venstad@gmail.com>2022-11-07 12:44:46 +0100
commita50efd62aa586b836feb1f394b38c384ab260851 (patch)
tree9b4395e1a1235acb2c0b4bcf616dfcbf583f107b /controller-server/src/test/java/com
parenta48b3b9e2cd688459ddf5143b303f9f929d667c2 (diff)
Copy more state for separate streams ...
Diffstat (limited to 'controller-server/src/test/java/com')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java22
1 files changed, 20 insertions, 2 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java
index 71ce291df36..ab8f696492a 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java
@@ -22,6 +22,7 @@ import java.nio.file.Path;
import java.security.KeyPair;
import java.security.cert.X509Certificate;
import java.time.Instant;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -190,7 +191,7 @@ public class ApplicationPackageTest {
assertEquals(List.of(), new ApplicationPackage(zip).trustedCertificates());
for (int i = 0; i < certificates.size(); i++) {
InputStream in = new ByteArrayInputStream(zip);
- zip = new ApplicationPackageStream(() -> in, __ -> false, addingCertificate(Optional.of(certificates.get(i)))).zipStream().readAllBytes();
+ zip = new ApplicationPackageStream(() -> in, () -> __ -> false, addingCertificate(Optional.of(certificates.get(i)))).zipStream().readAllBytes();
assertEquals(certificates.subList(0, i + 1), new ApplicationPackage(zip).trustedCertificates());
}
}
@@ -232,8 +233,12 @@ public class ApplicationPackageTest {
"unused1.xml", in -> null,
"unused2.xml", __ -> new ByteArrayInputStream(jdiscXml.getBytes(UTF_8)));
Predicate<String> truncation = name -> name.endsWith(".xml");
- ApplicationPackageStream modifier = new ApplicationPackageStream(() -> new ByteArrayInputStream(zip), truncation, replacements);
+ ApplicationPackageStream modifier = new ApplicationPackageStream(() -> new ByteArrayInputStream(Arrays.copyOf(zip, zip.length)), () -> truncation, replacements);
out.reset();
+
+ InputStream partiallyRead = modifier.zipStream();
+ assertEquals(15, partiallyRead.readNBytes(15).length);
+
modifier.zipStream().transferTo(out);
assertEquals(Map.of("deployment.xml", deploymentXml + "\n\n",
@@ -262,6 +267,19 @@ public class ApplicationPackageTest {
"content/nodes.xml", nodesXml,
"gurba", "gurba"))).metaDataZip()),
unzip(modifier.truncatedPackage().metaDataZip()));
+
+ assertArrayEquals(modifier.zipStream().readAllBytes(),
+ modifier.zipStream().readAllBytes());
+
+ ByteArrayOutputStream byteAtATime = new ByteArrayOutputStream();
+ try (InputStream stream = modifier.zipStream()) {
+ for (int b; (b = stream.read()) != -1; ) byteAtATime.write(b);
+ assertArrayEquals(modifier.zipStream().readAllBytes(),
+ byteAtATime.toByteArray());
+ }
+
+ assertEquals(modifier.zipStream().readAllBytes().length,
+ 15 + partiallyRead.readAllBytes().length);
}
}