aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers.Test
Commit message (Collapse)AuthorAgeFilesLines
* Implement reflection properly for fields.Jon Skeet2015-07-091-1/+140
| | | | | | | | | | | | | - FieldAccessorTable is now non-generic - We don't have a static field per message type in the umbrella class. (Message descriptors are accessed via the file descriptor.) - Removed the "descriptor assigner" complication from the descriptor fixup; without extensions, we don't need it - MapField implements IDictionary (more tests would be good...) - RepeatedField implements IList (more tests would be good) - Use expression trees to build accessors. (Will need to test this on various platforms... probably need a fallback strategy just using reflection directly.) - Added FieldDescriptor.IsMap - Added tests for reflection with generated messages Changes to generated code coming in next commit.
* Minor fix-ups as suggested in PR #560.Jon Skeet2015-07-096-58/+103
| | | | | - Added new line at the end of SampleEnum - Moved GeneratedMessageTest.GetSampleMessage to a new class, SampleMessages, and renamed it to CreateFullTestAllTypes.
* Fix copyright lines for all C# code.Jon Skeet2015-06-309-33/+104
| | | | | | Everything should now be consistent - the only difference between files is the year (aside from generated files). Fixes issue #531.
* Tidying up and extra tests.Jon Skeet2015-06-308-232/+589
| | | | This is mostly just making things internal instead of public, removing and reordering a bunch of code in CodedInputStream/CodedOutputStream, and generally tidying up.
* Tests changed enough to buildJon Skeet2015-06-303-15/+36
|
* First pass (not yet compiling) at removing all the array handling code from ↵Jon Skeet2015-06-302-792/+335
| | | | | | | Coded*Stream. Prod code works, but some tests are broken. Obviously those need fixing, then more tests, and review benchmarks.
* Fix for doubly-nested types - issue #307.Jon Skeet2015-06-291-21/+304
| | | | No specific test case - if the generated code compiles, the issue is fixed :)
* More cleanup, based around searches for "Google.ProtocolBuffers"Jon Skeet2015-06-262-68/+0
| | | | | | | - Remove some old proto2-based C#-only messages - Remove the "build" directory which only contained out-of-date files - Remove the csharp_namespace option from proto2 messages - Change "Google.ProtocolBuffers" to "Google.Protobuf" in other messages
* Remove a lot of code which wasn't needed any more.Jon Skeet2015-06-263-66/+0
|
* Fix or delete old projects.Jon Skeet2015-06-261-1/+0
| | | | | | | | ProtoDump isn't currently useful, but will be when ToString emits JSON: fixed. ProtoBench: deleted; we should reinstate when there's a common proto3 benchmark. ProtoMunge: delete; not useful enough to merit fixing up. Removed the [TestFixture] from ByteStringTest as Travis uses a recent enough version of NUnit.
* Tests for FieldCodec, along with a fix.Jon Skeet2015-06-262-0/+150
|
* Generated code changes for previous commit.Jon Skeet2015-06-265-636/+7066
|
* Tweaks and more tests for mapsJon Skeet2015-06-262-21/+162
| | | | | | | | | | | | | | | - Change the default message hash code to 1 to be consistent with other code - Change the empty list/map hash code to 0 as "empty map" is equivalent to "no map" - Removed map fields from unittest_proto3.proto - Created map_unittest_proto3.proto which is like map_unittest.proto but proto3-only - Fixed factory methods in FieldCodec highlighted by using all field types :) - Added tests for map serialization: - Extra fields within entries - Entries with value then key - Non-contiguous entries for the same map - Multiple entries for the same key Changes to generated code coming in next commit
* Make map test keys even more different to avoid odd hash collisionsJon Skeet2015-06-251-8/+8
|
* Generated code changes due to map changes.Jon Skeet2015-06-254-44/+88
| | | | (Primarily this is starting the hash code of messages at a non-zero value...)
* More map tests, and various production code improvements.Jon Skeet2015-06-255-6/+431
| | | | Generated code in next commit.
* Generated map code.Jon Skeet2015-06-251-87/+592
|
* First pass at map support.Jon Skeet2015-06-251-0/+61
| | | | More tests required. Generated code in next commit.
* Get the Mono build script working again.Jon Skeet2015-06-251-0/+1
| | | | | | | | | | | | | The solution as a whole doesn't build yet - we probably want to remove ProtoDump and ProtoMunge entirely, and ProtoBench should use Jan's new benchmarks for parity with Java. The version of NUnit on my machine, packaged with Mono 3.12.1, is only NUnit 2.4.2, which is extremely old - it still requires an explicit [TestFixture] attribute on test fixtures. I've added one just for ByteStringTest for the moment so that we can see some tests passing in Travis, but as part of a separate PR we should work on making sure we're using a recent NUnit version. (It may already be doing so, but we can check that once it's working and merged.)
* Implement freezing for messages and repeated fields.Jon Skeet2015-06-246-126/+840
| | | | Fixes issue #523.
* Generated code changes from previous commit.Jon Skeet2015-06-234-41/+41
|
* Implement Clone.Jon Skeet2015-06-235-90/+559
| | | | Fixes issue #527.
* Minor cleanup.Jon Skeet2015-06-194-71/+71
| | | | | | | | - Make some members internal - Remove a lot of FrameworkPortability that isn't required - Start adding documentation comments - Remove some more group-based members - Not passing in "the last tag read" into Read*Array, g
* Use the fact that we know the tag size and bytes at codegen time to optimize.Jon Skeet2015-06-176-312/+411
|
* Regenerate proto filesJon Skeet2015-06-124-396/+453
|
* Reimplement RepeatedField<T> using an array as the backing store.Jon Skeet2015-06-122-6/+7
| | | | | | | | | | This is effectively reimplementing List<T>, but with a few advantages: - We know that an empty repeated field is common, so don't allocate an array until we need to - With direct access to the array, we can easily convert enum values to int without boxing - We can relax the restrictions over what happens if the repeated field is modified while iterating, avoiding so much checking This is somewhat risky, in that reimplementing a building block like this is *always* risky, but hey... (The performance benefits are significant...)
* Coded*Stream streamlining.Jon Skeet2015-06-126-800/+432
| | | | Remove ICodedInputStream and ICodedOutputStream, and rewrite CodedInputStream and CodedOutputStream to be specific to the binary format. If we want to support text-based formats, that can be a whole different serialization mechanism.
* Reimplement enums as int values, and get rid of EnumHelper.Jon Skeet2015-06-115-52/+59
| | | | This makes repeated fields really awkward at the moment - but when we reimplement RepeatedField<T> to be backed by an array, we can cast the array directly...
* First pass at the mutable API. Quite a bit more to do - in particular, it's ↵Jon Skeet2015-06-0958-111307/+7043
| | | | pretty slow right now.
* Migrate writer to io::Printer for C#Jie Luo2015-06-041-7/+7
|
* Change the C# enum generator inherit from primitive generatorJie Luo2015-05-293-16/+16
|
* Add oneof support for C#Jie Luo2015-05-2911-1064/+2211
|
* Generate *all* protos in the script, applying fixups.Jon Skeet2015-05-161-171/+0
| | | | | | | | | | | | | | We still have some protos which aren't generated how we want them to be: - Until we have an option to specify the "umbrella" class, DescriptorProtoFile will be broken. (The change of name here affects the reflection descriptor, which accounts for most of the change. That's easier than trying to work out exactly which occurrences of Descriptor need changing though.) - That change affects UnittestCustomOptions - Issue #307 breaks Unittest.cs After this commit, we don't have the record of the fixups in the files themselves any more, but one centralized record in the shell script.
* Make generate_protos.sh Windows-friendly.Jon Skeet2015-05-141-6/+0
| | | | | | | | | | To my surprise, executing generate_protos.sh used the version of Bash installed with Git for Windows by default. After a few modifications to detect the most appropriate protoc to use, this worked pretty simply. This change also: - adds generation of the address book tutorial proto, - fixes the addressbook.proto to specify proto2 explicitly (to avoid a warning from protoc; I don't think we want warnings...) - fixes the addressbook.proto C# namespace (which I thought I'd done before, but apparently hadn't) - includes the regenerated UnittestCustomOptions.cs apart from the DescriptorProtoFIle => Descriptor change
* Regenerate UnittestDropUnknownFields.csJan Tattermusch2015-05-131-2/+2
|
* Remove the C#-specific field_presence_test.proto, using ↵Jon Skeet2015-05-134-785/+3779
| | | | | | | unittest_no_field_presence.proto instead. This is the start of establishing a C# namespace of "Google.ProtocolBuffers.TestProtos.Proto3" for proto3-syntax protos. We could optionally split the directory structure as well into Proto2 and Proto3 for clarity.
* Regenerated UnittestDropUnknownFields.csJan Tattermusch2015-05-121-77/+18
|
* remove C# files not referenced in any projectJan Tattermusch2015-05-123-6069/+0
|
* Regenerate some proto files after ClsCompliance has been droppedJan Tattermusch2015-05-122-44/+0
|
* rename FieldPresence to correct nameJan Tattermusch2015-05-122-1/+1
|
* Fix newline assertion in TestJsonFormatted on monoJan Tattermusch2015-05-121-1/+2
|
* remove TreatWarningsAsError setting to allow building in MonodevelopJan Tattermusch2015-05-121-2/+0
|
* Convert back to using NUnit, which is now loaded via NuGet.Jon Skeet2015-05-1237-2627/+2634
| | | | | This includes the NUnit test adapter which allows NUnit tests to be run under VS without any extra plugins. Unfortunate the compatibility tests using the abstract test fixture class show up as "external" tests, and aren't well presented - but they do run.
* fix commentsJie Luo2015-05-011-1/+1
|
* Change field_presence_test.protoJie Luo2015-05-011-2/+1
|
* fix commentsJie Luo2015-04-301-2/+2
|
* fix commends from Jon SkeetJie Luo2015-04-302-25/+21
|
* Merge branch 'csharp' of git://github.com/google/protobuf into google-csharpJie Luo2015-04-3046-4924/+2840
|\
| * Change to using xUnit for all unit tests, and fetch that via NuGet.Jon Skeet2015-04-3037-3147/+2836
| | | | | | | | This includes fetching the VS unit test runner package, so that tests can be run from Visual Studio's Test Explorer.
| * Convert both the full and lite runtimes (and json/xml serialization ↵Jon Skeet2015-04-2910-1779/+6
| | | | | | | | | | | | | | assemblies) to be Portable Class Libraries. All referring projects are now .NET 4 client rather than .NET 3.5. This commit also fixes up the ProtoBench app, which I'd neglected in previous commits. (Disentangling the two sets of changes would be time-consuming.)