Remi NGUYEN VAN | f33b6ea | 2020-06-03 16:10:43 +0900 | [diff] [blame] | 1 | { |
Remi NGUYEN VAN | a773ccb | 2020-06-25 03:58:10 +0000 | [diff] [blame] | 2 | "presubmit": [ |
Remi NGUYEN VAN | 48c6888 | 2021-07-16 01:36:12 +0000 | [diff] [blame] | 3 | { |
| 4 | "name": "ConnectivityCoverageTests" |
| 5 | }, |
Remi NGUYEN VAN | 40da62d | 2022-04-01 11:59:45 +0900 | [diff] [blame] | 6 | { |
| 7 | // In addition to ConnectivityCoverageTests, runs non-connectivity-module tests |
Junyu Lai | b8fc755 | 2023-07-26 14:25:49 +0800 | [diff] [blame] | 8 | "name": "FrameworksNetTests", |
| 9 | "options": [ |
| 10 | { |
| 11 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 12 | } |
| 13 | ] |
Remi NGUYEN VAN | 40da62d | 2022-04-01 11:59:45 +0900 | [diff] [blame] | 14 | }, |
Remi NGUYEN VAN | ad380c1 | 2021-03-01 06:48:29 +0000 | [diff] [blame] | 15 | // Run in addition to mainline-presubmit as mainline-presubmit is not |
| 16 | // supported in every branch. |
| 17 | // CtsNetTestCasesLatestSdk uses stable API shims, so does not exercise |
| 18 | // some latest APIs. Run CtsNetTestCases to get coverage of newer APIs. |
Remi NGUYEN VAN | f33b6ea | 2020-06-03 16:10:43 +0900 | [diff] [blame] | 19 | { |
Remi NGUYEN VAN | ad380c1 | 2021-03-01 06:48:29 +0000 | [diff] [blame] | 20 | "name": "CtsNetTestCases", |
Remi NGUYEN VAN | f33b6ea | 2020-06-03 16:10:43 +0900 | [diff] [blame] | 21 | "options": [ |
| 22 | { |
| 23 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
Remi NGUYEN VAN | 9a689f8 | 2021-10-28 09:41:21 +0900 | [diff] [blame] | 24 | }, |
| 25 | { |
| 26 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
Remi NGUYEN VAN | f33b6ea | 2020-06-03 16:10:43 +0900 | [diff] [blame] | 27 | } |
| 28 | ] |
Remi NGUYEN VAN | d954bfc | 2021-05-20 01:25:47 +0000 | [diff] [blame] | 29 | }, |
Paul Hu | 206e5f0 | 2022-05-16 15:51:46 +0800 | [diff] [blame] | 30 | // Also run CtsNetTestCasesLatestSdk to ensure tests using older shims pass. |
| 31 | { |
| 32 | "name": "CtsNetTestCasesLatestSdk", |
| 33 | "options": [ |
| 34 | { |
| 35 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 36 | }, |
| 37 | { |
| 38 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 39 | } |
| 40 | ] |
| 41 | }, |
Lorenzo Colitti | 9e61b82 | 2022-05-28 00:20:06 +0900 | [diff] [blame] | 42 | // CTS tests that target older SDKs. |
| 43 | { |
Remi NGUYEN VAN | 348bbb0 | 2022-07-19 16:33:04 +0900 | [diff] [blame] | 44 | "name": "CtsNetTestCasesMaxTargetSdk30", |
| 45 | "options": [ |
| 46 | { |
| 47 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 48 | }, |
| 49 | { |
| 50 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 51 | } |
| 52 | ] |
| 53 | }, |
| 54 | { |
Lorenzo Colitti | 9e61b82 | 2022-05-28 00:20:06 +0900 | [diff] [blame] | 55 | "name": "CtsNetTestCasesMaxTargetSdk31", |
| 56 | "options": [ |
| 57 | { |
| 58 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 59 | }, |
| 60 | { |
| 61 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 62 | } |
| 63 | ] |
| 64 | }, |
Remi NGUYEN VAN | d954bfc | 2021-05-20 01:25:47 +0000 | [diff] [blame] | 65 | { |
Yuyang Huang | 72bc600 | 2023-02-17 17:29:01 +0900 | [diff] [blame] | 66 | "name": "CtsNetTestCasesMaxTargetSdk33", |
| 67 | "options": [ |
| 68 | { |
| 69 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 70 | }, |
| 71 | { |
| 72 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 73 | } |
| 74 | ] |
| 75 | }, |
| 76 | { |
Lorenzo Colitti | 98c83d0 | 2022-02-18 17:24:48 +0900 | [diff] [blame] | 77 | "name": "bpf_existence_test" |
| 78 | }, |
| 79 | { |
Tyler Wear | b4ab4c3 | 2022-03-03 21:44:30 -0800 | [diff] [blame] | 80 | "name": "connectivity_native_test" |
| 81 | }, |
| 82 | { |
Hungming Chen | 2e6d107 | 2022-05-30 16:18:37 +0800 | [diff] [blame] | 83 | "name": "libclat_test" |
| 84 | }, |
| 85 | { |
Ken Chen | 1647f60 | 2021-10-05 21:55:22 +0800 | [diff] [blame] | 86 | "name": "netd_updatable_unit_test" |
| 87 | }, |
| 88 | { |
Remi NGUYEN VAN | d954bfc | 2021-05-20 01:25:47 +0000 | [diff] [blame] | 89 | "name": "TetheringTests" |
| 90 | }, |
| 91 | { |
| 92 | "name": "TetheringIntegrationTests" |
Wayne Ma | 7be6bce | 2022-01-12 16:29:49 +0800 | [diff] [blame] | 93 | }, |
| 94 | { |
| 95 | "name": "traffic_controller_unit_test" |
Ken Chen | f426b2b | 2022-01-23 15:39:13 +0800 | [diff] [blame] | 96 | }, |
| 97 | { |
| 98 | "name": "libnetworkstats_test" |
Remi NGUYEN VAN | 3b81323 | 2022-02-16 12:15:14 +0900 | [diff] [blame] | 99 | }, |
| 100 | { |
| 101 | "name": "FrameworksNetIntegrationTests" |
Chidera Olibie | 7157837 | 2023-02-13 14:29:03 +0000 | [diff] [blame] | 102 | }, |
| 103 | // Runs both NetHttpTests and CtsNetHttpTestCases |
| 104 | { |
Chidera Olibie | 356b74c | 2023-04-03 14:40:01 +0000 | [diff] [blame] | 105 | "name": "NetHttpCoverageTests", |
| 106 | "options": [ |
| 107 | { |
| 108 | // These sometimes take longer than 1 min which is the presubmit timeout |
| 109 | "exclude-annotation": "androidx.test.filters.LargeTest" |
| 110 | } |
| 111 | ] |
Remi NGUYEN VAN | f33b6ea | 2020-06-03 16:10:43 +0900 | [diff] [blame] | 112 | } |
easoncylee | a1b13d6 | 2020-06-12 14:14:14 +0800 | [diff] [blame] | 113 | ], |
markchien | 911cf8f | 2021-07-19 17:23:54 +0800 | [diff] [blame] | 114 | "postsubmit": [ |
| 115 | { |
| 116 | "name": "TetheringPrivilegedTests" |
Lorenzo Colitti | 3b38b12 | 2022-01-12 16:06:07 +0900 | [diff] [blame] | 117 | }, |
Lorenzo Colitti | 3b38b12 | 2022-01-12 16:06:07 +0900 | [diff] [blame] | 118 | { |
Ken Chen | 1647f60 | 2021-10-05 21:55:22 +0800 | [diff] [blame] | 119 | "name": "netd_updatable_unit_test", |
| 120 | "keywords": ["netd-device-kernel-4.9", "netd-device-kernel-4.14"] |
| 121 | }, |
| 122 | { |
Wayne Ma | 320b95d | 2022-01-23 23:43:11 +0800 | [diff] [blame] | 123 | "name": "traffic_controller_unit_test", |
Wayne Ma | 7be6bce | 2022-01-12 16:29:49 +0800 | [diff] [blame] | 124 | "keywords": ["netd-device-kernel-4.9", "netd-device-kernel-4.14"] |
Ken Chen | f426b2b | 2022-01-23 15:39:13 +0800 | [diff] [blame] | 125 | }, |
| 126 | { |
Remi NGUYEN VAN | 3b81323 | 2022-02-16 12:15:14 +0900 | [diff] [blame] | 127 | "name": "FrameworksNetDeflakeTest" |
Junyu Lai | b8fc755 | 2023-07-26 14:25:49 +0800 | [diff] [blame] | 128 | }, |
Remi NGUYEN VAN | 8db52a5 | 2023-07-26 16:15:03 +0900 | [diff] [blame^] | 129 | // Postsubmit on virtual devices to monitor flakiness of @SkipPresubmit methods |
| 130 | { |
| 131 | "name": "CtsNetTestCases", |
| 132 | "options": [ |
| 133 | { |
| 134 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 135 | } |
| 136 | ] |
| 137 | }, |
Junyu Lai | b8fc755 | 2023-07-26 14:25:49 +0800 | [diff] [blame] | 138 | { |
| 139 | "name": "FrameworksNetTests" |
markchien | 911cf8f | 2021-07-19 17:23:54 +0800 | [diff] [blame] | 140 | } |
| 141 | ], |
easoncylee | a1b13d6 | 2020-06-12 14:14:14 +0800 | [diff] [blame] | 142 | "mainline-presubmit": [ |
| 143 | { |
easoncylee | 48c4cf6 | 2020-10-23 13:10:01 +0800 | [diff] [blame] | 144 | "name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", |
easoncylee | a1b13d6 | 2020-06-12 14:14:14 +0800 | [diff] [blame] | 145 | "options": [ |
| 146 | { |
| 147 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
Remi NGUYEN VAN | 9a689f8 | 2021-10-28 09:41:21 +0900 | [diff] [blame] | 148 | }, |
| 149 | { |
Remi NGUYEN VAN | 8db52a5 | 2023-07-26 16:15:03 +0900 | [diff] [blame^] | 150 | "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit" |
| 151 | }, |
| 152 | { |
Remi NGUYEN VAN | 9a689f8 | 2021-10-28 09:41:21 +0900 | [diff] [blame] | 153 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
easoncylee | a1b13d6 | 2020-06-12 14:14:14 +0800 | [diff] [blame] | 154 | } |
| 155 | ] |
Remi NGUYEN VAN | 5a1f2f7 | 2021-07-01 13:55:49 +0000 | [diff] [blame] | 156 | }, |
| 157 | { |
Remi NGUYEN VAN | 348bbb0 | 2022-07-19 16:33:04 +0900 | [diff] [blame] | 158 | "name": "CtsNetTestCasesMaxTargetSdk30[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", |
| 159 | "options": [ |
| 160 | { |
| 161 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 162 | }, |
| 163 | { |
Remi NGUYEN VAN | 8db52a5 | 2023-07-26 16:15:03 +0900 | [diff] [blame^] | 164 | "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit" |
| 165 | }, |
| 166 | { |
Remi NGUYEN VAN | 348bbb0 | 2022-07-19 16:33:04 +0900 | [diff] [blame] | 167 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 168 | } |
| 169 | ] |
| 170 | }, |
| 171 | { |
Lorenzo Colitti | 9e61b82 | 2022-05-28 00:20:06 +0900 | [diff] [blame] | 172 | "name": "CtsNetTestCasesMaxTargetSdk31[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", |
| 173 | "options": [ |
| 174 | { |
| 175 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 176 | }, |
| 177 | { |
Remi NGUYEN VAN | 8db52a5 | 2023-07-26 16:15:03 +0900 | [diff] [blame^] | 178 | "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit" |
| 179 | }, |
| 180 | { |
Lorenzo Colitti | 9e61b82 | 2022-05-28 00:20:06 +0900 | [diff] [blame] | 181 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 182 | } |
| 183 | ] |
| 184 | }, |
Yuyang Huang | 72bc600 | 2023-02-17 17:29:01 +0900 | [diff] [blame] | 185 | { |
| 186 | "name": "CtsNetTestCasesMaxTargetSdk33[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", |
| 187 | "options": [ |
| 188 | { |
| 189 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 190 | }, |
| 191 | { |
Remi NGUYEN VAN | 8db52a5 | 2023-07-26 16:15:03 +0900 | [diff] [blame^] | 192 | "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit" |
| 193 | }, |
| 194 | { |
Yuyang Huang | 72bc600 | 2023-02-17 17:29:01 +0900 | [diff] [blame] | 195 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 196 | } |
| 197 | ] |
| 198 | }, |
Remi NGUYEN VAN | 7d80063 | 2022-05-31 10:53:47 +0900 | [diff] [blame] | 199 | // Test with APK modules only, in cases where APEX is not supported, or the other modules |
| 200 | // were simply not updated |
| 201 | { |
| 202 | "name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk]", |
| 203 | "options": [ |
| 204 | { |
| 205 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 206 | }, |
| 207 | { |
Remi NGUYEN VAN | 8db52a5 | 2023-07-26 16:15:03 +0900 | [diff] [blame^] | 208 | "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit" |
| 209 | }, |
| 210 | { |
Remi NGUYEN VAN | 7d80063 | 2022-05-31 10:53:47 +0900 | [diff] [blame] | 211 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 212 | }, |
| 213 | { |
| 214 | "exclude-annotation": "com.android.testutils.ConnectivityModuleTest" |
Mike Yu | cc5dbf9 | 2023-06-06 11:26:28 +0000 | [diff] [blame] | 215 | }, |
| 216 | { |
| 217 | "exclude-annotation": "com.android.testutils.DnsResolverModuleTest" |
Remi NGUYEN VAN | 7d80063 | 2022-05-31 10:53:47 +0900 | [diff] [blame] | 218 | } |
| 219 | ] |
| 220 | }, |
| 221 | // Test with connectivity/tethering module only, to catch integration issues with older versions |
| 222 | // of other modules. "new tethering + old NetworkStack" is not a configuration that should |
| 223 | // really exist in the field, but there is no strong guarantee, and it is required by MTS |
| 224 | // testing for module qualification, where modules are tested independently. |
| 225 | { |
| 226 | "name": "CtsNetTestCasesLatestSdk[com.google.android.tethering.apex]", |
| 227 | "options": [ |
| 228 | { |
| 229 | "exclude-annotation": "com.android.testutils.SkipPresubmit" |
| 230 | }, |
| 231 | { |
Remi NGUYEN VAN | 8db52a5 | 2023-07-26 16:15:03 +0900 | [diff] [blame^] | 232 | "exclude-annotation": "com.android.testutils.SkipMainlinePresubmit" |
| 233 | }, |
| 234 | { |
Remi NGUYEN VAN | 7d80063 | 2022-05-31 10:53:47 +0900 | [diff] [blame] | 235 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
Mike Yu | cc5dbf9 | 2023-06-06 11:26:28 +0000 | [diff] [blame] | 236 | }, |
| 237 | { |
| 238 | "exclude-annotation": "com.android.testutils.DnsResolverModuleTest" |
Remi NGUYEN VAN | 7d80063 | 2022-05-31 10:53:47 +0900 | [diff] [blame] | 239 | } |
| 240 | ] |
| 241 | }, |
Lorenzo Colitti | 9e61b82 | 2022-05-28 00:20:06 +0900 | [diff] [blame] | 242 | { |
Lorenzo Colitti | 98c83d0 | 2022-02-18 17:24:48 +0900 | [diff] [blame] | 243 | "name": "bpf_existence_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]" |
| 244 | }, |
| 245 | { |
Tyler Wear | b4ab4c3 | 2022-03-03 21:44:30 -0800 | [diff] [blame] | 246 | "name": "connectivity_native_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]" |
| 247 | }, |
| 248 | { |
Ken Chen | 1647f60 | 2021-10-05 21:55:22 +0800 | [diff] [blame] | 249 | "name": "netd_updatable_unit_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]" |
| 250 | }, |
| 251 | { |
Remi NGUYEN VAN | 5a1f2f7 | 2021-07-01 13:55:49 +0000 | [diff] [blame] | 252 | "name": "ConnectivityCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]" |
Wayne Ma | 7be6bce | 2022-01-12 16:29:49 +0800 | [diff] [blame] | 253 | }, |
| 254 | { |
| 255 | "name": "traffic_controller_unit_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]" |
Ken Chen | f426b2b | 2022-01-23 15:39:13 +0800 | [diff] [blame] | 256 | }, |
| 257 | { |
| 258 | "name": "libnetworkstats_test[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]" |
Chidera Olibie | d66799a | 2023-01-24 20:22:56 +0000 | [diff] [blame] | 259 | }, |
| 260 | { |
Chidera Olibie | 356b74c | 2023-04-03 14:40:01 +0000 | [diff] [blame] | 261 | "name": "NetHttpCoverageTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", |
| 262 | "options": [ |
| 263 | { |
| 264 | // These sometimes take longer than 1 min which is the presubmit timeout |
| 265 | "exclude-annotation": "androidx.test.filters.LargeTest" |
| 266 | } |
| 267 | ] |
Mark Chien | f8870fa | 2022-07-22 09:56:52 +0000 | [diff] [blame] | 268 | }, |
| 269 | { |
Xiao Ma | 161b70c | 2023-06-01 13:36:46 +0900 | [diff] [blame] | 270 | "name": "CtsTetheringTestLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", |
| 271 | "options": [ |
| 272 | { |
| 273 | "exclude-annotation": "com.android.testutils.NetworkStackModuleTest" |
| 274 | } |
| 275 | ] |
easoncylee | a1b13d6 | 2020-06-12 14:14:14 +0800 | [diff] [blame] | 276 | } |
Remi NGUYEN VAN | 1bc6287 | 2020-11-25 07:35:21 +0000 | [diff] [blame] | 277 | ], |
Remi NGUYEN VAN | 1bc6287 | 2020-11-25 07:35:21 +0000 | [diff] [blame] | 278 | "mainline-postsubmit": [ |
Remi NGUYEN VAN | d954bfc | 2021-05-20 01:25:47 +0000 | [diff] [blame] | 279 | // Tests on physical devices with SIM cards: postsubmit only for capacity constraints |
Remi NGUYEN VAN | 1bc6287 | 2020-11-25 07:35:21 +0000 | [diff] [blame] | 280 | { |
| 281 | "name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", |
| 282 | "keywords": ["sim"] |
Mark Chien | f8870fa | 2022-07-22 09:56:52 +0000 | [diff] [blame] | 283 | }, |
| 284 | { |
Xiao Ma | 161b70c | 2023-06-01 13:36:46 +0900 | [diff] [blame] | 285 | "name": "CtsTetheringTestLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", |
| 286 | "keywords": ["sim"], |
| 287 | "options": [ |
| 288 | { |
| 289 | "exclude-annotation": "com.android.testutils.NetworkStackModuleTest" |
| 290 | } |
| 291 | ] |
Remi NGUYEN VAN | 8db52a5 | 2023-07-26 16:15:03 +0900 | [diff] [blame^] | 292 | }, |
| 293 | // Postsubmit on virtual devices to monitor flakiness of @SkipMainlinePresubmit methods |
| 294 | { |
| 295 | "name": "CtsNetTestCasesLatestSdk[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]", |
| 296 | "options": [ |
| 297 | { |
| 298 | "exclude-annotation": "androidx.test.filters.RequiresDevice" |
| 299 | } |
| 300 | ] |
Remi NGUYEN VAN | d954bfc | 2021-05-20 01:25:47 +0000 | [diff] [blame] | 301 | } |
| 302 | ], |
| 303 | "imports": [ |
| 304 | { |
Remi NGUYEN VAN | f353baf | 2021-03-19 16:03:06 +0000 | [diff] [blame] | 305 | "path": "frameworks/base/core/java/android/net" |
| 306 | }, |
| 307 | { |
Filip Zakrzewski | 8a5823d | 2022-01-07 20:47:30 +0000 | [diff] [blame] | 308 | "path": "frameworks/opt/net/ethernet" |
| 309 | }, |
| 310 | { |
Remi NGUYEN VAN | f353baf | 2021-03-19 16:03:06 +0000 | [diff] [blame] | 311 | "path": "packages/modules/NetworkStack" |
| 312 | }, |
| 313 | { |
| 314 | "path": "packages/modules/CaptivePortalLogin" |
Lorenzo Colitti | 35bf22b | 2022-08-01 10:23:23 +0900 | [diff] [blame] | 315 | }, |
| 316 | { |
| 317 | "path": "vendor/xts/gts-tests/hostsidetests/networkstack" |
Remi NGUYEN VAN | f353baf | 2021-03-19 16:03:06 +0000 | [diff] [blame] | 318 | } |
Remi NGUYEN VAN | f33b6ea | 2020-06-03 16:10:43 +0900 | [diff] [blame] | 319 | ] |
| 320 | } |