Skip to content

Commit d3f1659

Browse files
authored
Merge pull request #512 from RUB-NDS/fuzzing_cert
Fixed test failure on Windows due to os-dependent \n used as eol deli…
2 parents dc342b0 + d9f977c commit d3f1659

File tree

3 files changed

+101
-85
lines changed

3 files changed

+101
-85
lines changed

TLS-Core/src/test/java/de/rub/nds/tlsattacker/core/workflow/WorkflowTraceSerializerTest.java

Lines changed: 78 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
import java.io.ByteArrayOutputStream;
2828
import java.io.File;
2929
import java.io.IOException;
30+
import java.io.PrintWriter;
31+
import java.io.StringWriter;
3032
import java.util.LinkedList;
3133
import java.util.List;
3234
import javax.xml.bind.JAXBException;
@@ -121,22 +123,26 @@ public void serializeWithSingleConnectionTest() {
121123
action = new SendAction(new ClientHelloMessage(config));
122124
trace.addTlsAction(action);
123125

124-
StringBuilder sb = new StringBuilder();
125-
sb.append("<workflowTrace>\n");
126-
sb.append(" <Send>\n");
127-
sb.append(" <messages>\n");
128-
sb.append(" <ClientHello>\n");
129-
sb.append(" <extensions>\n");
130-
sb.append(" <ECPointFormat/>\n");
131-
sb.append(" <EllipticCurves/>\n");
132-
sb.append(" <SignatureAndHashAlgorithmsExtension/>\n");
133-
sb.append(" <RenegotiationInfoExtension/>\n");
134-
sb.append(" </extensions>\n");
135-
sb.append(" </ClientHello>\n");
136-
sb.append(" </messages>\n");
137-
sb.append(" </Send>\n");
138-
sb.append("</workflowTrace>\n");
139-
String expected = sb.toString();
126+
// used PrintWriter and not StringBuilder as it offers
127+
// OS-independent functionality for printing new lines
128+
StringWriter sw = new StringWriter();
129+
PrintWriter pw = new PrintWriter(sw);
130+
pw.println("<workflowTrace>");
131+
pw.println(" <Send>");
132+
pw.println(" <messages>");
133+
pw.println(" <ClientHello>");
134+
pw.println(" <extensions>");
135+
pw.println(" <ECPointFormat/>");
136+
pw.println(" <EllipticCurves/>");
137+
pw.println(" <SignatureAndHashAlgorithmsExtension/>");
138+
pw.println(" <RenegotiationInfoExtension/>");
139+
pw.println(" </extensions>");
140+
pw.println(" </ClientHello>");
141+
pw.println(" </messages>");
142+
pw.println(" </Send>");
143+
pw.println("</workflowTrace>");
144+
pw.close();
145+
String expected = sw.toString();
140146

141147
DefaultNormalizeFilter.normalizeAndFilter(trace, config);
142148
String actual = WorkflowTraceSerializer.write(trace);
@@ -164,27 +170,29 @@ public void serializeWithSingleCustomConnectionTest() {
164170
action.setConnectionAlias(con.getAlias());
165171
trace.addTlsAction(action);
166172

167-
StringBuilder sb = new StringBuilder("");
168-
sb.append("<workflowTrace>\n");
169-
sb.append(" <OutboundConnection>\n");
170-
sb.append(" <alias>theAlias</alias>\n");
171-
sb.append(" <port>1111</port>\n");
172-
sb.append(" <hostname>host1111</hostname>\n");
173-
sb.append(" </OutboundConnection>\n");
174-
sb.append(" <Send>\n");
175-
sb.append(" <messages>\n");
176-
sb.append(" <ClientHello>\n");
177-
sb.append(" <extensions>\n");
178-
sb.append(" <ECPointFormat/>\n");
179-
sb.append(" <EllipticCurves/>\n");
180-
sb.append(" <SignatureAndHashAlgorithmsExtension/>\n");
181-
sb.append(" <RenegotiationInfoExtension/>\n");
182-
sb.append(" </extensions>\n");
183-
sb.append(" </ClientHello>\n");
184-
sb.append(" </messages>\n");
185-
sb.append(" </Send>\n");
186-
sb.append("</workflowTrace>\n");
187-
String expected = sb.toString();
173+
StringWriter sw = new StringWriter();
174+
PrintWriter pw = new PrintWriter(sw);
175+
pw.println("<workflowTrace>");
176+
pw.println(" <OutboundConnection>");
177+
pw.println(" <alias>theAlias</alias>");
178+
pw.println(" <port>1111</port>");
179+
pw.println(" <hostname>host1111</hostname>");
180+
pw.println(" </OutboundConnection>");
181+
pw.println(" <Send>");
182+
pw.println(" <messages>");
183+
pw.println(" <ClientHello>");
184+
pw.println(" <extensions>");
185+
pw.println(" <ECPointFormat/>");
186+
pw.println(" <EllipticCurves/>");
187+
pw.println(" <SignatureAndHashAlgorithmsExtension/>");
188+
pw.println(" <RenegotiationInfoExtension/>");
189+
pw.println(" </extensions>");
190+
pw.println(" </ClientHello>");
191+
pw.println(" </messages>");
192+
pw.println(" </Send>");
193+
pw.println("</workflowTrace>");
194+
pw.close();
195+
String expected = sw.toString();
188196

189197
DefaultNormalizeFilter.normalizeAndFilter(trace, config);
190198
String actual = WorkflowTraceSerializer.write(trace);
@@ -214,37 +222,39 @@ public void serializeWithMultipleCustomConnectionTest() {
214222
action = new SendAction(con3.getAlias(), new ClientHelloMessage(config));
215223
trace.addTlsAction(action);
216224

217-
StringBuilder sb = new StringBuilder("");
218-
sb.append("<workflowTrace>\n");
219-
sb.append(" <OutboundConnection>\n");
220-
sb.append(" <alias>alias1</alias>\n");
221-
sb.append(" <port>1111</port>\n");
222-
sb.append(" <hostname>host1111</hostname>\n");
223-
sb.append(" </OutboundConnection>\n");
224-
sb.append(" <OutboundConnection>\n");
225-
sb.append(" <alias>alias2</alias>\n");
226-
sb.append(" <port>1122</port>\n");
227-
sb.append(" <hostname>host2222</hostname>\n");
228-
sb.append(" </OutboundConnection>\n");
229-
sb.append(" <InboundConnection>\n");
230-
sb.append(" <alias>alias3</alias>\n");
231-
sb.append(" <port>1313</port>\n");
232-
sb.append(" </InboundConnection>\n");
233-
sb.append(" <Send>\n");
234-
sb.append(" <connectionAlias>alias3</connectionAlias>\n");
235-
sb.append(" <messages>\n");
236-
sb.append(" <ClientHello>\n");
237-
sb.append(" <extensions>\n");
238-
sb.append(" <ECPointFormat/>\n");
239-
sb.append(" <EllipticCurves/>\n");
240-
sb.append(" <SignatureAndHashAlgorithmsExtension/>\n");
241-
sb.append(" <RenegotiationInfoExtension/>\n");
242-
sb.append(" </extensions>\n");
243-
sb.append(" </ClientHello>\n");
244-
sb.append(" </messages>\n");
245-
sb.append(" </Send>\n");
246-
sb.append("</workflowTrace>\n");
247-
String expected = sb.toString();
225+
StringWriter sw = new StringWriter();
226+
PrintWriter pw = new PrintWriter(sw);
227+
pw.println("<workflowTrace>");
228+
pw.println(" <OutboundConnection>");
229+
pw.println(" <alias>alias1</alias>");
230+
pw.println(" <port>1111</port>");
231+
pw.println(" <hostname>host1111</hostname>");
232+
pw.println(" </OutboundConnection>");
233+
pw.println(" <OutboundConnection>");
234+
pw.println(" <alias>alias2</alias>");
235+
pw.println(" <port>1122</port>");
236+
pw.println(" <hostname>host2222</hostname>");
237+
pw.println(" </OutboundConnection>");
238+
pw.println(" <InboundConnection>");
239+
pw.println(" <alias>alias3</alias>");
240+
pw.println(" <port>1313</port>");
241+
pw.println(" </InboundConnection>");
242+
pw.println(" <Send>");
243+
pw.println(" <connectionAlias>alias3</connectionAlias>");
244+
pw.println(" <messages>");
245+
pw.println(" <ClientHello>");
246+
pw.println(" <extensions>");
247+
pw.println(" <ECPointFormat/>");
248+
pw.println(" <EllipticCurves/>");
249+
pw.println(" <SignatureAndHashAlgorithmsExtension/>");
250+
pw.println(" <RenegotiationInfoExtension/>");
251+
pw.println(" </extensions>");
252+
pw.println(" </ClientHello>");
253+
pw.println(" </messages>");
254+
pw.println(" </Send>");
255+
pw.println("</workflowTrace>");
256+
pw.close();
257+
String expected = sw.toString();
248258

249259
DefaultNormalizeFilter.normalizeAndFilter(trace, config);
250260
String actual = WorkflowTraceSerializer.write(trace);

TLS-Core/src/test/java/de/rub/nds/tlsattacker/core/workflow/action/ActionTestUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ public static <T extends TlsAction> void marshalingEmptyActionYieldsMinimalOutpu
8484
+ " does not end with string 'Action'");
8585
}
8686
StringBuilder sb = new StringBuilder("");
87-
sb.append("<workflowTrace>\n");
88-
sb.append(" <").append(xmlName).append("/>\n");
89-
sb.append("</workflowTrace>\n");
87+
sb.append("<workflowTrace>").append(System.lineSeparator());
88+
sb.append(" <").append(xmlName).append("/>").append(System.lineSeparator());
89+
sb.append("</workflowTrace>").append(System.lineSeparator());
9090
String expected = sb.toString();
9191

9292
Config config = Config.createConfig();

TLS-Core/src/test/java/de/rub/nds/tlsattacker/core/workflow/action/ForwardMessagesActionTest.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import de.rub.nds.tlsattacker.core.workflow.filter.Filter;
3333
import de.rub.nds.tlsattacker.transport.ConnectionEndType;
3434
import java.io.IOException;
35+
import java.io.PrintWriter;
3536
import java.io.StringReader;
3637
import java.io.StringWriter;
3738
import java.util.ArrayList;
@@ -150,20 +151,25 @@ public void marshalingEmptyActionYieldsMinimalOutput() {
150151
try {
151152
action = new ForwardMessagesAction(ctx1Alias, ctx2Alias);
152153
trace.addTlsAction(action);
153-
StringBuilder sb = new StringBuilder("");
154-
sb.append("<workflowTrace>\n");
155-
sb.append(" <OutboundConnection>\n");
156-
sb.append(" <alias>ctx1</alias>\n");
157-
sb.append(" </OutboundConnection>\n");
158-
sb.append(" <InboundConnection>\n");
159-
sb.append(" <alias>ctx2</alias>\n");
160-
sb.append(" </InboundConnection>\n");
161-
sb.append(" <ForwardMessages>\n");
162-
sb.append(" <from>ctx1</from>\n");
163-
sb.append(" <to>ctx2</to>\n");
164-
sb.append(" </ForwardMessages>\n");
165-
sb.append("</workflowTrace>\n");
166-
String expected = sb.toString();
154+
155+
// used PrintWriter and not StringBuilder as it offers
156+
// OS-independent functionality for printing new lines
157+
StringWriter sw = new StringWriter();
158+
PrintWriter pw = new PrintWriter(sw);
159+
pw.println("<workflowTrace>");
160+
pw.println(" <OutboundConnection>");
161+
pw.println(" <alias>ctx1</alias>");
162+
pw.println(" </OutboundConnection>");
163+
pw.println(" <InboundConnection>");
164+
pw.println(" <alias>ctx2</alias>");
165+
pw.println(" </InboundConnection>");
166+
pw.println(" <ForwardMessages>");
167+
pw.println(" <from>ctx1</from>");
168+
pw.println(" <to>ctx2</to>");
169+
pw.println(" </ForwardMessages>");
170+
pw.println("</workflowTrace>");
171+
pw.close();
172+
String expected = sw.toString();
167173

168174
Filter filter = new DefaultFilter(config);
169175
filter.applyFilter(trace);

0 commit comments

Comments
 (0)