Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
1b8bab3a
Commit
1b8bab3a
authored
Jan 29, 2016
by
Jisi Liu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Uncomment the test, which was commented out during integration
parent
5221dcbe
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
184 additions
and
185 deletions
+184
-185
ParseExceptionsTest.java
...rc/test/java/com/google/protobuf/ParseExceptionsTest.java
+184
-185
No files found.
java/core/src/test/java/com/google/protobuf/ParseExceptionsTest.java
View file @
1b8bab3a
...
...
@@ -24,189 +24,188 @@ import static org.junit.Assert.fail;
*/
public
class
ParseExceptionsTest
{
// disable for now for update the maven local repo.
// private interface ParseTester {
// DescriptorProto parse(InputStream in) throws IOException;
// }
//
// private byte serializedProto[];
//
// private void setup() {
// serializedProto = DescriptorProto.getDescriptor().toProto().toByteArray();
// }
//
// private void setupDelimited() {
// ByteArrayOutputStream bos = new ByteArrayOutputStream();
// try {
// DescriptorProto.getDescriptor().toProto().writeDelimitedTo(bos);
// } catch (IOException e) {
// fail("Exception not expected: " + e);
// }
// serializedProto = bos.toByteArray();
// }
//
// @Test public void message_parseFrom_InputStream() {
// setup();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.parseFrom(in);
// }
// });
// }
//
// @Test public void message_parseFrom_InputStreamAndExtensionRegistry() {
// setup();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.parseFrom(in, ExtensionRegistry.newInstance());
// }
// });
// }
//
// @Test public void message_parseFrom_CodedInputStream() {
// setup();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.parseFrom(CodedInputStream.newInstance(in));
// }
// });
// }
//
// @Test public void message_parseFrom_CodedInputStreamAndExtensionRegistry() {
// setup();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.parseFrom(CodedInputStream.newInstance(in),
// ExtensionRegistry.newInstance());
// }
// });
// }
//
// @Test public void message_parseDelimitedFrom_InputStream() {
// setupDelimited();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.parseDelimitedFrom(in);
// }
// });
// }
//
// @Test public void message_parseDelimitedFrom_InputStreamAndExtensionRegistry() {
// setupDelimited();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.parseDelimitedFrom(in, ExtensionRegistry.newInstance());
// }
// });
// }
//
// @Test public void messageBuilder_mergeFrom_InputStream() {
// setup();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.newBuilder().mergeFrom(in).build();
// }
// });
// }
//
// @Test public void messageBuilder_mergeFrom_InputStreamAndExtensionRegistry() {
// setup();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.newBuilder().mergeFrom(in, ExtensionRegistry.newInstance()).build();
// }
// });
// }
//
// @Test public void messageBuilder_mergeFrom_CodedInputStream() {
// setup();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.newBuilder().mergeFrom(CodedInputStream.newInstance(in)).build();
// }
// });
// }
//
// @Test public void messageBuilder_mergeFrom_CodedInputStreamAndExtensionRegistry() {
// setup();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// return DescriptorProto.newBuilder()
// .mergeFrom(CodedInputStream.newInstance(in), ExtensionRegistry.newInstance()).build();
// }
// });
// }
//
// @Test public void messageBuilder_mergeDelimitedFrom_InputStream() {
// setupDelimited();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// DescriptorProto.Builder builder = DescriptorProto.newBuilder();
// builder.mergeDelimitedFrom(in);
// return builder.build();
// }
// });
// }
//
// @Test public void messageBuilder_mergeDelimitedFrom_InputStreamAndExtensionRegistry() {
// setupDelimited();
// verifyExceptions(new ParseTester() {
// public DescriptorProto parse(InputStream in) throws IOException {
// DescriptorProto.Builder builder = DescriptorProto.newBuilder();
// builder.mergeDelimitedFrom(in, ExtensionRegistry.newInstance());
// return builder.build();
// }
// });
// }
//
// private void verifyExceptions(ParseTester parseTester) {
// // No exception
// try {
// assertEquals(DescriptorProto.getDescriptor().toProto(),
// parseTester.parse(new ByteArrayInputStream(serializedProto)));
// } catch (IOException e) {
// fail("No exception expected: " + e);
// }
//
// // IOException
// try {
// // using a "broken" stream that will throw part-way through reading the message
// parseTester.parse(broken(new ByteArrayInputStream(serializedProto)));
// fail("IOException expected but not thrown");
// } catch (IOException e) {
// assertFalse(e instanceof InvalidProtocolBufferException);
// }
//
// // InvalidProtocolBufferException
// try {
// // make the serialized proto invalid
// for (int i = 0; i < 50; i++) {
// serializedProto[i] = -1;
// }
// parseTester.parse(new ByteArrayInputStream(serializedProto));
// fail("InvalidProtocolBufferException expected but not thrown");
// } catch (IOException e) {
// assertTrue(e instanceof InvalidProtocolBufferException);
// }
// }
//
// private InputStream broken(InputStream i) {
// return new FilterInputStream(i) {
// int count = 0;
//
// @Override public int read() throws IOException {
// if (count++ >= 50) {
// throw new IOException("I'm broken!");
// }
// return super.read();
// }
//
// @Override public int read(byte b[], int off, int len) throws IOException {
// if ((count += len) >= 50) {
// throw new IOException("I'm broken!");
// }
// return super.read(b, off, len);
// }
// };
// }
private
interface
ParseTester
{
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
;
}
private
byte
serializedProto
[];
private
void
setup
()
{
serializedProto
=
DescriptorProto
.
getDescriptor
().
toProto
().
toByteArray
();
}
private
void
setupDelimited
()
{
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
try
{
DescriptorProto
.
getDescriptor
().
toProto
().
writeDelimitedTo
(
bos
);
}
catch
(
IOException
e
)
{
fail
(
"Exception not expected: "
+
e
);
}
serializedProto
=
bos
.
toByteArray
();
}
@Test
public
void
message_parseFrom_InputStream
()
{
setup
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
parseFrom
(
in
);
}
});
}
@Test
public
void
message_parseFrom_InputStreamAndExtensionRegistry
()
{
setup
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
parseFrom
(
in
,
ExtensionRegistry
.
newInstance
());
}
});
}
@Test
public
void
message_parseFrom_CodedInputStream
()
{
setup
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
parseFrom
(
CodedInputStream
.
newInstance
(
in
));
}
});
}
@Test
public
void
message_parseFrom_CodedInputStreamAndExtensionRegistry
()
{
setup
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
parseFrom
(
CodedInputStream
.
newInstance
(
in
),
ExtensionRegistry
.
newInstance
());
}
});
}
@Test
public
void
message_parseDelimitedFrom_InputStream
()
{
setupDelimited
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
parseDelimitedFrom
(
in
);
}
});
}
@Test
public
void
message_parseDelimitedFrom_InputStreamAndExtensionRegistry
()
{
setupDelimited
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
parseDelimitedFrom
(
in
,
ExtensionRegistry
.
newInstance
());
}
});
}
@Test
public
void
messageBuilder_mergeFrom_InputStream
()
{
setup
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
newBuilder
().
mergeFrom
(
in
).
build
();
}
});
}
@Test
public
void
messageBuilder_mergeFrom_InputStreamAndExtensionRegistry
()
{
setup
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
newBuilder
().
mergeFrom
(
in
,
ExtensionRegistry
.
newInstance
()).
build
();
}
});
}
@Test
public
void
messageBuilder_mergeFrom_CodedInputStream
()
{
setup
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
newBuilder
().
mergeFrom
(
CodedInputStream
.
newInstance
(
in
)).
build
();
}
});
}
@Test
public
void
messageBuilder_mergeFrom_CodedInputStreamAndExtensionRegistry
()
{
setup
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
return
DescriptorProto
.
newBuilder
()
.
mergeFrom
(
CodedInputStream
.
newInstance
(
in
),
ExtensionRegistry
.
newInstance
()).
build
();
}
});
}
@Test
public
void
messageBuilder_mergeDelimitedFrom_InputStream
()
{
setupDelimited
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
DescriptorProto
.
Builder
builder
=
DescriptorProto
.
newBuilder
();
builder
.
mergeDelimitedFrom
(
in
);
return
builder
.
build
();
}
});
}
@Test
public
void
messageBuilder_mergeDelimitedFrom_InputStreamAndExtensionRegistry
()
{
setupDelimited
();
verifyExceptions
(
new
ParseTester
()
{
public
DescriptorProto
parse
(
InputStream
in
)
throws
IOException
{
DescriptorProto
.
Builder
builder
=
DescriptorProto
.
newBuilder
();
builder
.
mergeDelimitedFrom
(
in
,
ExtensionRegistry
.
newInstance
());
return
builder
.
build
();
}
});
}
private
void
verifyExceptions
(
ParseTester
parseTester
)
{
// No exception
try
{
assertEquals
(
DescriptorProto
.
getDescriptor
().
toProto
(),
parseTester
.
parse
(
new
ByteArrayInputStream
(
serializedProto
)));
}
catch
(
IOException
e
)
{
fail
(
"No exception expected: "
+
e
);
}
// IOException
try
{
// using a "broken" stream that will throw part-way through reading the message
parseTester
.
parse
(
broken
(
new
ByteArrayInputStream
(
serializedProto
)));
fail
(
"IOException expected but not thrown"
);
}
catch
(
IOException
e
)
{
assertFalse
(
e
instanceof
InvalidProtocolBufferException
);
}
// InvalidProtocolBufferException
try
{
// make the serialized proto invalid
for
(
int
i
=
0
;
i
<
50
;
i
++)
{
serializedProto
[
i
]
=
-
1
;
}
parseTester
.
parse
(
new
ByteArrayInputStream
(
serializedProto
));
fail
(
"InvalidProtocolBufferException expected but not thrown"
);
}
catch
(
IOException
e
)
{
assertTrue
(
e
instanceof
InvalidProtocolBufferException
);
}
}
private
InputStream
broken
(
InputStream
i
)
{
return
new
FilterInputStream
(
i
)
{
int
count
=
0
;
@Override
public
int
read
()
throws
IOException
{
if
(
count
++
>=
50
)
{
throw
new
IOException
(
"I'm broken!"
);
}
return
super
.
read
();
}
@Override
public
int
read
(
byte
b
[],
int
off
,
int
len
)
throws
IOException
{
if
((
count
+=
len
)
>=
50
)
{
throw
new
IOException
(
"I'm broken!"
);
}
return
super
.
read
(
b
,
off
,
len
);
}
};
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment