[tor-commits] [metrics-lib/master] Tweak tests for removing deprecated code for #22154.
karsten at torproject.org
karsten at torproject.org
Tue Jun 27 15:05:14 UTC 2017
commit 1b3fd15f92d5fe5f71e62d8a76ee847134cd5e07
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Mon Jun 26 22:12:10 2017 +0200
Tweak tests for removing deprecated code for #22154.
This patch makes the following changes:
- Remove now unused import in DescriptorParser.
- Rename methods in DescriptorParserImpl to please checkstyle.
- Tweak a few things in DescriptorReaderImplTest, including accepting
varargs for dirs and putting back expected excluded files.
- Remove tests that were previously testing deprecated methods which
are now gone.
- Change the two tests ending in NoDescriptors() back so that they
really don't read any descriptors.
- Put back tests for unrecognized lines, but don't expect
DescriptorParseExceptions anymore and instead check
getUnrecognizedLines().
---
.../torproject/descriptor/DescriptorParser.java | 1 -
.../descriptor/impl/DescriptorParserImpl.java | 28 +++++++-------
.../descriptor/impl/DescriptorParserImplTest.java | 5 +--
.../descriptor/impl/DescriptorReaderImplTest.java | 45 ++++++++--------------
.../impl/RelayNetworkStatusVoteImplTest.java | 42 +++++++++++++++++++-
.../descriptor/impl/ServerDescriptorImplTest.java | 21 ++++++++++
6 files changed, 93 insertions(+), 49 deletions(-)
diff --git a/src/main/java/org/torproject/descriptor/DescriptorParser.java b/src/main/java/org/torproject/descriptor/DescriptorParser.java
index 0ad2790..259510f 100644
--- a/src/main/java/org/torproject/descriptor/DescriptorParser.java
+++ b/src/main/java/org/torproject/descriptor/DescriptorParser.java
@@ -4,7 +4,6 @@
package org.torproject.descriptor;
import java.io.File;
-import java.util.List;
/**
* Descriptor source that parses descriptors from raw descriptor contents.
diff --git a/src/main/java/org/torproject/descriptor/impl/DescriptorParserImpl.java b/src/main/java/org/torproject/descriptor/impl/DescriptorParserImpl.java
index d39343d..ac7ff9c 100644
--- a/src/main/java/org/torproject/descriptor/impl/DescriptorParserImpl.java
+++ b/src/main/java/org/torproject/descriptor/impl/DescriptorParserImpl.java
@@ -52,7 +52,7 @@ public class DescriptorParserImpl implements DescriptorParser {
NL + Key.NETWORK_STATUS_VERSION.keyword + SP + "3"))
&& firstLines.contains(
NL + Key.VOTE_STATUS.keyword + SP + "consensus" + NL))) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.NETWORK_STATUS_VERSION, RelayNetworkStatusConsensusImpl.class);
} else if (firstLines.startsWith("@type network-status-vote-3 1.")
|| ((firstLines.startsWith(
@@ -61,7 +61,7 @@ public class DescriptorParserImpl implements DescriptorParser {
NL + Key.NETWORK_STATUS_VERSION.keyword + SP + "3" + NL))
&& firstLines.contains(
NL + Key.VOTE_STATUS.keyword + SP + "vote" + NL))) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.NETWORK_STATUS_VERSION, RelayNetworkStatusVoteImpl.class);
} else if (firstLines.startsWith("@type bridge-network-status 1.")
|| firstLines.startsWith(Key.R.keyword + SP)) {
@@ -71,36 +71,36 @@ public class DescriptorParserImpl implements DescriptorParser {
descriptorFile, fileName));
return parsedDescriptors;
} else if (firstLines.startsWith("@type bridge-server-descriptor 1.")) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.ROUTER, BridgeServerDescriptorImpl.class);
} else if (firstLines.startsWith("@type server-descriptor 1.")
|| firstLines.startsWith(Key.ROUTER.keyword + SP)
|| firstLines.contains(NL + Key.ROUTER.keyword + SP)) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.ROUTER, RelayServerDescriptorImpl.class);
} else if (firstLines.startsWith("@type bridge-extra-info 1.")) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.EXTRA_INFO, BridgeExtraInfoDescriptorImpl.class);
} else if (firstLines.startsWith("@type extra-info 1.")
|| firstLines.startsWith(Key.EXTRA_INFO.keyword + SP)
|| firstLines.contains(NL + Key.EXTRA_INFO.keyword + SP)) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.EXTRA_INFO, RelayExtraInfoDescriptorImpl.class);
} else if (firstLines.startsWith("@type microdescriptor 1.")
|| firstLines.startsWith(Key.ONION_KEY.keyword + NL)
|| firstLines.contains(NL + Key.ONION_KEY.keyword + NL)) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.ONION_KEY, MicrodescriptorImpl.class);
} else if (firstLines.startsWith("@type bridge-pool-assignment 1.")
|| firstLines.startsWith(Key.BRIDGE_POOL_ASSIGNMENT.keyword + SP)
|| firstLines.contains(NL + Key.BRIDGE_POOL_ASSIGNMENT.keyword + SP)) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.BRIDGE_POOL_ASSIGNMENT, BridgePoolAssignmentImpl.class);
} else if (firstLines.startsWith("@type dir-key-certificate-3 1.")
|| firstLines.startsWith(Key.DIR_KEY_CERTIFICATE_VERSION.keyword + SP)
|| firstLines.contains(
NL + Key.DIR_KEY_CERTIFICATE_VERSION.keyword + SP)) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.DIR_KEY_CERTIFICATE_VERSION, DirectoryKeyCertificateImpl.class);
} else if (firstLines.startsWith("@type tordnsel 1.")
|| firstLines.startsWith("ExitNode" + SP)
@@ -114,12 +114,12 @@ public class DescriptorParserImpl implements DescriptorParser {
Key.NETWORK_STATUS_VERSION.keyword + SP + "2" + NL)
|| firstLines.contains(
NL + Key.NETWORK_STATUS_VERSION.keyword + SP + "2" + NL)) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.NETWORK_STATUS_VERSION, RelayNetworkStatusImpl.class);
} else if (firstLines.startsWith("@type directory 1.")
|| firstLines.startsWith(Key.SIGNED_DIRECTORY.keyword + NL)
|| firstLines.contains(NL + Key.SIGNED_DIRECTORY.keyword + NL)) {
- return this.parseDescriptors(rawDescriptorBytes, descriptorFile,
+ return this.parseOneOrMoreDescriptors(rawDescriptorBytes, descriptorFile,
Key.SIGNED_DIRECTORY, RelayDirectoryImpl.class);
} else if (firstLines.startsWith("@type torperf 1.")) {
return TorperfResultImpl.parseTorperfResults(rawDescriptorBytes,
@@ -130,7 +130,7 @@ public class DescriptorParserImpl implements DescriptorParser {
}
}
- private List<Descriptor> parseDescriptors(byte[] rawDescriptorBytes,
+ private List<Descriptor> parseOneOrMoreDescriptors(byte[] rawDescriptorBytes,
File descriptorFile, Key key,
Class<? extends DescriptorImpl> descriptorClass)
throws DescriptorParseException {
@@ -183,7 +183,7 @@ public class DescriptorParserImpl implements DescriptorParser {
int[] offsetAndLength = new int[] { startAnnotations,
endDescriptor - startAnnotations };
try {
- parsedDescriptors.add(this.parseDescriptor(rawDescriptorBytes,
+ parsedDescriptors.add(this.parseOneDescriptor(rawDescriptorBytes,
offsetAndLength, descriptorFile, constructor));
} catch (DescriptorParseException e) {
parsedDescriptors.add(new UnparseableDescriptorImpl(
@@ -194,7 +194,7 @@ public class DescriptorParserImpl implements DescriptorParser {
return parsedDescriptors;
}
- Descriptor parseDescriptor(byte[] rawDescriptorBytes,
+ Descriptor parseOneDescriptor(byte[] rawDescriptorBytes,
int[] offsetAndLength, File descriptorFile,
Constructor<? extends DescriptorImpl> constructor)
throws DescriptorParseException {
diff --git a/src/test/java/org/torproject/descriptor/impl/DescriptorParserImplTest.java b/src/test/java/org/torproject/descriptor/impl/DescriptorParserImplTest.java
index df441f3..42d0cde 100644
--- a/src/test/java/org/torproject/descriptor/impl/DescriptorParserImplTest.java
+++ b/src/test/java/org/torproject/descriptor/impl/DescriptorParserImplTest.java
@@ -20,8 +20,7 @@ public class DescriptorParserImplTest {
@Rule
public ExpectedException thrown = ExpectedException.none();
- private TestDescriptor makeTestDesc(byte[] bytes)
- throws Exception {
+ private TestDescriptor makeTestDesc(byte[] bytes) throws Exception {
return new TestDescriptor(bytes, new int[]{0, bytes.length});
}
@@ -61,7 +60,7 @@ public class DescriptorParserImplTest {
this.thrown.expectMessage("'176x.158.53.63' in line 'router UbuntuCore169 "
+ "176x.158.53.63 44583 0 0' is not a valid IPv4 address.");
DescriptorParserImpl dpi = new DescriptorParserImpl();
- dpi.parseDescriptor(DEFECT.getBytes(),
+ dpi.parseOneDescriptor(DEFECT.getBytes(),
new int[]{0, DEFECT.getBytes().length}, null, constructor);
}
diff --git a/src/test/java/org/torproject/descriptor/impl/DescriptorReaderImplTest.java b/src/test/java/org/torproject/descriptor/impl/DescriptorReaderImplTest.java
index a00e5ba..0a3791e 100644
--- a/src/test/java/org/torproject/descriptor/impl/DescriptorReaderImplTest.java
+++ b/src/test/java/org/torproject/descriptor/impl/DescriptorReaderImplTest.java
@@ -63,9 +63,9 @@ public class DescriptorReaderImplTest {
parseHistoryContents.getBytes(StandardCharsets.UTF_8));
}
- private int readAllDescriptors(File dir) {
+ private int readAllDescriptors(File... dirs) {
Iterator<Descriptor> descriptors = this.descriptorReader
- .readDescriptors(dir).iterator();
+ .readDescriptors(dirs).iterator();
int count = 0;
while (descriptors.hasNext()) {
count++;
@@ -75,8 +75,10 @@ public class DescriptorReaderImplTest {
}
private void assertExcludedFilesParsedFilesAndHistoryFileLines(
- int expectedParsedFiles,
+ int expectedExcludedFiles, int expectedParsedFiles,
int expectedHistoryFileLines) throws IOException {
+ assertEquals(expectedExcludedFiles,
+ this.descriptorReader.getExcludedFiles().size());
assertEquals(expectedParsedFiles,
this.descriptorReader.getParsedFiles().size());
assertEquals(expectedHistoryFileLines,
@@ -87,38 +89,21 @@ public class DescriptorReaderImplTest {
@Test
public void testDescriptors() throws IOException {
this.readAllDescriptors(this.inputDirectory);
- this.assertExcludedFilesParsedFilesAndHistoryFileLines(2, 1);
+ this.assertExcludedFilesParsedFilesAndHistoryFileLines(0, 2, 1);
}
@Test
public void testNoDescriptors() throws Exception {
// calling readAllDescriptors fails with IAE
Iterator<Descriptor> descriptors = this.descriptorReader
- .readDescriptors(null).iterator();
+ .readDescriptors().iterator();
int count = 0;
while (descriptors.hasNext()) {
count++;
descriptors.next();
}
assertEquals(count, 0);
- this.assertExcludedFilesParsedFilesAndHistoryFileLines(0, 1);
- }
-
- @Test
- @SuppressWarnings("deprecation")
- public void testSetExcludeFilesDescriptors() throws InterruptedException,
- IOException {
- this.readAllDescriptors(this.inputDirectory);
- Thread.sleep(100L); /* It may take a moment to write the history file. */
- this.assertExcludedFilesParsedFilesAndHistoryFileLines(2, 1);
- }
-
- @Test
- public void testSetExcludeFilesNoDescriptors() throws InterruptedException,
- IOException {
- this.readAllDescriptors(this.inputDirectory);
- Thread.sleep(100L); /* It may take a moment to write the history file. */
- this.assertExcludedFilesParsedFilesAndHistoryFileLines(2, 1);
+ this.assertExcludedFilesParsedFilesAndHistoryFileLines(0, 0, 1);
}
@Test
@@ -126,29 +111,29 @@ public class DescriptorReaderImplTest {
this.descriptorReader.setHistoryFile(this.historyFile);
this.readAllDescriptors(this.inputDirectory);
descriptorReader.saveHistoryFile(this.historyFile);
- this.assertExcludedFilesParsedFilesAndHistoryFileLines(1, 2);
+ this.assertExcludedFilesParsedFilesAndHistoryFileLines(1, 1, 2);
}
@Test
public void testSetHistoryFileNoDescriptors() throws IOException {
this.descriptorReader.setHistoryFile(this.historyFile);
- this.readAllDescriptors(this.inputDirectory);
+ this.readAllDescriptors();
this.descriptorReader.saveHistoryFile(this.historyFile);
- this.assertExcludedFilesParsedFilesAndHistoryFileLines(1, 2);
+ this.assertExcludedFilesParsedFilesAndHistoryFileLines(0, 0, 0);
}
@Test
public void testSetExcludedFilesDescriptors() throws IOException {
this.descriptorReader.setExcludedFiles(this.historyMap);
this.readAllDescriptors(this.inputDirectory);
- this.assertExcludedFilesParsedFilesAndHistoryFileLines(1, 1);
+ this.assertExcludedFilesParsedFilesAndHistoryFileLines(1, 1, 1);
}
@Test
public void testSetExcludedFilesNoDescriptors() throws IOException {
this.descriptorReader.setExcludedFiles(this.historyMap);
- this.readAllDescriptors(this.inputDirectory);
- this.assertExcludedFilesParsedFilesAndHistoryFileLines(1, 1);
+ this.readAllDescriptors();
+ this.assertExcludedFilesParsedFilesAndHistoryFileLines(0, 0, 1);
}
@Test
@@ -159,7 +144,7 @@ public class DescriptorReaderImplTest {
int count = this.readAllDescriptors(this.inputDirectory);
assertEquals("Two files should have been parsed.", 2, count);
descriptorReader.saveHistoryFile(this.historyFile);
- this.assertExcludedFilesParsedFilesAndHistoryFileLines(2, 2);
+ this.assertExcludedFilesParsedFilesAndHistoryFileLines(0, 2, 2);
}
}
diff --git a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java
index 8dc89bd..aba55f4 100644
--- a/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java
+++ b/src/test/java/org/torproject/descriptor/impl/RelayNetworkStatusVoteImplTest.java
@@ -962,6 +962,16 @@ public class RelayNetworkStatusVoteImplTest {
}
@Test
+ public void testConsensusMethodTwoLines()
+ throws DescriptorParseException {
+ String consensusMethodLine = "consensus-method 1";
+ RelayNetworkStatusVote vote = VoteBuilder.createWithConsensusMethodsLine(
+ consensusMethodLine + "\n" + consensusMethodLine);
+ assertEquals(Arrays.asList(consensusMethodLine, consensusMethodLine),
+ vote.getUnrecognizedLines());
+ }
+
+ @Test
public void testPublishedNoLine() throws DescriptorParseException {
this.thrown.expect(DescriptorParseException.class);
this.thrown.expectMessage("Keyword 'published' is contained 0 times, "
@@ -1770,7 +1780,7 @@ public class RelayNetworkStatusVoteImplTest {
assertEquals(signingKeyDigestSha1,
secondSignature.getSigningKeyDigestSha1Hex());
assertEquals(signatureSha1 + "\n", secondSignature.getSignature());
- assertEquals(signingKeyDigestSha1, vote.getSignatures().get(0)
+ assertEquals(signingKeyDigestSha1, vote.getSignatures().get(1)
.getSigningKeyDigestSha1Hex());
assertEquals("c0d58c8d3c3695526f6eb5c0d9f8452b2234d303",
vote.getDigestSha1Hex());
@@ -1789,6 +1799,16 @@ public class RelayNetworkStatusVoteImplTest {
}
@Test
+ public void testUnrecognizedHeaderLineFail()
+ throws DescriptorParseException {
+ String unrecognizedLine = "unrecognized-line 1";
+ RelayNetworkStatusVote vote = VoteBuilder.createWithUnrecognizedHeaderLine(
+ unrecognizedLine);
+ assertEquals(Arrays.asList(unrecognizedLine),
+ vote.getUnrecognizedLines());
+ }
+
+ @Test
public void testUnrecognizedHeaderLineIgnore()
throws DescriptorParseException {
String unrecognizedLine = "unrecognized-line 1";
@@ -1800,6 +1820,16 @@ public class RelayNetworkStatusVoteImplTest {
}
@Test
+ public void testUnrecognizedDirSourceLineFail()
+ throws DescriptorParseException {
+ String unrecognizedLine = "unrecognized-line 1";
+ RelayNetworkStatusVote vote =
+ VoteBuilder.createWithUnrecognizedDirSourceLine(unrecognizedLine);
+ assertEquals(Arrays.asList(unrecognizedLine),
+ vote.getUnrecognizedLines());
+ }
+
+ @Test
public void testUnrecognizedDirSourceLineIgnore()
throws DescriptorParseException {
String unrecognizedLine = "unrecognized-line 1";
@@ -1811,6 +1841,16 @@ public class RelayNetworkStatusVoteImplTest {
}
@Test
+ public void testUnrecognizedFooterLineFail()
+ throws DescriptorParseException {
+ String unrecognizedLine = "unrecognized-line 1";
+ RelayNetworkStatusVote vote = VoteBuilder.createWithUnrecognizedFooterLine(
+ unrecognizedLine);
+ assertEquals(Arrays.asList(unrecognizedLine),
+ vote.getUnrecognizedLines());
+ }
+
+ @Test
public void testUnrecognizedFooterLineIgnore()
throws DescriptorParseException {
String unrecognizedLine = "unrecognized-line 1";
diff --git a/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java b/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
index 972e207..534cb0e 100644
--- a/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
+++ b/src/test/java/org/torproject/descriptor/impl/ServerDescriptorImplTest.java
@@ -1675,6 +1675,16 @@ public class ServerDescriptorImplTest {
}
@Test
+ public void testTunnelledDirServerTypo()
+ throws DescriptorParseException {
+ String tunneledDirServerLine = "tunneled-dir-server";
+ ServerDescriptor descriptor = DescriptorBuilder
+ .createWithTunnelledDirServerLine(tunneledDirServerLine);
+ assertEquals(Arrays.asList(tunneledDirServerLine),
+ descriptor.getUnrecognizedLines());
+ }
+
+ @Test
public void testTunnelledDirServerTwice()
throws DescriptorParseException {
this.thrown.expect(DescriptorParseException.class);
@@ -1858,6 +1868,17 @@ public class ServerDescriptorImplTest {
+ ROUTER_SIG_ED25519_LINE);
}
+ @Test
+ public void testEd25519FollowedbyUnrecognizedLine()
+ throws DescriptorParseException {
+ String unrecognizedLine = "unrecognized-line 1";
+ ServerDescriptor serverDecriptor = DescriptorBuilder.createWithEd25519Lines(
+ IDENTITY_ED25519_LINES, MASTER_KEY_ED25519_LINE, ROUTER_SIG_ED25519_LINE
+ + "\n" + unrecognizedLine);
+ assertEquals(Arrays.asList(unrecognizedLine),
+ serverDecriptor.getUnrecognizedLines());
+ }
+
private static final String ONION_KEY_CROSSCERT_LINES =
"onion-key-crosscert\n"
+ "-----BEGIN CROSSCERT-----\n"
More information about the tor-commits
mailing list