From a035dd5056dfbde876fef7374a856ae579c5eb17 Mon Sep 17 00:00:00 2001 From: Frederik Carlier Date: Tue, 26 Jun 2018 15:55:41 +0200 Subject: [PATCH 1/2] Update list of serialization primitives --- plist-cil.test/BinaryPropertyListWriterTests.cs | 16 ++++++++++++++++ plist-cil.test/plist-cil.test.csproj | 3 +++ plist-cil.test/test-files/plist3.bin | Bin 0 -> 784 bytes plist-cil/BinaryPropertyListWriter.cs | 6 +++++- 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 plist-cil.test/test-files/plist3.bin diff --git a/plist-cil.test/BinaryPropertyListWriterTests.cs b/plist-cil.test/BinaryPropertyListWriterTests.cs index 3433949..5b6f9d0 100644 --- a/plist-cil.test/BinaryPropertyListWriterTests.cs +++ b/plist-cil.test/BinaryPropertyListWriterTests.cs @@ -37,5 +37,21 @@ namespace plistcil.test writer.Write(root); } } + + [Fact] + public void Roundtrip3Test() + { + byte[] data = File.ReadAllBytes("test-files/plist3.bin"); + NSObject root = PropertyListParser.Parse(data); + + using (MemoryStream actualOutput = new MemoryStream()) + using (Stream expectedOutput = File.OpenRead("test-files/plist3.bin")) + using (ValidatingStream validatingStream = new ValidatingStream(actualOutput, expectedOutput)) + { + BinaryPropertyListWriter writer = new BinaryPropertyListWriter(validatingStream); + writer.ReuseObjectIds = false; + writer.Write(root); + } + } } } diff --git a/plist-cil.test/plist-cil.test.csproj b/plist-cil.test/plist-cil.test.csproj index c7698c2..72f6c01 100644 --- a/plist-cil.test/plist-cil.test.csproj +++ b/plist-cil.test/plist-cil.test.csproj @@ -119,6 +119,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/plist-cil.test/test-files/plist3.bin b/plist-cil.test/test-files/plist3.bin new file mode 100644 index 0000000000000000000000000000000000000000..1a7f75130de5c4591742eb5d7809aac14cfff70a GIT binary patch literal 784 zcmYc)$jK}&F)+Bo$i&RT%4Tj6p;DGwRGgWg7on1$l$DxXQXHw0Sd^TRS(aK9qEeDy zAjH7fwqPAQhp3pigruyBmY%+mai~gOX->{%PA+a90g-UOV7=_r%Hk-$U_Gc2VJgWv ziN(c>dHMJom>QTHSQZNk2{*7dur+Wr@Wu2B#L4WhSSFBo?KomN=E>rR1b~ zx_GBn#tTRwNe3qvWfqh;<)>7FrNl9$LW6w3GP23}xq2m;xvAxeMR}=3$%#ohsd~kk zxurSDiNz(CxTU0JBK?B(ic5+z^U@pG;{~ikJslyI>*eGpC+0xd8k%}(MfrIpzWK!^ zjs*o8ntD0;>8?4cxv6<2Aw{XF8k*KzTwIsr5NxEr|Q1+3FDb5gDJ_4PxGQ;UlA(~=X5axznk^fU8{ONvTCjw{wrPAn)X zElMrcFU?FWEy>SKEXmBz(>2t;BqwiR80r@s8sxLcKsjDO&(Xl#z{SkbLf6f}#6Z`? z(ZWR6$;i}M*UiYt#mvpv(#XlgK))Cq@OoLrm*nJ4OydQF;r?>TOa_^pSX8;##7sHH zFBl;J_P%#&Won8eGznd_vXU?Zj9cHVT|#Ng^Z<)b&TzdeT>r> z7cnkjT*kP9aXsTk#?6dd89y`rVEo6#$YjK1&g9D!$P~v^z*Njs!2kwKj9`j^!5T_K HDW)m_ePrz& literal 0 HcmV?d00001 diff --git a/plist-cil/BinaryPropertyListWriter.cs b/plist-cil/BinaryPropertyListWriter.cs index 1c7641d..ceb24a9 100644 --- a/plist-cil/BinaryPropertyListWriter.cs +++ b/plist-cil/BinaryPropertyListWriter.cs @@ -422,13 +422,17 @@ namespace Claunia.PropertyList || content == "$classname" || content == "NS.objects" || content == "NS.keys" + || content == "NS.base" + || content == "NS.relative" || content == "NSURL" || content == "NSDictionary" || content == "NSObject" || content == "NSMutableDictionary" || content == "NSMutableArray" || content == "NSArray" - || content == "NSUUID"; + || content == "NSUUID" + || content == "NSKeyedArchiver" + || content == "NSMutableString"; } internal static bool IsSerializationPrimitive(NSNumber n) From 6a96ff142c49f9aae59a6df46fd14756883f3bb3 Mon Sep 17 00:00:00 2001 From: Frederik Carlier Date: Tue, 26 Jun 2018 17:09:33 +0200 Subject: [PATCH 2/2] Add NS.string as primitive --- plist-cil.test/BinaryPropertyListWriterTests.cs | 16 ++++++++++++++++ plist-cil.test/plist-cil.test.csproj | 3 +++ plist-cil.test/test-files/plist4.bin | Bin 0 -> 1546 bytes plist-cil/BinaryPropertyListWriter.cs | 1 + 4 files changed, 20 insertions(+) create mode 100644 plist-cil.test/test-files/plist4.bin diff --git a/plist-cil.test/BinaryPropertyListWriterTests.cs b/plist-cil.test/BinaryPropertyListWriterTests.cs index 5b6f9d0..22d54ac 100644 --- a/plist-cil.test/BinaryPropertyListWriterTests.cs +++ b/plist-cil.test/BinaryPropertyListWriterTests.cs @@ -53,5 +53,21 @@ namespace plistcil.test writer.Write(root); } } + + [Fact] + public void Roundtrip4Test() + { + byte[] data = File.ReadAllBytes("test-files/plist4.bin"); + NSObject root = PropertyListParser.Parse(data); + + using (MemoryStream actualOutput = new MemoryStream()) + using (Stream expectedOutput = File.OpenRead("test-files/plist4.bin")) + using (ValidatingStream validatingStream = new ValidatingStream(actualOutput, expectedOutput)) + { + BinaryPropertyListWriter writer = new BinaryPropertyListWriter(validatingStream); + writer.ReuseObjectIds = false; + writer.Write(root); + } + } } } diff --git a/plist-cil.test/plist-cil.test.csproj b/plist-cil.test/plist-cil.test.csproj index 72f6c01..cb0a71d 100644 --- a/plist-cil.test/plist-cil.test.csproj +++ b/plist-cil.test/plist-cil.test.csproj @@ -122,6 +122,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/plist-cil.test/test-files/plist4.bin b/plist-cil.test/test-files/plist4.bin new file mode 100644 index 0000000000000000000000000000000000000000..0c1a127bc824cb9959f7f8f667cac47f86b05b75 GIT binary patch literal 1546 zcmYc)$jK}&F)+Bo$i&RT%4TI9p;DGwRGgWg7on1$l$DxXQXHw0Sd^TRS(aK9qEeDy zAjH7fwqU)0AUlVwoVUTIFwWlk<`9ub*vzhJ%W)XL&0zhFJ6 zIbkZvIf=!^%X#_u1q6kJ8<-lH8(11x8`v7y8#tDWiit}|ic2?eHgGraH1Ia?HSjd> zHweTF2)ac2xWxN-It4ifMaBm>hIqsaNJKdMyST=?IJw711USdLMmYO~27CJZ1;_aX zhvp@frlqA8rKWiL#|ubDIESPbmpJF=rDdj<7A2Ns=I6O(=A;HBmSn^W2!qXb3v%>z z4fhZ7hMF$y9~|%K9O4<~84?-q5)$tVvP(e5B_tx=+27C4)j7n|-!DGcH7Lx}*)lJiqi^<7dy=B2nKmL#H?uA7*bT~tz%n2}pnnwXoNmRyunRGwU1 znUa~3nXKZhlf`PO82$B9g#if*eJLu8vO5W{$?X=Ejy5x+WH8X1b21#+JIKrWUT|j)oS- zmS)EKCAkG?0SSp8T}L+yXCqT1H(g63LknFKQ#V6hOE)7ET~jjy6C*=YOA|8-Q>a^$ zk<%(DVVR63CvuZhynqXqoS&DMnhYu*f>VpiGLut__0nJ&>XN3G zxkbEyFgyjiWP(*D7F8}bx73UA3q}Zl6RLM=Won8ewAj38V;fSGpI_3z$iTrM$RNd_ z%%IC)#9+?g%@D{C!H~d^%}~Tp#Zbdg$I!sg#L&Xf#?ZkqfngHE6ozRGGZ)*#jt)^ye!1~6b^1XBzQc2F8hvE~5)92@n^ literal 0 HcmV?d00001 diff --git a/plist-cil/BinaryPropertyListWriter.cs b/plist-cil/BinaryPropertyListWriter.cs index ceb24a9..4f14952 100644 --- a/plist-cil/BinaryPropertyListWriter.cs +++ b/plist-cil/BinaryPropertyListWriter.cs @@ -424,6 +424,7 @@ namespace Claunia.PropertyList || content == "NS.keys" || content == "NS.base" || content == "NS.relative" + || content == "NS.string" || content == "NSURL" || content == "NSDictionary" || content == "NSObject"