Skip to content

Commit a8787af

Browse files
authored
Merge pull request #2943 from microsoft/fix/const-null-to-v2
fix: differentiate unset value from null value in OpenApiSchema.Const (#2936)
2 parents a304e56 + 64f548e commit a8787af

18 files changed

Lines changed: 257 additions & 115 deletions

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.Descriptions-report-github.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ WarmupCount=3
1212
```
1313
| Method | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated |
1414
|------------- |-------------:|--------------:|-------------:|-----------:|-----------:|----------:|-------------:|
15-
| PetStoreYaml | 286.0 μs | 73.19 μs | 4.01 μs | 78.1250 | 3.9063 | - | 321.56 KB |
16-
| PetStoreJson | 138.4 μs | 281.66 μs | 15.44 μs | 44.9219 | 0.9766 | - | 183.7 KB |
17-
| GHESYaml | 634,204.7 μs | 753,841.96 μs | 41,320.62 μs | 46000.0000 | 19000.0000 | 3000.0000 | 258029.89 KB |
18-
| GHESJson | 276,364.3 μs | 194,356.19 μs | 10,653.32 μs | 19000.0000 | 10000.0000 | 2000.0000 | 115201.33 KB |
19-
| GHESNextYaml | 826,374.3 μs | 43,744.86 μs | 2,397.80 μs | 81000.0000 | 20000.0000 | 3000.0000 | 454862.14 KB |
20-
| GHESNextJson | 492,571.5 μs | 71,304.93 μs | 3,908.46 μs | 54000.0000 | 14000.0000 | 3000.0000 | 316622.34 KB |
15+
| PetStoreYaml | 295.0 μs | 11.08 μs | 0.61 μs | 91.7969 | 17.5781 | - | 375.25 KB |
16+
| PetStoreJson | 145.9 μs | 27.23 μs | 1.49 μs | 50.7813 | 11.7188 | - | 209.53 KB |
17+
| GHESYaml | 673,002.8 μs | 442,503.72 μs | 24,255.12 μs | 54000.0000 | 20000.0000 | 3000.0000 | 310978.47 KB |
18+
| GHESJson | 289,915.7 μs | 48,490.16 μs | 2,657.91 μs | 23000.0000 | 11000.0000 | 2000.0000 | 140588 KB |
19+
| GHESNextYaml | 831,243.5 μs | 195,694.95 μs | 10,726.70 μs | 91000.0000 | 21000.0000 | 3000.0000 | 513236.66 KB |
20+
| GHESNextJson | 499,654.1 μs | 154,061.41 μs | 8,444.63 μs | 58000.0000 | 14000.0000 | 3000.0000 | 345064.25 KB |
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Gen0,Gen1,Gen2,Allocated
2-
PetStoreYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,286.0 μs,73.19 μs,4.01 μs,78.1250,3.9063,0.0000,321.56 KB
3-
PetStoreJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,138.4 μs,281.66 μs,15.44 μs,44.9219,0.9766,0.0000,183.7 KB
4-
GHESYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"634,204.7 μs","753,841.96 μs","41,320.62 μs",46000.0000,19000.0000,3000.0000,258029.89 KB
5-
GHESJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"276,364.3 μs","194,356.19 μs","10,653.32 μs",19000.0000,10000.0000,2000.0000,115201.33 KB
6-
GHESNextYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"826,374.3 μs","43,744.86 μs","2,397.80 μs",81000.0000,20000.0000,3000.0000,454862.14 KB
7-
GHESNextJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"492,571.5 μs","71,304.93 μs","3,908.46 μs",54000.0000,14000.0000,3000.0000,316622.34 KB
2+
PetStoreYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,295.0 μs,11.08 μs,0.61 μs,91.7969,17.5781,0.0000,375.25 KB
3+
PetStoreJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,145.9 μs,27.23 μs,1.49 μs,50.7813,11.7188,0.0000,209.53 KB
4+
GHESYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"673,002.8 μs","442,503.72 μs","24,255.12 μs",54000.0000,20000.0000,3000.0000,310978.47 KB
5+
GHESJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"289,915.7 μs","48,490.16 μs","2,657.91 μs",23000.0000,11000.0000,2000.0000,140588 KB
6+
GHESNextYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"831,243.5 μs","195,694.95 μs","10,726.70 μs",91000.0000,21000.0000,3000.0000,513236.66 KB
7+
GHESNextJson,ShortRun,False,Default,Default,Default,Default,Default,Default,111111111111,Empty,RyuJit,Default,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"499,654.1 μs","154,061.41 μs","8,444.63 μs",58000.0000,14000.0000,3000.0000,345064.25 KB

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.Descriptions-report.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang='en'>
33
<head>
44
<meta charset='utf-8' />
5-
<title>performance.Descriptions-20260714-075155</title>
5+
<title>performance.Descriptions-20260714-131920</title>
66

77
<style type="text/css">
88
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
@@ -26,12 +26,12 @@
2626
<table>
2727
<thead><tr><th>Method</th><th>Mean </th><th>Error </th><th>StdDev</th><th>Gen0</th><th>Gen1</th><th>Gen2</th><th>Allocated</th>
2828
</tr>
29-
</thead><tbody><tr><td>PetStoreYaml</td><td>286.0 &mu;s</td><td>73.19 &mu;s</td><td>4.01 &mu;s</td><td>78.1250</td><td>3.9063</td><td>-</td><td>321.56 KB</td>
30-
</tr><tr><td>PetStoreJson</td><td>138.4 &mu;s</td><td>281.66 &mu;s</td><td>15.44 &mu;s</td><td>44.9219</td><td>0.9766</td><td>-</td><td>183.7 KB</td>
31-
</tr><tr><td>GHESYaml</td><td>634,204.7 &mu;s</td><td>753,841.96 &mu;s</td><td>41,320.62 &mu;s</td><td>46000.0000</td><td>19000.0000</td><td>3000.0000</td><td>258029.89 KB</td>
32-
</tr><tr><td>GHESJson</td><td>276,364.3 &mu;s</td><td>194,356.19 &mu;s</td><td>10,653.32 &mu;s</td><td>19000.0000</td><td>10000.0000</td><td>2000.0000</td><td>115201.33 KB</td>
33-
</tr><tr><td>GHESNextYaml</td><td>826,374.3 &mu;s</td><td>43,744.86 &mu;s</td><td>2,397.80 &mu;s</td><td>81000.0000</td><td>20000.0000</td><td>3000.0000</td><td>454862.14 KB</td>
34-
</tr><tr><td>GHESNextJson</td><td>492,571.5 &mu;s</td><td>71,304.93 &mu;s</td><td>3,908.46 &mu;s</td><td>54000.0000</td><td>14000.0000</td><td>3000.0000</td><td>316622.34 KB</td>
29+
</thead><tbody><tr><td>PetStoreYaml</td><td>295.0 &mu;s</td><td>11.08 &mu;s</td><td>0.61 &mu;s</td><td>91.7969</td><td>17.5781</td><td>-</td><td>375.25 KB</td>
30+
</tr><tr><td>PetStoreJson</td><td>145.9 &mu;s</td><td>27.23 &mu;s</td><td>1.49 &mu;s</td><td>50.7813</td><td>11.7188</td><td>-</td><td>209.53 KB</td>
31+
</tr><tr><td>GHESYaml</td><td>673,002.8 &mu;s</td><td>442,503.72 &mu;s</td><td>24,255.12 &mu;s</td><td>54000.0000</td><td>20000.0000</td><td>3000.0000</td><td>310978.47 KB</td>
32+
</tr><tr><td>GHESJson</td><td>289,915.7 &mu;s</td><td>48,490.16 &mu;s</td><td>2,657.91 &mu;s</td><td>23000.0000</td><td>11000.0000</td><td>2000.0000</td><td>140588 KB</td>
33+
</tr><tr><td>GHESNextYaml</td><td>831,243.5 &mu;s</td><td>195,694.95 &mu;s</td><td>10,726.70 &mu;s</td><td>91000.0000</td><td>21000.0000</td><td>3000.0000</td><td>513236.66 KB</td>
34+
</tr><tr><td>GHESNextJson</td><td>499,654.1 &mu;s</td><td>154,061.41 &mu;s</td><td>8,444.63 &mu;s</td><td>58000.0000</td><td>14000.0000</td><td>3000.0000</td><td>345064.25 KB</td>
3535
</tr></tbody></table>
3636
</body>
3737
</html>

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.Descriptions-report.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.EmptyModels-report-github.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,31 @@ WarmupCount=3
1212
```
1313
| Method | Mean | Error | StdDev | Gen0 | Allocated |
1414
|---------------------------- |-----------:|-----------:|----------:|-------:|----------:|
15-
| EmptyApiCallback | 1.542 ns | 2.8290 ns | 0.1551 ns | 0.0077 | 32 B |
16-
| EmptyApiComponents | 2.539 ns | 0.1677 ns | 0.0092 ns | 0.0249 | 104 B |
17-
| EmptyApiContact | 1.941 ns | 0.6764 ns | 0.0371 ns | 0.0115 | 48 B |
18-
| EmptyApiDiscriminator | 1.780 ns | 0.7044 ns | 0.0386 ns | 0.0096 | 40 B |
19-
| EmptyDocument | 297.968 ns | 21.6042 ns | 1.1842 ns | 0.2751 | 1152 B |
20-
| EmptyApiEncoding | 2.146 ns | 1.7538 ns | 0.0961 ns | 0.0134 | 56 B |
21-
| EmptyApiExample | 1.876 ns | 6.4557 ns | 0.3539 ns | 0.0134 | 56 B |
22-
| EmptyApiExternalDocs | 1.729 ns | 0.3814 ns | 0.0209 ns | 0.0096 | 40 B |
23-
| EmptyApiHeader | 2.544 ns | 0.3848 ns | 0.0211 ns | 0.0191 | 80 B |
24-
| EmptyApiInfo | 2.562 ns | 1.2949 ns | 0.0710 ns | 0.0191 | 80 B |
25-
| EmptyApiLicense | 1.869 ns | 0.3055 ns | 0.0167 ns | 0.0115 | 48 B |
26-
| EmptyApiLink | 2.369 ns | 0.6096 ns | 0.0334 ns | 0.0172 | 72 B |
27-
| EmptyApiMediaType | 2.095 ns | 0.2404 ns | 0.0132 ns | 0.0134 | 56 B |
28-
| EmptyApiOAuthFlow | 2.013 ns | 0.2928 ns | 0.0160 ns | 0.0134 | 56 B |
29-
| EmptyApiOAuthFlows | 2.041 ns | 0.3166 ns | 0.0174 ns | 0.0134 | 56 B |
30-
| EmptyApiOperation | 47.686 ns | 6.2026 ns | 0.3400 ns | 0.0899 | 376 B |
31-
| EmptyApiParameter | 2.872 ns | 0.4280 ns | 0.0235 ns | 0.0230 | 96 B |
32-
| EmptyApiPathItem | 2.200 ns | 0.0822 ns | 0.0045 ns | 0.0153 | 64 B |
33-
| EmptyApiPaths | 42.168 ns | 4.2427 ns | 0.2326 ns | 0.0592 | 248 B |
34-
| EmptyApiRequestBody | 1.914 ns | 0.7504 ns | 0.0411 ns | 0.0115 | 48 B |
35-
| EmptyApiResponse | 2.069 ns | 0.5045 ns | 0.0277 ns | 0.0134 | 56 B |
36-
| EmptyApiResponses | 43.854 ns | 14.2551 ns | 0.7814 ns | 0.0592 | 248 B |
37-
| EmptyApiSchema | 10.891 ns | 0.3304 ns | 0.0181 ns | 0.1224 | 512 B |
38-
| EmptyApiSecurityRequirement | 6.933 ns | 2.7969 ns | 0.1533 ns | 0.0249 | 104 B |
39-
| EmptyApiSecurityScheme | 2.687 ns | 0.3364 ns | 0.0184 ns | 0.0210 | 88 B |
40-
| EmptyApiServer | 1.906 ns | 0.2675 ns | 0.0147 ns | 0.0115 | 48 B |
41-
| EmptyApiServerVariable | 1.903 ns | 0.6081 ns | 0.0333 ns | 0.0115 | 48 B |
42-
| EmptyApiTag | 1.871 ns | 0.0675 ns | 0.0037 ns | 0.0115 | 48 B |
15+
| EmptyApiCallback | 1.609 ns | 0.2332 ns | 0.0128 ns | 0.0077 | 32 B |
16+
| EmptyApiComponents | 3.057 ns | 0.1980 ns | 0.0109 ns | 0.0249 | 104 B |
17+
| EmptyApiContact | 1.873 ns | 0.2182 ns | 0.0120 ns | 0.0115 | 48 B |
18+
| EmptyApiDiscriminator | 1.701 ns | 0.3282 ns | 0.0180 ns | 0.0096 | 40 B |
19+
| EmptyDocument | 295.365 ns | 25.8942 ns | 1.4193 ns | 0.2751 | 1152 B |
20+
| EmptyApiEncoding | 2.055 ns | 0.3608 ns | 0.0198 ns | 0.0134 | 56 B |
21+
| EmptyApiExample | 2.007 ns | 0.2155 ns | 0.0118 ns | 0.0134 | 56 B |
22+
| EmptyApiExternalDocs | 1.709 ns | 0.2845 ns | 0.0156 ns | 0.0096 | 40 B |
23+
| EmptyApiHeader | 2.515 ns | 0.1279 ns | 0.0070 ns | 0.0191 | 80 B |
24+
| EmptyApiInfo | 2.493 ns | 0.2505 ns | 0.0137 ns | 0.0191 | 80 B |
25+
| EmptyApiLicense | 1.867 ns | 0.1831 ns | 0.0100 ns | 0.0115 | 48 B |
26+
| EmptyApiLink | 1.769 ns | 0.2593 ns | 0.0142 ns | 0.0172 | 72 B |
27+
| EmptyApiMediaType | 2.018 ns | 0.3384 ns | 0.0186 ns | 0.0134 | 56 B |
28+
| EmptyApiOAuthFlow | 2.061 ns | 0.2944 ns | 0.0161 ns | 0.0134 | 56 B |
29+
| EmptyApiOAuthFlows | 2.044 ns | 0.2322 ns | 0.0127 ns | 0.0134 | 56 B |
30+
| EmptyApiOperation | 47.464 ns | 6.6225 ns | 0.3630 ns | 0.0899 | 376 B |
31+
| EmptyApiParameter | 2.861 ns | 0.2335 ns | 0.0128 ns | 0.0230 | 96 B |
32+
| EmptyApiPathItem | 2.195 ns | 0.2627 ns | 0.0144 ns | 0.0153 | 64 B |
33+
| EmptyApiPaths | 42.303 ns | 3.6356 ns | 0.1993 ns | 0.0592 | 248 B |
34+
| EmptyApiRequestBody | 1.859 ns | 0.3941 ns | 0.0216 ns | 0.0115 | 48 B |
35+
| EmptyApiResponse | 2.036 ns | 0.1630 ns | 0.0089 ns | 0.0134 | 56 B |
36+
| EmptyApiResponses | 43.046 ns | 2.1392 ns | 0.1173 ns | 0.0592 | 248 B |
37+
| EmptyApiSchema | 10.918 ns | 0.3190 ns | 0.0175 ns | 0.1224 | 512 B |
38+
| EmptyApiSecurityRequirement | 6.793 ns | 0.8479 ns | 0.0465 ns | 0.0249 | 104 B |
39+
| EmptyApiSecurityScheme | 2.128 ns | 0.2049 ns | 0.0112 ns | 0.0210 | 88 B |
40+
| EmptyApiServer | 1.850 ns | 0.2318 ns | 0.0127 ns | 0.0115 | 48 B |
41+
| EmptyApiServerVariable | 2.002 ns | 0.6545 ns | 0.0359 ns | 0.0115 | 48 B |
42+
| EmptyApiTag | 1.873 ns | 0.1548 ns | 0.0085 ns | 0.0115 | 48 B |

0 commit comments

Comments
 (0)