about summary refs log tree commit diff
path: root/REORG.TODO/misc/tst-error1.c
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/misc/tst-error1.c')
-rw-r--r--REORG.TODO/misc/tst-error1.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/REORG.TODO/misc/tst-error1.c b/REORG.TODO/misc/tst-error1.c
new file mode 100644
index 0000000000..9c4a62fbd0
--- /dev/null
+++ b/REORG.TODO/misc/tst-error1.c
@@ -0,0 +1,37 @@
+#include <error.h>
+#include <mcheck.h>
+#include <stdio.h>
+#include <string.h>
+#include <wchar.h>
+#include <libc-diag.h>
+
+static int
+do_test (int argc, char *argv[])
+{
+  mtrace ();
+  (void) freopen (argc == 1 ? "/dev/stdout" : argv[1], "a", stderr);
+  /* Orient the stream.  */
+  fwprintf (stderr, L"hello world\n");
+  char buf[20000];
+  static const char str[] = "hello world! ";
+  for (int i = 0; i < 1000; ++i)
+    memcpy (&buf[i * (sizeof (str) - 1)], str, sizeof (str));
+  error (0, 0, str);
+
+  /* We're testing a large format string here and need to generate it
+     to avoid this source file being ridiculous.  So disable the warning
+     about a generated format string.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat-security");
+
+  error (0, 0, buf);
+  error (0, 0, buf);
+
+  DIAG_POP_NEEDS_COMMENT;
+
+  error (0, 0, str);
+  return 0;
+}
+
+#define TEST_FUNCTION do_test (argc, argv)
+#include "../test-skeleton.c"