Skip to content

Commit

Permalink
Increasing max size of results payload (#1150)
Browse files Browse the repository at this point in the history
  • Loading branch information
craigatk authored Oct 21, 2023
1 parent 41dfccc commit d3475a0
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
package projektor.parser.grouped;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.StreamReadConstraints;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import projektor.parser.grouped.model.GroupedResults;

import java.io.IOException;

public class GroupedResultsParser {
private final ObjectMapper mapper = new ObjectMapper()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
private static final int MAX_PAYLOAD_STRING_LENGTH = 50_000_000; // default is 20_000_000

private final ObjectMapper mapper;

public GroupedResultsParser() {
this.mapper = new ObjectMapper()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

this.mapper.getFactory()
.setStreamReadConstraints(StreamReadConstraints.builder().maxStringLength(MAX_PAYLOAD_STRING_LENGTH).build());
}

public GroupedResults parseGroupedResults(String groupedResultsBlob) throws IOException {
return mapper.readValue(groupedResultsBlob, GroupedResults.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,4 +136,24 @@ class GroupedResultsParserSpec extends Specification {
parsedResults.performanceResults.size() == 1
groupedResults.performanceResults.find { it.name == "perf-1" }
}

def "should not fail on really large payloads"() {
String largeBlob = (1..5_000_000).collect { i -> i }.join()

GroupedTestSuites groupedTestSuite = new GroupedTestSuites(
groupName: "MyGroup",
groupLabel: "MyLabel",
directory: "path/to/my-group",
testSuitesBlob: """<testsuites>${largeBlob}</testsuites>"""
)

GroupedResults groupedResults = new GroupedResults(groupedTestSuites: [groupedTestSuite])

when:
String groupedResultsXml = mapper.writeValueAsString(groupedResults)
GroupedResults parsedGroupedResults = groupedResultsParser.parseGroupedResults(groupedResultsXml)

then:
parsedGroupedResults.groupedTestSuites.size() == 1
}
}

0 comments on commit d3475a0

Please sign in to comment.