Recommended.Editions_Proto3.ProtobufInput.MessageUnknownFields_Print.TextFormatOutput                              # TEXT_FORMAT output we received from test was unparseable.
Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogatePairBytes                      # Should have failed to parse, but didn't.
Recommended.Editions_Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogatePairString                     # Should have failed to parse, but didn't.
Recommended.Editions_Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongShortBytes                  # Should have failed to parse, but didn't.
Recommended.Editions_Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongShortString                 # Should have failed to parse, but didn't.
Recommended.Proto3.ProtobufInput.MessageUnknownFields_Print.TextFormatOutput                                       # TEXT_FORMAT output we received from test was unparseable.
Recommended.Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogatePairBytes                               # Should have failed to parse, but didn't.
Recommended.Proto3.TextFormatInput.StringLiteralShortUnicodeEscapeSurrogatePairString                              # Should have failed to parse, but didn't.
Recommended.Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongShortBytes                           # Should have failed to parse, but didn't.
Recommended.Proto3.TextFormatInput.StringLiteralUnicodeEscapeSurrogatePairLongShortString                          # Should have failed to parse, but didn't.

# Recently added test cases. Since these are marked "required", they should be fixed ASAP.
Required.Editions_Proto2.TextFormatInput.ClosedEnumFieldWithUnknownNumber                                          # Should have failed to parse, but didn't.
Required.Editions_Proto3.TextFormatInput.FloatFieldNoNegativeOctal                                                 # Should have failed to parse, but didn't.
Required.Editions_Proto3.TextFormatInput.FloatFieldNoOctal                                                         # Should have failed to parse, but didn't.
Required.Editions_Proto3.TextFormatInput.Int32FieldTooLargeHex                                                     # Should have failed to parse, but didn't.
Required.Editions_Proto3.TextFormatInput.Int64FieldTooLargeHex                                                     # Should have failed to parse, but didn't.
Required.Proto2.TextFormatInput.ClosedEnumFieldWithUnknownNumber                                                   # Should have failed to parse, but didn't.
Required.Proto3.TextFormatInput.FloatFieldNoNegativeOctal                                                          # Should have failed to parse, but didn't.
Required.Proto3.TextFormatInput.FloatFieldNoOctal                                                                  # Should have failed to parse, but didn't.
Required.Proto3.TextFormatInput.Int32FieldTooLargeHex                                                              # Should have failed to parse, but didn't.
Required.Proto3.TextFormatInput.Int64FieldTooLargeHex                                                              # Should have failed to parse, but didn't.
