From f097048d2ea4996f4f3151e5a4b744e61a9d4633 Mon Sep 17 00:00:00 2001 From: Biao Li Date: Wed, 26 Jul 2017 16:28:11 -0700 Subject: [PATCH 1/7] Policheck fixes --- src/CodeGen/ODataT4CodeGenerator.cs | 4 ++-- .../Aruba.OneEntitySetPerTypeHierarchy.csdl | 2 +- .../Framework/Workspaces/Databases/Aruba.csdl | 2 +- .../Framework/Workspaces/Databases/Aruba.sql | Bin 712496 -> 712544 bytes .../Workspaces/Databases/Northwind.csdl | 6 +++--- .../Workspaces/Databases/Northwind.sql | Bin 2699564 -> 2701772 bytes 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/CodeGen/ODataT4CodeGenerator.cs b/src/CodeGen/ODataT4CodeGenerator.cs index 8cdf878d25..3e16ddad57 100644 --- a/src/CodeGen/ODataT4CodeGenerator.cs +++ b/src/CodeGen/ODataT4CodeGenerator.cs @@ -6813,8 +6813,8 @@ internal override void WriteCastToMethods(string baseTypeName, string derivedTyp this.Write(this.ToStringHelper.ToStringWithCulture(derivedTypeFullName)); this.Write("\r\n \'\'\' \r\n \'\'\' source entity\r" + - "\n \r\n Public Fu" + - "nction CastTo"); + "\n \r\n Public " + + "Function CastTo"); this.Write(this.ToStringHelper.ToStringWithCulture(derivedTypeName)); diff --git a/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.OneEntitySetPerTypeHierarchy.csdl b/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.OneEntitySetPerTypeHierarchy.csdl index db719de1e9..52383c79b6 100644 --- a/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.OneEntitySetPerTypeHierarchy.csdl +++ b/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.OneEntitySetPerTypeHierarchy.csdl @@ -698,7 +698,7 @@ - + diff --git a/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.csdl b/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.csdl index bbd23ea5a7..b12fca0a9b 100644 --- a/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.csdl +++ b/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.csdl @@ -872,7 +872,7 @@ - + diff --git a/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.sql b/test/FunctionalTests/Framework/Workspaces/Databases/Aruba.sql index 084d1e91dbfda07f7a60fe74cf48a141f4fae7ab..5fe97b2f3fa080634e7eb19b2ad6a1601fb9967c 100644 GIT binary patch delta 217 zcmdn6Py4|>?G2Y!ar!e9F$6KBGNezB##q^#XNKf9xbbJz!j&@}hHDt_a zFDzpQViq7~-CkJ6rdlwaNr_8sy2ExhuI<;Ju?a9j_#f7Ca!sEV!oj!QoGGqBhpP)vsyUV;JON1G-pj$v29&#hm;;D8x8Fa^)hG=B D9ZW!K diff --git a/test/FunctionalTests/Framework/Workspaces/Databases/Northwind.csdl b/test/FunctionalTests/Framework/Workspaces/Databases/Northwind.csdl index dea7124ca2..62fbdfb1e8 100644 --- a/test/FunctionalTests/Framework/Workspaces/Databases/Northwind.csdl +++ b/test/FunctionalTests/Framework/Workspaces/Databases/Northwind.csdl @@ -102,7 +102,7 @@ - + @@ -123,7 +123,7 @@ - + @@ -212,7 +212,7 @@ - + diff --git a/test/FunctionalTests/Framework/Workspaces/Databases/Northwind.sql b/test/FunctionalTests/Framework/Workspaces/Databases/Northwind.sql index 782264271aee3f465880ad6e7b2b1e69e05ba4bd..f7bfdeb0cea4c1140b610061a1137df2064e0f1d 100644 GIT binary patch delta 3803 zcmZ{neNfaz7{?E|Tk(YRL==QOIPMUB(uGLZc``~TmV@Zf`7)^FT!$eh8Ih6|F-GQa zX%1Z--I6(q3=yc+DGpE3jDtmvn!}*Yn5j8b4nvL_lVygzJ-4LR?()Yo%sijx`98b* zJioo=!1pa-r*5=_1-lX=9#w7dzqI^oziV5JKj}U*ZTelO_ctb($0JZJQLRy}RjpG! zqpI-#n7CK)9W+eoXf|9lFqNl0^Zc&I9R9wU>W-mV8whiLTR7JrEYWr}IZI7^lz(WJ zoka&rA|K$jJD}kUE${SC_oZ~~+H+{E47^&=?yYDKgNpX>TdmQnaoHPHPpF>5zg6Ci zt_U1#sf)vz-lP6_>B2d$eJxNit^J0n~@-)OPjjPlWHC!4)R>&wIEsy~kN~0&;C~uEX za=`3p@~|upy2g_tDJX~`RZ?&(miT0V26iRu=`w208n;qaqN>2bGO3CoI-Xnz6A#`> z12@w2)K+T91Wy7n$rPc>Fj}c{qaGTPM>&)c+ijo zmug59w=`Cbmc5;<2iwb|^r-h0(kM%Vrmdt}259TG6g|DENzI0Um&D6LU~rq*Besva z9b~sO!~F)ylY;Yajxs|-@8IS9S_7$*rBOx~QBp3WfRwKW&Ryg~J{WyjVBJF+Bp?(1 z*elEx)V7dTJ{W!3^yr7Gf=IIn096u(`I4h|?L3T=VGbsW!T=`NyC9toTIQcYoy7pVJw&q*oW0 zf@TI?oTc74GNkA#45!_l@mgws$e2x=%oa5b=2!}-`zOmH>Ty}J>l~IkM{1p8YNsQu zGJ8a6b9owUE>FMy!JXCq`xfq=q2$r}u!)h-6R+^s57jS58jL{dPE`2UAM_iQ&$!+~ z(4@S@`&<@ffb&tzb+QgXeVQ^PrPzWfI5$lZ-q9>K)B|Xy+x^$ZlQREqh-Vc^y( mMR<9I08M%i5Bt#LqZF!Htq4CGOfO-LBD}2_=v}M0Py7S?PVy@N delta 1987 zcmY*ae@s(X6fTc)Rx99BoU72%(pJ3UMzj*fI?`cvgyF2{7Womw1QiK7ti%yQbRp4M z=bUTop^H-wVjBBP-;tbh&@7*%}<7>WqzVDuM z-?=|Ja<4n##P#lk-ZSZ;2ab!O-uGvPd<*S|i)P57j&ys-XzmPMH=Fv$%$Lofn+16x z|56A=Y8pf4*KGXPFPY3oA16WoQ8$1p%eBV-SkXpX+}j_iXHEElFnGOQIeoCZ4tt(XHrF}3cPRp!o!ebMwv`lv?T zW}Qt}j=ScGlA04nxLT@(gmpJ_v zqGIH1xZoV^$tB_sp&;8X#4`Q$B&fsZdUr}Er9s~O+T2d9Lj zgf$%_FGH1ITF8KLS<$x1!}iKdA)O9D#n(9M@X&3v`{4JkQ(sd z;0mRz^d?Pf_9+cgDBm~NMrrS7cxfFNCBCMKQaj&*HbG-Guu;&?jY#zCkTG5QK=Jkq~$V&1s+Nhd)Bc_I3yC z)g-Qt&mDmVVWqKG!of~BCvp1q;K(ufSfzz{qKCSIt|*))a}t`lw{;Y4C{>Jp;;lQI}i#m2wnRI(8Oz3fgfVwhHR|1`ZM(rcGlP)Qm*= zg&{~!S@z_;$3KVQMOxdi+O%QtaHHRr%!kIa@~~n=ZL*T1_mXmIm2{k_9>d?o8-Wc! zK#^9I!y>25#}~6?lz#%Z2yBzNsC#vVIXX(B-XWDYm^Bc_3CSl~- z)P9!Sj31DJTTmzT-rqq=3=G}@9K7?)&T>wyD-c_5z}WI>cPq4EFft8;5#v}zpy{Cz zn;uRdiThS1V{BE*xaMm&r5OWzqA9p1n)zhfKMMxveCOk`+LwJs0BFrVE6EX;9f`yPtuwtywc6H0sI}*5J$s*YC zipBAfoB8&__h|JUc-{t_$W)rK?!c3T;pd3z;|+l(~!+1U;W$DC}GUaa}7Q^MLDc3exR#Yrxk}bW zni6oXWAp&1bh28_rbHt(tcr>%v|AHu_oh F@PF~T<@Nvo From e02f54567b262828052f8314202e21b89e9e4f66 Mon Sep 17 00:00:00 2001 From: Biao Li Date: Thu, 27 Jul 2017 23:57:03 -0700 Subject: [PATCH 2/7] Add the cmd to run policheck --- tools/PoliCheck/RunPoliCheck.cmd | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 tools/PoliCheck/RunPoliCheck.cmd diff --git a/tools/PoliCheck/RunPoliCheck.cmd b/tools/PoliCheck/RunPoliCheck.cmd new file mode 100644 index 0000000000..c1a5561fe9 --- /dev/null +++ b/tools/PoliCheck/RunPoliCheck.cmd @@ -0,0 +1,2 @@ +set ENLISTMENT_ROOT=%1 +'C:\Program Files (x86)\Microsoft\PoliCheck\Policheck.exe' /FL:'C:\Users\ODatabld\Documents\PoliCheck\subdirs.txt' /T:9 /Sev:'1|2' /O:'c:\Users\ODatabld\Documents\PoliCheck\poli32.xml' \ No newline at end of file From 11425c878c390b4e073ffbd3d4f2c88e43ca1192 Mon Sep 17 00:00:00 2001 From: Biao Li Date: Fri, 28 Jul 2017 18:41:58 -0700 Subject: [PATCH 3/7] remove the RunPoliCheck.cmd --- tools/PoliCheck/RunPoliCheck.cmd | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 tools/PoliCheck/RunPoliCheck.cmd diff --git a/tools/PoliCheck/RunPoliCheck.cmd b/tools/PoliCheck/RunPoliCheck.cmd deleted file mode 100644 index c1a5561fe9..0000000000 --- a/tools/PoliCheck/RunPoliCheck.cmd +++ /dev/null @@ -1,2 +0,0 @@ -set ENLISTMENT_ROOT=%1 -'C:\Program Files (x86)\Microsoft\PoliCheck\Policheck.exe' /FL:'C:\Users\ODatabld\Documents\PoliCheck\subdirs.txt' /T:9 /Sev:'1|2' /O:'c:\Users\ODatabld\Documents\PoliCheck\poli32.xml' \ No newline at end of file From 3ddad53a3f10933d0a2d2e048c91d128fafa191b Mon Sep 17 00:00:00 2001 From: Biao Li Date: Fri, 28 Jul 2017 19:04:07 -0700 Subject: [PATCH 4/7] Adding the exclusion config for termId 211972 --- tools/PoliCheck/exTermEdge_v58.xlsx | Bin 0 -> 60029 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tools/PoliCheck/exTermEdge_v58.xlsx diff --git a/tools/PoliCheck/exTermEdge_v58.xlsx b/tools/PoliCheck/exTermEdge_v58.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2d38dc4cd45643d7d9a99bd14051c1cd73c1bdaa GIT binary patch literal 60029 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 dJ-&B&_zq=gDL$k%`pPHu%)!UA< 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

