View | Details | Raw Unified | Return to bug 137307 | Differences between
and this patch

Collapse All | Expand All

(-)t_strptime.c (-9 / +21 lines)
Lines 11-16 Link Here
11
#include <sys/types.h>
11
#include <sys/types.h>
12
#include "time.h"
12
#include "time.h"
13
13
14
#define ALLOW_UW_TESTS 0
15
16
char *strptime (const char *, const char *, struct tm *);
17
14
static int failures = 0;
18
static int failures = 0;
15
19
16
static void explain (char *title, char *fmt, char *src)
20
static void explain (char *title, char *fmt, char *src)
Lines 164-169 Link Here
164
	printf ("\n");
168
	printf ("\n");
165
}
169
}
166
170
171
#if ALLOW_UW_TESTS
172
167
/* Special test for the %U format string.  Try to convert
173
/* Special test for the %U format string.  Try to convert
168
   "2009 21", which is 5/31/2009 */
174
   "2009 21", which is 5/31/2009 */
169
175
Lines 179-192 Link Here
179
	    r.tm_mday == 31 &&
185
	    r.tm_mday == 31 &&
180
	    r.tm_year == 109 &&
186
	    r.tm_year == 109 &&
181
	    r.tm_wday == 0 &&
187
	    r.tm_wday == 0 &&
182
	    r.tm_yday == 151)
188
	    r.tm_yday == 150)
183
		printf ("Result:   Sunday May 31 2009, yday 151 [week 21] (ok)\n");
189
		printf ("Result:   Sunday May 31 2009, yday 150 [week 21] (ok)\n");
184
	else
190
	else
185
	{
191
	{
186
		failures++;
192
		failures++;
187
		printf ("Result:   failed. %02d/%02d/%04d wday=%d yday=%d\n",
193
		printf ("Result:   failed. %02d/%02d/%04d wday=%d yday=%d\n",
188
			r.tm_mon+1, r.tm_mday, r.tm_year+1900, r.tm_wday, r.tm_yday);
194
			r.tm_mon+1, r.tm_mday, r.tm_year+1900, r.tm_wday, r.tm_yday);
189
		printf ("Expected          05/31/2009 wday=0 yday=151\n");
195
		printf ("Expected          05/31/2009 wday=0 yday=150\n");
190
	}
196
	}
191
	printf ("\n");
197
	printf ("\n");
192
}
198
}
Lines 206-219 Link Here
206
	    r.tm_mday == 1 &&
212
	    r.tm_mday == 1 &&
207
	    r.tm_year == 109 &&
213
	    r.tm_year == 109 &&
208
	    r.tm_wday == 1 &&
214
	    r.tm_wday == 1 &&
209
	    r.tm_yday == 152)
215
	    r.tm_yday == 151)
210
		printf ("Result:   Monday June 1 2009, yday 152 [week 21] (ok)\n");
216
		printf ("Result:   Monday June 1 2009, yday 151 [week 21] (ok)\n");
211
	else
217
	else
212
	{
218
	{
213
		failures++;
219
		failures++;
214
		printf ("Result:   failed. %02d/%02d/%04d wday=%d yday=%d\n",
220
		printf ("Result:   failed. %02d/%02d/%04d wday=%d yday=%d\n",
215
			r.tm_mon+1, r.tm_mday, r.tm_year+1900, r.tm_wday, r.tm_yday);
221
			r.tm_mon+1, r.tm_mday, r.tm_year+1900, r.tm_wday, r.tm_yday);
216
		printf ("Expected:         06/01/2009 wday=1 yday=152\n");
222
		printf ("Expected:         06/01/2009 wday=1 yday=151\n");
217
	}
223
	}
218
	printf ("\n");
224
	printf ("\n");
219
}
225
}
Lines 253-259 Link Here
253
	for (year=1998; year<2005; year++)
259
	for (year=1998; year<2005; year++)
254
	{
260
	{
255
		mday = first_sunday[year-1998];
261
		mday = first_sunday[year-1998];
256
		yday = mday;
262
		yday = mday - 1;
257
		printf ("The first Sunday of %4d is Jan %d.\n", year, mday);
263
		printf ("The first Sunday of %4d is Jan %d.\n", year, mday);
258
264
259
		for (w=1; w<54; w++)
265
		for (w=1; w<54; w++)
Lines 266-272 Link Here
266
			if (w == 53 && mon == 0)
272
			if (w == 53 && mon == 0)
267
			{
273
			{
268
				yr = year + 1;
274
				yr = year + 1;
269
				yday = mday;
275
				yday = mday - 1;
270
			}
276
			}
271
			else yr = year;
277
			else yr = year;
272
278
Lines 291-297 Link Here
291
	printf ("\n");
297
	printf ("\n");
292
}
298
}
293
299
294
/* Special test for the %W format string.  */
300
#endif /* ALLOW_UW_TESTS */
295
301
296
int main (int argc, char **argv)
302
int main (int argc, char **argv)
297
{
303
{
Lines 332-344 Link Here
332
     try5 ("Time of day H:M", "%R", "23:59");
338
     try5 ("Time of day H:M", "%R", "23:59");
333
     try1 ("Second number",   "%S", "59",       offsetof (struct tm, tm_sec), 59);
339
     try1 ("Second number",   "%S", "59",       offsetof (struct tm, tm_sec), 59);
334
     try6 ("Time of day H:M:S", "%T", "23:59:59");
340
     try6 ("Time of day H:M:S", "%T", "23:59:59");
341
#if ALLOW_UW_TESTS
335
     try7 ("Week number Sun=0", "%Y %U", "2009 22");
342
     try7 ("Week number Sun=0", "%Y %U", "2009 22");
343
#endif
336
     try1 ("Week day number", "%w", "4",        offsetof (struct tm, tm_wday), 4);
344
     try1 ("Week day number", "%w", "4",        offsetof (struct tm, tm_wday), 4);
345
#if ALLOW_UW_TESTS
337
     try8 ("Week number Mon=0", "%Y %W", "2009 22");
346
     try8 ("Week number Mon=0", "%Y %W", "2009 22");
347
#endif
338
     try1 ("Year in century",  "%y",  "9",      offsetof (struct tm, tm_year), 109);
348
     try1 ("Year in century",  "%y",  "9",      offsetof (struct tm, tm_year), 109);
339
     try1 ("Year in century",  "%Y",  "2009",   offsetof (struct tm, tm_year), 109);
349
     try1 ("Year in century",  "%Y",  "2009",   offsetof (struct tm, tm_year), 109);
340
350
351
#if ALLOW_UW_TESTS
341
     tryU ("U conversion", "%Y %U", "range");
352
     tryU ("U conversion", "%Y %U", "range");
353
#endif
342
354
343
     if (failures)
355
     if (failures)
344
          printf ("%d tests failed.\n", failures);
356
          printf ("%d tests failed.\n", failures);

Return to bug 137307