aboutsummaryrefslogtreecommitdiffhomepage
path: root/csharp/src/Google.Protobuf.Test
Commit message (Collapse)AuthorAge
* Generated code changes for previous commit (basically ↵Gravatar Jon Skeet2015-11-22
| | | | InternalBuildGeneratedFileFrom => FromGeneratedCode)
* Tidy up reflection in advance of attempting to implement DynamicMessage.Gravatar Jon Skeet2015-11-22
| | | | | | | | | There are corner cases where MessageDescriptor.{ClrType,Parser} will return null, and these are now documented. However, normally they *should* be implemented, even for descriptors of for dynamic messages. Ditto FieldDescriptor.Accessor. We'll still need a fair amount of work to implement dynamic messages, but this change means that the public API will be remain intact. Additionally, this change starts making use of C# 6 features in the files that it touches. This is far from exhaustive, and later PRs will have more. Generated code changes coming in the next commit.
* Added the type registry in advance of implementing Any support.Gravatar Jon Skeet2015-11-21
| | | | Biting off just this bit first as I don't need the changes from a previous PR for this part.
* Generated code from previous commit.Gravatar Jon Skeet2015-11-19
|
* Generated code changes and manual changes for previous commit.Gravatar Jon Skeet2015-11-09
|
* Merge pull request #941 from jskeet/recursion-limitGravatar Jan Tattermusch2015-11-05
|\ | | | | Add recursion limit handling to JSON parsing.
| * Reimplement JSON recursion by detecting the depth in the tokenizer.Gravatar Jon Skeet2015-11-05
| | | | | | | | Added a TODO around a possible change to the tokenizer API, changing PushBack(token) into just Rewind() or something similar.
* | Created a new exception for JSON failures.Gravatar Jon Skeet2015-11-05
| | | | | | | | | | | | This is only thrown directly by JsonTokenizer, but surfaces from JsonParser as well. I've added doc comments to hopefully make everything clear. The exception is actually thrown by the reader within JsonTokenizer, in anticipation of keeping track of the location within the document, but that change is not within this PR.
| * Add recursion limit handling to JSON parsing.Gravatar Jon Skeet2015-11-04
|/ | | | Fixes issue #932.
* Implement JSON parsing in C#.Gravatar Jon Skeet2015-11-03
| | | | | | | | | | This includes all the well-known types except Any. Some aspects are likely to require further work when the details of the JSON parsing expectations are hammered out in more detail. Some of these have "ignored" tests already. Note that the choice *not* to use Json.NET was made for two reasons: - Going from 0 dependencies to 1 dependency is a big hit, and there's not much benefit here - Json.NET parses more leniently than we'd want; accommodating that would be nearly as much work as writing the tokenizer This only really affects the JsonTokenizer, which could be replaced by Json.NET. The JsonParser code would be about the same length with Json.NET... but I wouldn't be as confident in it.
* Fix clearing wrapper type fields with reflection.Gravatar Jon Skeet2015-10-30
| | | | The nullable value type fields already worked, but the use of the CLR property concealed the difference between string and StringWrapper fields.
* Generated code for previous commit (oneof case contributing to hash code and ↵Gravatar Jon Skeet2015-10-24
| | | | equality).
* Include the oneof-case in equality and hash code generated code.Gravatar Jon Skeet2015-10-24
| | | | The included C# test will fail until the regenerated code is used, which is in the next commit.
* Merge pull request #846 from jskeet/tostringGravatar Jon Skeet2015-10-07
|\ | | | | Support ToString in RepeatedField and MapField.
| * Support ToString in RepeatedField and MapField.Gravatar Jon Skeet2015-10-01
| | | | | | | | | | | | This changes how we approach JSON formatting in general - instead of looking at the field a value came from, we just look at the type of the value. It's possible this *could* be slightly inefficient, but if we start caring about JSON performance deeply, we'll probably want to rewrite all of this anyway. It's definitely simpler this way. When we support dynamic messages, we'll need to modify JsonFormatter to handle enum values, as they won't come be "real" .NET enums at that point. It shouldn't be hard to do though.
* | Generated code from previous commit.Gravatar Jon Skeet2015-10-01
|/
* Fix typo in oneof case enum commentGravatar Jon Skeet2015-09-30
|
* Generated code changes for previous commit.Gravatar Jon Skeet2015-09-29
|
* Generated code for previous commitGravatar Jon Skeet2015-09-29
|
* Merge pull request #785 from jskeet/csharp-directoriesGravatar Jan Tattermusch2015-09-23
|\ | | | | Generate C# directory hierarchy with new option
* | Pack/Unpack implementation for Any.Gravatar Jon Skeet2015-09-04
| | | | | | | | | | We still need the JSON representation, which relies on something like a DescriptorPool to fetch message types from based on the type URL. That will come a bit later. (The DescriptorPool comment in this commit is just a note which will prove useful if we use DescriptorPool itself.)
| * Regenerated code. Most changes are whitespace, removing trailing spaces.Gravatar Jon Skeet2015-09-01
|/ | | | Other changes are due to the well-known types changing without us regenerating.
* add a failing descriptor testGravatar Jan Tattermusch2015-08-14
|
* remove duplicate test caseGravatar Jan Tattermusch2015-08-14
|
* More TODOs done.Gravatar Jon Skeet2015-08-10
| | | | | | - Removed a TODO without change in DescriptorPool.LookupSymbol - the TODOs were around performance, and this is only used during descriptor initialization - Make the CodedInputStream limits read-only, adding a static factory method for the rare cases when this is useful - Extracted IDeepCloneable into its own file.
* Merge pull request #701 from jskeet/map-viewsGravatar Jon Skeet2015-08-10
|\ | | | | Implement Keys and Values as views in MapField
| * Implement ICollection.CopyTo (using Array) for MapField views.Gravatar Jon Skeet2015-08-10
| |
| * Implement Keys and Values as viewsGravatar Jon Skeet2015-08-08
| |
* | Make FieldDescriptor.IsPacked work appropriately.Gravatar Jon Skeet2015-08-08
|/ | | | | This is a bit of a grotty hack, as we need to sort of fake proto2 field presence, but with only a proto3 version of the descriptor messages (a bit like oneof detection). Should be okay, but will need to be careful of this if we ever implement proto2.
* Tidying up - fix a bunch of TODOs and remove outdated ones.Gravatar Jon Skeet2015-08-08
|
* Address review comments.Gravatar Jon Skeet2015-08-08
|
* Generated code for previous commit.Gravatar Jon Skeet2015-08-06
|
* Skip groups properly.Gravatar Jon Skeet2015-08-06
| | | | | | | | | | | Now the generated code doesn't need to check for end group tags, as it will skip whole groups at a time. Currently it will ignore extraneous end group tags, which may or may not be a good thing. Renamed ConsumeLastField to SkipLastField as it felt more natural. Removed WireFormat.IsEndGroupTag as it's no longer useful. This mostly fixes issue 688. (Generated code changes coming in next commit.)
* Generated code changes for previous commit.Gravatar Jon Skeet2015-08-05
|
* Change ReadTag and PeekTag to just use 0 as a return value for "end of ↵Gravatar Jon Skeet2015-08-05
| | | | | | | | stream", rather than using an awkward out parameter. This simplifies quite a lot of code. Generated code in next commit.
* Validate that after reading a message, we've consumed as many bytes as we ↵Gravatar Jon Skeet2015-08-05
| | | | | | expected to. We should now have no conformance failures.
* Generated code changes for previous commit.Gravatar Jon Skeet2015-08-05
|
* Consume unknown fields when parsing.Gravatar Jon Skeet2015-08-05
| | | | | This is expected to be the cause of the conformance test failures. Generated code in next commit.
* Fix build warnings around unused variablesGravatar Jon Skeet2015-08-04
|
* JSON formatting for FieldMaskGravatar Jon Skeet2015-08-03
|
* Expose Coded*Stream constructors directly.Gravatar Jon Skeet2015-08-03
|
* Merge pull request #675 from jtattermusch/signingGravatar Jon Skeet2015-08-03
|\ | | | | Add ReleaseSigned configuration for C#
* | Initial pass at formatting Struct as JSON.Gravatar Jon Skeet2015-08-03
| | | | | | | | This seems remarkably little code, but it appears to work. I can add tests for invalid structs at some point, once the general approach is approved.
* | Format JSON for Duration and Timestamp.Gravatar Jon Skeet2015-08-03
| | | | | | | | This is taking an approach of putting all the logic in JsonFormatter. That's helpful in terms of concealing the details of whether or not to wrap the value in quotes, but it does lack flexibility. I don't *think* we want to allow user-defined formatting of messages, so that much shouldn't be a problem.
| * make changes and fixes in signingGravatar Jan Tattermusch2015-08-02
| |
| * build signed assembliesGravatar Jan Tattermusch2015-08-02
|/
* Simplify the JSON tests for readabilityGravatar Jon Skeet2015-07-31
| | | | Use ' instead of " in the expected JSON, then replace it before asserting.
* Fix JSON formatting to always emit fields in field order, including oneofsGravatar Jon Skeet2015-07-31
|
* Fix trivial bug in field orderings.Gravatar Jon Skeet2015-07-31
| | | | (Shows the benefit of unit testing even code "too simple to fail"...)
* Well-known type operations for Timestamp and Duration (but not JSON formatting).Gravatar Jon Skeet2015-07-31
| | | | | While I've provided operators, I haven't yet provided the method equivalents. It's not clear to me that they're actually a good idea, while we're really targeting C# developers who definitely *can* use the user-defined operators.