1 /**
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <stdlib.h>
17 #include <time.h>
18 #include "functionalext.h"
19
20 struct mktime_struct {
21 const char *tz;
22 const time_t result;
23 };
24
25 static const struct mktime_struct gResultData[] = {
26 {"Pacific/Rarotonga", 1659177614},
27 {"Pacific/Wake", 1659177614},
28 {"Pacific/Tarawa", 1659177614},
29 {"Pacific/Fakaofo", 1659177614},
30 {"Pacific/Apia", 1659177614},
31 {"Pacific/Kwajalein", 1659177614},
32 {"Pacific/Tahiti", 1659177614},
33 {"Pacific/Easter", 1659177614},
34 {"Pacific/Tongatapu", 1659177614},
35 {"Pacific/Guadalcanal", 1659177614},
36 {"Pacific/Chuuk", 1659177614},
37 {"Pacific/Pitcairn", 1659177614},
38 {"Pacific/Pohnpei", 1659177614},
39 {"Pacific/Fiji", 1659177614},
40 {"Pacific/Majuro", 1659177614},
41 {"Pacific/Kiritimati", 1659177614},
42 {"Pacific/Port_Moresby", 1659177614},
43 {"Pacific/Galapagos", 1659177614},
44 {"Pacific/Saipan", 1659177614},
45 {"Pacific/Marquesas", 1659177614},
46 {"Pacific/Wallis", 1659177614},
47 {"Pacific/Palau", 1659177614},
48 {"Pacific/Bougainville", 1659177614},
49 {"Pacific/Honolulu", 1659177614},
50 {"Pacific/Noumea", 1659177614},
51 {"Pacific/Pago_Pago", 1659177614},
52 {"Pacific/Guam", 1659177614},
53 {"Pacific/Auckland", 1659177614},
54 {"Pacific/Norfolk", 1659177614},
55 {"Pacific/Kosrae", 1659177614},
56 {"Pacific/Nauru", 1659177614},
57 {"Pacific/Chatham", 1659177614},
58 {"Pacific/Efate", 1659177614},
59 {"Pacific/Midway", 1659177614},
60 {"Pacific/Niue", 1659177614},
61 {"Pacific/Enderbury", 1659177614},
62 {"Pacific/Funafuti", 1659177614},
63 {"Pacific/Gambier", 1659177614},
64 {"EET", 1659177614},
65 {"MST", 1659177614},
66 {"Europe/Dublin", 1659177614},
67 {"Europe/Minsk", 1659177614},
68 {"Europe/Budapest", 1659177614},
69 {"Europe/Riga", 1659177614},
70 {"Europe/Jersey", 1659177614},
71 {"Europe/London", 1659177614},
72 {"Europe/Istanbul", 1659177614},
73 {"Europe/Moscow", 1659177614},
74 {"Europe/Chisinau", 1659177614},
75 {"Europe/Andorra", 1659177614},
76 {"Europe/Vaduz", 1659177614},
77 {"Europe/Zaporozhye", 1659177614},
78 {"Europe/San_Marino", 1659177614},
79 {"Europe/Monaco", 1659177614},
80 {"Europe/Ulyanovsk", 1659177614},
81 {"Europe/Isle_of_Man", 1659177614},
82 {"Europe/Tirane", 1659177614},
83 {"Europe/Vatican", 1659177614},
84 {"Europe/Belgrade", 1659177614},
85 {"Europe/Paris", 1659177614},
86 {"Europe/Nicosia", 1659177614},
87 {"Europe/Athens", 1659177614},
88 {"Europe/Malta", 1659177614},
89 {"Europe/Astrakhan", 1659177614},
90 {"Europe/Bratislava", 1659177614},
91 {"Europe/Uzhgorod", 1659177614},
92 {"Europe/Zurich", 1659177614},
93 {"Europe/Brussels", 1659177614},
94 {"Europe/Sofia", 1659177614},
95 {"Europe/Kiev", 1659177614},
96 {"Europe/Guernsey", 1659177614},
97 {"Europe/Busingen", 1659177614},
98 {"Europe/Copenhagen", 1659177614},
99 {"Europe/Skopje", 1659177614},
100 {"Europe/Luxembourg", 1659177614},
101 {"Europe/Lisbon", 1659177614},
102 {"Europe/Saratov", 1659177614},
103 {"Europe/Zagreb", 1659177614},
104 {"Europe/Simferopol", 1659177614},
105 {"Europe/Amsterdam", 1659177614},
106 {"Europe/Oslo", 1659177614},
107 {"Europe/Samara", 1659177614},
108 {"Europe/Warsaw", 1659177614},
109 {"Europe/Prague", 1659177614},
110 {"Europe/Vienna", 1659177614},
111 {"Europe/Mariehamn", 1659177614},
112 {"Europe/Gibraltar", 1659177614},
113 {"Europe/Stockholm", 1659177614},
114 {"Europe/Tallinn", 1659177614},
115 {"Europe/Kaliningrad", 1659177614},
116 {"Europe/Podgorica", 1659177614},
117 {"Europe/Kirov", 1659177614},
118 {"Europe/Helsinki", 1659177614},
119 {"Europe/Sarajevo", 1659177614},
120 {"Europe/Rome", 1659177614},
121 {"Europe/Bucharest", 1659177614},
122 {"Europe/Berlin", 1659177614},
123 {"Europe/Volgograd", 1659177614},
124 {"Europe/Ljubljana", 1659177614},
125 {"Europe/Vilnius", 1659177614},
126 {"Europe/Madrid", 1659177614},
127 {"Antarctica/Casey", 1659177614},
128 {"Antarctica/Macquarie", 1659177614},
129 {"Antarctica/Rothera", 1659177614},
130 {"Antarctica/Vostok", 1659177614},
131 {"Antarctica/Davis", 1659177614},
132 {"Antarctica/Troll", 1659177614},
133 {"Antarctica/Mawson", 1659177614},
134 {"Antarctica/McMurdo", 1659177614},
135 {"Antarctica/DumontDUrville", 1659177614},
136 {"Antarctica/Palmer", 1659177614},
137 {"Antarctica/Syowa", 1659177614},
138 {"WET", 1659177614},
139 {"CST6CDT", 1659177614},
140 {"MET", 1659177614},
141 {"Arctic/Longyearbyen", 1659177614},
142 {"Atlantic/Faroe", 1659177614},
143 {"Atlantic/Madeira", 1659177614},
144 {"Atlantic/Canary", 1659177614},
145 {"Atlantic/Reykjavik", 1659177614},
146 {"Atlantic/St_Helena", 1659177614},
147 {"Atlantic/South_Georgia", 1659177614},
148 {"Atlantic/Azores", 1659177614},
149 {"Atlantic/Bermuda", 1659177614},
150 {"Atlantic/Stanley", 1659177614},
151 {"Atlantic/Cape_Verde", 1659177614},
152 {"Africa/Niamey", 1659177614},
153 {"Africa/Algiers", 1659177614},
154 {"Africa/Maputo", 1659177614},
155 {"Africa/Johannesburg", 1659177614},
156 {"Africa/Addis_Ababa", 1659177614},
157 {"Africa/Malabo", 1659177614},
158 {"Africa/Cairo", 1659177614},
159 {"Africa/Bissau", 1659177614},
160 {"Africa/Ndjamena", 1659177614},
161 {"Africa/Tunis", 1659177614},
162 {"Africa/Harare", 1659177614},
163 {"Africa/El_Aaiun", 1659177614},
164 {"Africa/Kampala", 1659177614},
165 {"Africa/Libreville", 1659177614},
166 {"Africa/Blantyre", 1659177614},
167 {"Africa/Brazzaville", 1659177614},
168 {"Africa/Bangui", 1659177614},
169 {"Africa/Luanda", 1659177614},
170 {"Africa/Freetown", 1659177614},
171 {"Africa/Casablanca", 1659177614},
172 {"Africa/Conakry", 1659177614},
173 {"Africa/Kinshasa", 1659177614},
174 {"Africa/Dakar", 1659177614},
175 {"Africa/Ouagadougou", 1659177614},
176 {"Africa/Nouakchott", 1659177614},
177 {"Africa/Monrovia", 1659177614},
178 {"Africa/Kigali", 1659177614},
179 {"Africa/Windhoek", 1659177614},
180 {"Africa/Juba", 1659177614},
181 {"Africa/Sao_Tome", 1659177614},
182 {"Africa/Banjul", 1659177614},
183 {"Africa/Mbabane", 1659177614},
184 {"Africa/Asmara", 1659177614},
185 {"Africa/Djibouti", 1659177614},
186 {"Africa/Tripoli", 1659177614},
187 {"Africa/Ceuta", 1659177614},
188 {"Africa/Khartoum", 1659177614},
189 {"Africa/Bamako", 1659177614},
190 {"Africa/Porto-Novo", 1659177614},
191 {"Africa/Mogadishu", 1659177614},
192 {"Africa/Abidjan", 1659177614},
193 {"Africa/Lusaka", 1659177614},
194 {"Africa/Lagos", 1659177614},
195 {"Africa/Lubumbashi", 1659177614},
196 {"Africa/Nairobi", 1659177614},
197 {"Africa/Accra", 1659177614},
198 {"Africa/Maseru", 1659177614},
199 {"Africa/Lome", 1659177614},
200 {"Africa/Douala", 1659177614},
201 {"Africa/Bujumbura", 1659177614},
202 {"Africa/Dar_es_Salaam", 1659177614},
203 {"Africa/Gaborone", 1659177614},
204 {"Australia/Adelaide", 1659177614},
205 {"Australia/Broken_Hill", 1659177614},
206 {"Australia/Perth", 1659177614},
207 {"Australia/Darwin", 1659177614},
208 {"Australia/Lord_Howe", 1659177614},
209 {"Australia/Hobart", 1659177614},
210 {"Australia/Brisbane", 1659177614},
211 {"Australia/Sydney", 1659177614},
212 {"Australia/Lindeman", 1659177614},
213 {"Australia/Melbourne", 1659177614},
214 {"Australia/Eucla", 1659177614},
215 {"America/Grand_Turk", 1659177614},
216 {"America/St_Thomas", 1659177614},
217 {"America/Havana", 1659177614},
218 {"America/Thunder_Bay", 1659177614},
219 {"America/Inuvik", 1659177614},
220 {"America/Winnipeg", 1659177614},
221 {"America/Maceio", 1659177614},
222 {"America/Chihuahua", 1659177614},
223 {"America/North_Dakota/Beulah", 1659177614},
224 {"America/North_Dakota/Center", 1659177614},
225 {"America/North_Dakota/New_Salem", 1659177614},
226 {"America/Campo_Grande", 1659177614},
227 {"America/Scoresbysund", 1659177614},
228 {"America/Tijuana", 1659177614},
229 {"America/Bahia", 1659177614},
230 {"America/St_Vincent", 1659177614},
231 {"America/Creston", 1659177614},
232 {"America/Dawson", 1659177614},
233 {"America/Tegucigalpa", 1659177614},
234 {"America/Lima", 1659177614},
235 {"America/Mexico_City", 1659177614},
236 {"America/Dominica", 1659177614},
237 {"America/Atikokan", 1659177614},
238 {"America/Port-au-Prince", 1659177614},
239 {"America/Yakutat", 1659177614},
240 {"America/St_Kitts", 1659177614},
241 {"America/Guatemala", 1659177614},
242 {"America/St_Barthelemy", 1659177614},
243 {"America/Vancouver", 1659177614},
244 {"America/Jamaica", 1659177614},
245 {"America/Whitehorse", 1659177614},
246 {"America/Asuncion", 1659177614},
247 {"America/Toronto", 1659177614},
248 {"America/Hermosillo", 1659177614},
249 {"America/Denver", 1659177614},
250 {"America/Mazatlan", 1659177614},
251 {"America/Iqaluit", 1659177614},
252 {"America/Nuuk", 1659177614},
253 {"America/Cayenne", 1659177614},
254 {"America/Santarem", 1659177614},
255 {"America/Noronha", 1659177614},
256 {"America/Ojinaga", 1659177614},
257 {"America/Fort_Nelson", 1659177614},
258 {"America/Aruba", 1659177614},
259 {"America/Indiana/Vevay", 1659177614},
260 {"America/Indiana/Marengo", 1659177614},
261 {"America/Indiana/Indianapolis", 1659177614},
262 {"America/Indiana/Tell_City", 1659177614},
263 {"America/Indiana/Petersburg", 1659177614},
264 {"America/Indiana/Winamac", 1659177614},
265 {"America/Indiana/Knox", 1659177614},
266 {"America/Indiana/Vincennes", 1659177614},
267 {"America/Cayman", 1659177614},
268 {"America/Sao_Paulo", 1659177614},
269 {"America/Curacao", 1659177614},
270 {"America/Anchorage", 1659177614},
271 {"America/Guyana", 1659177614},
272 {"America/Rankin_Inlet", 1659177614},
273 {"America/Antigua", 1659177614},
274 {"America/Juneau", 1659177614},
275 {"America/Merida", 1659177614},
276 {"America/Punta_Arenas", 1659177614},
277 {"America/Moncton", 1659177614},
278 {"America/Fortaleza", 1659177614},
279 {"America/Resolute", 1659177614},
280 {"America/Nassau", 1659177614},
281 {"America/Edmonton", 1659177614},
282 {"America/Regina", 1659177614},
283 {"America/Halifax", 1659177614},
284 {"America/Danmarkshavn", 1659177614},
285 {"America/Metlakatla", 1659177614},
286 {"America/Guadeloupe", 1659177614},
287 {"America/Caracas", 1659177614},
288 {"America/Detroit", 1659177614},
289 {"America/Matamoros", 1659177614},
290 {"America/Glace_Bay", 1659177614},
291 {"America/Phoenix", 1659177614},
292 {"America/La_Paz", 1659177614},
293 {"America/Swift_Current", 1659177614},
294 {"America/Nipigon", 1659177614},
295 {"America/Cancun", 1659177614},
296 {"America/Port_of_Spain", 1659177614},
297 {"America/Kralendijk", 1659177614},
298 {"America/Grenada", 1659177614},
299 {"America/Belem", 1659177614},
300 {"America/Managua", 1659177614},
301 {"America/Adak", 1659177614},
302 {"America/St_Lucia", 1659177614},
303 {"America/Rio_Branco", 1659177614},
304 {"America/Santiago", 1659177614},
305 {"America/Puerto_Rico", 1659177614},
306 {"America/Miquelon", 1659177614},
307 {"America/Cuiaba", 1659177614},
308 {"America/Martinique", 1659177614},
309 {"America/Argentina/Buenos_Aires", 1659177614},
310 {"America/Argentina/San_Luis", 1659177614},
311 {"America/Argentina/Catamarca", 1659177614},
312 {"America/Argentina/Jujuy", 1659177614},
313 {"America/Argentina/Salta", 1659177614},
314 {"America/Argentina/Ushuaia", 1659177614},
315 {"America/Argentina/Mendoza", 1659177614},
316 {"America/Argentina/Rio_Gallegos", 1659177614},
317 {"America/Argentina/Tucuman", 1659177614},
318 {"America/Argentina/San_Juan", 1659177614},
319 {"America/Argentina/Cordoba", 1659177614},
320 {"America/Argentina/La_Rioja", 1659177614},
321 {"America/Barbados", 1659177614},
322 {"America/Monterrey", 1659177614},
323 {"America/Thule", 1659177614},
324 {"America/Montserrat", 1659177614},
325 {"America/Guayaquil", 1659177614},
326 {"America/St_Johns", 1659177614},
327 {"America/Boise", 1659177614},
328 {"America/Manaus", 1659177614},
329 {"America/Nome", 1659177614},
330 {"America/Goose_Bay", 1659177614},
331 {"America/Belize", 1659177614},
332 {"America/Sitka", 1659177614},
333 {"America/Dawson_Creek", 1659177614},
334 {"America/Recife", 1659177614},
335 {"America/Kentucky/Louisville", 1659177614},
336 {"America/Kentucky/Monticello", 1659177614},
337 {"America/New_York", 1659177614},
338 {"America/Tortola", 1659177614},
339 {"America/Chicago", 1659177614},
340 {"America/Pangnirtung", 1659177614},
341 {"America/Boa_Vista", 1659177614},
342 {"America/Bogota", 1659177614},
343 {"America/Rainy_River", 1659177614},
344 {"America/El_Salvador", 1659177614},
345 {"America/Bahia_Banderas", 1659177614},
346 {"America/Yellowknife", 1659177614},
347 {"America/Montevideo", 1659177614},
348 {"America/Cambridge_Bay", 1659177614},
349 {"America/Panama", 1659177614},
350 {"America/Santo_Domingo", 1659177614},
351 {"America/Anguilla", 1659177614},
352 {"America/Paramaribo", 1659177614},
353 {"America/Marigot", 1659177614},
354 {"America/Menominee", 1659177614},
355 {"America/Blanc-Sablon", 1659177614},
356 {"America/Costa_Rica", 1659177614},
357 {"America/Los_Angeles", 1659177614},
358 {"America/Lower_Princes", 1659177614},
359 {"America/Eirunepe", 1659177614},
360 {"America/Araguaina", 1659177614},
361 {"America/Porto_Velho", 1659177614},
362 {"EST", 1659177614},
363 {"CET", 1659177614},
364 {"MST7MDT", 1659177614},
365 {"Indian/Chagos", 1659177614},
366 {"Indian/Kerguelen", 1659177614},
367 {"Indian/Reunion", 1659177614},
368 {"Indian/Antananarivo", 1659177614},
369 {"Indian/Cocos", 1659177614},
370 {"Indian/Mauritius", 1659177614},
371 {"Indian/Christmas", 1659177614},
372 {"Indian/Maldives", 1659177614},
373 {"Indian/Comoro", 1659177614},
374 {"Indian/Mahe", 1659177614},
375 {"Indian/Mayotte", 1659177614},
376 {"Asia/Novokuznetsk", 1659177614},
377 {"Asia/Magadan", 1659177614},
378 {"Asia/Yangon", 1659177614},
379 {"Asia/Samarkand", 1659177614},
380 {"Asia/Tehran", 1659177614},
381 {"Asia/Dili", 1659177614},
382 {"Asia/Yerevan", 1659177614},
383 {"Asia/Qatar", 1659177614},
384 {"Asia/Chita", 1659177614},
385 {"Asia/Makassar", 1659177614},
386 {"Asia/Hovd", 1659177614},
387 {"Asia/Istanbul", 1659177614},
388 {"Asia/Irkutsk", 1659177614},
389 {"Asia/Pontianak", 1659177614},
390 {"Asia/Qyzylorda", 1659177614},
391 {"Asia/Srednekolymsk", 1659177614},
392 {"Asia/Aden", 1659177614},
393 {"Asia/Kabul", 1659177614},
394 {"Asia/Macau", 1659177614},
395 {"Asia/Riyadh", 1659177614},
396 {"Asia/Taipei", 1659177614},
397 {"Asia/Manila", 1659177614},
398 {"Asia/Aqtau", 1659177614},
399 {"Asia/Thimphu", 1659177614},
400 {"Asia/Shanghai", 1659177614},
401 {"Asia/Choibalsan", 1659177614},
402 {"Asia/Nicosia", 1659177614},
403 {"Asia/Dubai", 1659177614},
404 {"Asia/Baku", 1659177614},
405 {"Asia/Kuching", 1659177614},
406 {"Asia/Gaza", 1659177614},
407 {"Asia/Jayapura", 1659177614},
408 {"Asia/Tokyo", 1659177614},
409 {"Asia/Muscat", 1659177614},
410 {"Asia/Kolkata", 1659177614},
411 {"Asia/Ho_Chi_Minh", 1659177614},
412 {"Asia/Tashkent", 1659177614},
413 {"Asia/Bangkok", 1659177614},
414 {"Asia/Karachi", 1659177614},
415 {"Asia/Krasnoyarsk", 1659177614},
416 {"Asia/Yekaterinburg", 1659177614},
417 {"Asia/Famagusta", 1659177614},
418 {"Asia/Ulaanbaatar", 1659177614},
419 {"Asia/Bahrain", 1659177614},
420 {"Asia/Barnaul", 1659177614},
421 {"Asia/Jerusalem", 1659177614},
422 {"Asia/Qostanay", 1659177614},
423 {"Asia/Ust-Nera", 1659177614},
424 {"Asia/Tomsk", 1659177614},
425 {"Asia/Kuala_Lumpur", 1659177614},
426 {"Asia/Brunei", 1659177614},
427 {"Asia/Aqtobe", 1659177614},
428 {"Asia/Vladivostok", 1659177614},
429 {"Asia/Damascus", 1659177614},
430 {"Asia/Omsk", 1659177614},
431 {"Asia/Almaty", 1659177614},
432 {"Asia/Dhaka", 1659177614},
433 {"Asia/Tbilisi", 1659177614},
434 {"Asia/Baghdad", 1659177614},
435 {"Asia/Phnom_Penh", 1659177614},
436 {"Asia/Kamchatka", 1659177614},
437 {"Asia/Ashgabat", 1659177614},
438 {"Asia/Sakhalin", 1659177614},
439 {"Asia/Novosibirsk", 1659177614},
440 {"Asia/Kuwait", 1659177614},
441 {"Asia/Hong_Kong", 1659177614},
442 {"Asia/Amman", 1659177614},
443 {"Asia/Beirut", 1659177614},
444 {"Asia/Yakutsk", 1659177614},
445 {"Asia/Colombo", 1659177614},
446 {"Asia/Oral", 1659177614},
447 {"Asia/Kathmandu", 1659177614},
448 {"Asia/Bishkek", 1659177614},
449 {"Asia/Hebron", 1659177614},
450 {"Asia/Singapore", 1659177614},
451 {"Asia/Atyrau", 1659177614},
452 {"Asia/Khandyga", 1659177614},
453 {"Asia/Vientiane", 1659177614},
454 {"Asia/Jakarta", 1659177614},
455 {"Asia/Dushanbe", 1659177614},
456 {"Asia/Seoul", 1659177614},
457 {"Asia/Pyongyang", 1659177614},
458 {"Asia/Urumqi", 1659177614},
459 {"Asia/Anadyr", 1659177614},
460 {"PST8PDT", 1659177614},
461 {"HST", 1659177614},
462 {"EST5EDT", 1659177614},
463 };
464
465 static time_t gTime = 1659177614;
466
467 /**
468 * @tc.name : mktime_0100
469 * @tc.desc : according to different time zones, convert time to seconds in duration since 1970-1-1
470 * @tc.level : Level 0
471 */
mktime_0100(void)472 void mktime_0100(void)
473 {
474 for (int32_t i = 0; i < (int32_t)(sizeof(gResultData) / sizeof(gResultData[0])); i++) {
475 const char *tz = gResultData[i].tz;
476 const char *handlerChar;
477 #ifdef TIME_ZONE_SUB_TAG
478 char *str = strrchr(tz, TIME_ZONE_SUB_TAG);
479 if (str) {
480 handlerChar = ++str;
481 } else {
482 handlerChar = tz;
483 }
484 #else
485 handlerChar = tz;
486 #endif
487 setenv("TZ", handlerChar, 1);
488 tzset();
489 struct tm *timeptr = localtime(&gTime);
490 if (!timeptr) {
491 EXPECT_PTRNE("mktime_0100", timeptr, NULL);
492 return;
493 }
494 time_t mk = mktime(timeptr);
495 EXPECT_EQ("mktime_0100", mk, gResultData[i].result);
496 }
497 }
498
main(void)499 int main(void)
500 {
501 mktime_0100();
502 return t_status;
503 }