>~5c 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

  • H<+x%{{H^;C2xO?Vj^--w&HP1keT1 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 literal 0 HcmV?d00001 From 6d3c2ca2285d10b626be36481a8041aee8f8aef5 Mon Sep 17 00:00:00 2001 From: Biao Li Date: Mon, 31 Jul 2017 16:09:48 -0700 Subject: [PATCH 5/7] create a Policheck subdir for each branch. --- .../{ => odata.net-master}/exTermEdge_v58.xlsx | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename tools/PoliCheck/{ => odata.net-master}/exTermEdge_v58.xlsx (100%) diff --git a/tools/PoliCheck/exTermEdge_v58.xlsx b/tools/PoliCheck/odata.net-master/exTermEdge_v58.xlsx similarity index 100% rename from tools/PoliCheck/exTermEdge_v58.xlsx rename to tools/PoliCheck/odata.net-master/exTermEdge_v58.xlsx From c891b14e3ee974c53d4c611e9245e5ac5d60be0b Mon Sep 17 00:00:00 2001 From: Biao Li Date: Mon, 31 Jul 2017 16:53:00 -0700 Subject: [PATCH 6/7] Add script to run policheck. --- tools/PoliCheck/RunPoliCheck.ps1 | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tools/PoliCheck/RunPoliCheck.ps1 diff --git a/tools/PoliCheck/RunPoliCheck.ps1 b/tools/PoliCheck/RunPoliCheck.ps1 new file mode 100644 index 0000000000..92bb179d11 --- /dev/null +++ b/tools/PoliCheck/RunPoliCheck.ps1 @@ -0,0 +1,34 @@ +param( + [string]$BuildSourceDir, + [string]$folderName, + [string]$branchName, + [string]$resultRoot, + [string]$PoliCheckPath +) + +# +#Example: +# RunPoliCheck.ps1 -BuildSourceDir "C:\BuildAgent\_work\32\s" +# -folderName "src" +# -branchName "odata.net-master" +# -resultRoot "C:\Users\ODatabld\Documents\PoliCheck\LatestRunResult" +# -PoliCheckPath "C:\Program Files (x86)\Microsoft\PoliCheck\" +# + +$targetPath= "${BuildSourceDir}\${folderName}" +Write-Output "targetPath: ${targetPath}" +$result="${resultRoot}\${branchName}\poli_result_${folderName}.xml" + +cd "${PoliCheckPath}" + +.\Policheck.exe /F:$targetPath /T:9 /Sev:"1|2" /PE:2 /O:$result + +$FileContent = Get-Content $result +$PassResult = Select-String -InputObject $FileContent -Pattern "" + +If ($PassResult.Matches.Count -eq 0) { + Write-Error "PoliCheck failed for target ${targetPath}. For details, please check this result file on build machine: ${result}: section ." + exit 1 +} + +Write-Output "PoliCheck pass for target ${targetPath}" \ No newline at end of file From 59ab28fa6fe820b58e5bc452581c583d14984050 Mon Sep 17 00:00:00 2001 From: Biao Li Date: Mon, 31 Jul 2017 17:41:25 -0700 Subject: [PATCH 7/7] move policheck exclusion config out of tools (to images dir) --- .../PoliCheck/odata.net-master/exTermEdge_v58.xlsx | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename {tools => images}/PoliCheck/odata.net-master/exTermEdge_v58.xlsx (100%) diff --git a/tools/PoliCheck/odata.net-master/exTermEdge_v58.xlsx b/images/PoliCheck/odata.net-master/exTermEdge_v58.xlsx similarity index 100% rename from tools/PoliCheck/odata.net-master/exTermEdge_v58.xlsx rename to images/PoliCheck/odata.net-master/exTermEdge_v58.xlsx