aboutsummaryrefslogtreecommitdiff
path: root/time/bug-getdate1.c
diff options
context:
space:
mode:
Diffstat (limited to 'time/bug-getdate1.c')
-rw-r--r--time/bug-getdate1.c152
1 files changed, 0 insertions, 152 deletions
diff --git a/time/bug-getdate1.c b/time/bug-getdate1.c
deleted file mode 100644
index 9afafba5be..0000000000
--- a/time/bug-getdate1.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* BZ #5451 */
-#include <time.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <support/temp_file.h>
-
-static char *templ_filename;
-
-// Writes template given as parameter to file,
-// specified as the argument
-static void
-output_to_template_file (const char *str)
-{
- FILE *fd = fopen (templ_filename, "w");
- if (fd == NULL)
- {
- printf ("Can not open file for writing\n");
- exit (1);
- }
-
- fprintf (fd, "%s\n", str);
- fclose (fd);
-}
-
-// Calls getdate() function with specified parameter,
-// specified as the argument, also checks the contents of
-// file with template and prints the result
-static int
-process_getdate_on (const char *str)
-{
- struct tm *res;
- char templ[1000];
- FILE *fd = fopen (templ_filename, "r");
-
- if (fd == NULL)
- {
- printf ("Can not open file for reading\n");
- exit (1);
- }
-
- if (fgets (templ, 1000, fd) == NULL)
- {
- printf ("Can not read file\n");
- exit (1);
- }
- fclose (fd);
-
- res = getdate (str);
- if (res == NULL)
- {
- printf ("Failed on getdate(\"%s\"), template is: %s", str, templ);
- printf ("Error number: %d\n\n", getdate_err);
- return 1;
- }
- printf ("Success on getdate(\"%s\"), template is: %s\n", str, templ);
- printf ("Result is\n");
- printf ("Seconds: %d\n", res->tm_sec);
- printf ("Minutes: %d\n", res->tm_min);
- printf ("Hour: %d\n", res->tm_hour);
- printf ("Day of month: %d\n", res->tm_mday);
- printf ("Month of year: %d\n", res->tm_mon);
- printf ("Years since 1900: %d\n", res->tm_year);
- printf ("Day of week: %d\n", res->tm_wday);
- printf ("Day of year: %d\n", res->tm_yday);
- printf ("Daylight Savings flag: %d\n\n", res->tm_isdst);
- return 0;
-}
-
-static int
-do_test (int argc, char *argv[])
-{
-
- templ_filename = argv[1];
-
- setenv ("DATEMSK", templ_filename, 1);
-
- /*
- * The following 4 testcases reproduce the problem:
- * 1. Templates "%S" and "%M" are not processed,
- * when used without "%H" template
- */
- int res = 0;
- output_to_template_file ("%M");
- res |= process_getdate_on ("1");
-
- output_to_template_file ("%M %H");
- res |= process_getdate_on ("1 2");
-
- output_to_template_file ("%S");
- res |= process_getdate_on ("1");
-
- output_to_template_file ("%S %H");
- res |= process_getdate_on ("1 2");
-
- /*
- * The following 9 testcases reproduce the problem:
- * 2. Templates "%Y", "%y", "%d", "%C", "%C %y"
- * are not processed separately
- */
- output_to_template_file ("%Y");
- process_getdate_on ("2001");
-
- output_to_template_file ("%Y %m");
- res |= process_getdate_on ("2001 3");
-
- output_to_template_file ("%y");
- res |= process_getdate_on ("70");
-
- output_to_template_file ("%y %m");
- res |= process_getdate_on ("70 3");
-
- output_to_template_file ("%d");
- res |= process_getdate_on ("06");
-
- output_to_template_file ("%d %m");
- res |= process_getdate_on ("25 3");
-
- output_to_template_file ("%C");
- res |= process_getdate_on ("20");
-
- output_to_template_file ("%C %y %m");
- res |= process_getdate_on ("20 3 2");
-
- output_to_template_file ("%C %y");
- res |= process_getdate_on ("20 5");
-
- /*
- * The following testcase reproduces the problem:
- * 3. When template is "%Y %m", day of month is not set
- * to 1 as standard requires
- */
- output_to_template_file ("%Y %m");
- res |= process_getdate_on ("2008 3");
-
- return res;
-}
-#define TEST_FUNCTION_ARGV do_test
-
-static void
-do_prepare (int argc, char **argv)
-{
- if (argc < 2)
- {
- puts ("Command line: progname template_filename_full_path");
- exit (1);
- }
- add_temp_file (argv[1]);
-}
-#define PREPARE do_prepare
-
-#include <support/test-driver.c>