• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }