diff mbox series

[01/15] debug: Adapt fortify tests to libsupport

Message ID 20231221185929.1307116-2-adhemerval.zanella@linaro.org
State New
Headers show
Series Improve fortify support with clang | expand

Commit Message

Adhemerval Zanella Netto Dec. 21, 2023, 6:59 p.m. UTC
Checked on aarch64, armhf, x86_64, and i686.
---
 debug/test-stpcpy_chk.c  |  2 +-
 debug/test-strcpy_chk.c  |  2 +-
 debug/tst-fortify.c      | 55 +++++++++++++++++++++-------------------
 debug/tst-longjmp_chk.c  |  8 +++---
 debug/tst-longjmp_chk2.c |  6 ++---
 debug/tst-longjmp_chk3.c |  6 ++---
 6 files changed, 39 insertions(+), 40 deletions(-)

Comments

Siddhesh Poyarekar Dec. 21, 2023, 7:54 p.m. UTC | #1
On 2023-12-21 13:59, Adhemerval Zanella wrote:
> Checked on aarch64, armhf, x86_64, and i686.
> ---

LGTM.

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>

>   debug/test-stpcpy_chk.c  |  2 +-
>   debug/test-strcpy_chk.c  |  2 +-
>   debug/tst-fortify.c      | 55 +++++++++++++++++++++-------------------
>   debug/tst-longjmp_chk.c  |  8 +++---
>   debug/tst-longjmp_chk2.c |  6 ++---
>   debug/tst-longjmp_chk3.c |  6 ++---
>   6 files changed, 39 insertions(+), 40 deletions(-)
> 
> diff --git a/debug/test-stpcpy_chk.c b/debug/test-stpcpy_chk.c
> index 938f3c0ceb..0b9fed49cc 100644
> --- a/debug/test-stpcpy_chk.c
> +++ b/debug/test-stpcpy_chk.c
> @@ -19,7 +19,7 @@
>   #define STRCPY_RESULT(dst, len) ((dst) + (len))
>   #define TEST_MAIN
>   #define TEST_NAME "stpcpy_chk"
> -#include "../string/test-string.h"
> +#include <string/test-string.h>
>   
>   extern void __attribute__ ((noreturn)) __chk_fail (void);
>   char *simple_stpcpy_chk (char *, const char *, size_t);
> diff --git a/debug/test-strcpy_chk.c b/debug/test-strcpy_chk.c
> index 792e789e1e..684e0bdd9b 100644
> --- a/debug/test-strcpy_chk.c
> +++ b/debug/test-strcpy_chk.c
> @@ -20,7 +20,7 @@
>   # define STRCPY_RESULT(dst, len) dst
>   # define TEST_MAIN
>   # define TEST_NAME "strcpy_chk"
> -# include "../string/test-string.h"
> +# include <string/test-string.h>
>   
>   /* This test case implicitly tests the availability of the __chk_fail
>      symbol, which is part of the public ABI and may be used
> diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c
> index 3744aadad4..20e926751a 100644
> --- a/debug/tst-fortify.c
> +++ b/debug/tst-fortify.c
> @@ -23,6 +23,7 @@
>   
>   #include <assert.h>
>   #include <fcntl.h>
> +#include <limits.h>
>   #include <locale.h>
>   #include <obstack.h>
>   #include <setjmp.h>
> @@ -36,6 +37,10 @@
>   #include <sys/select.h>
>   #include <sys/socket.h>
>   #include <sys/un.h>
> +#include <paths.h>
> +
> +#include <support/temp_file.h>
> +#include <support/support.h>
>   
>   #ifndef _GNU_SOURCE
>   # define MEMPCPY memcpy
> @@ -52,15 +57,10 @@
>   #define obstack_chunk_alloc malloc
>   #define obstack_chunk_free free
>   
> -char *temp_filename;
> -static void do_prepare (void);
> -static int do_test (void);
> -#define PREPARE(argc, argv) do_prepare ()
> -#define TEST_FUNCTION do_test ()
> -#include "../test-skeleton.c"
> +static char *temp_filename;
>   
>   static void
> -do_prepare (void)
> +do_prepare (int argc, char *argv[])
>   {
>     int temp_fd = create_temp_file ("tst-chk1.", &temp_filename);
>     if (temp_fd == -1)
> @@ -77,10 +77,11 @@ do_prepare (void)
>         exit (1);
>       }
>   }
> +#define PREPARE do_prepare
>   
> -volatile int chk_fail_ok;
> -volatile int ret;
> -jmp_buf chk_fail_buf;
> +static volatile int chk_fail_ok;
> +static volatile int ret;
> +static jmp_buf chk_fail_buf;
>   
>   static void
>   handler (int sig)
> @@ -102,22 +103,22 @@ wchar_t wbuf[10];
>   #define buf_size sizeof (buf)
>   #endif
>   
> -volatile size_t l0;
> -volatile char *p;
> -volatile wchar_t *wp;
> -const char *str1 = "JIHGFEDCBA";
> -const char *str2 = "F";
> -const char *str3 = "%s%n%s%n";
> -const char *str4 = "Hello, ";
> -const char *str5 = "World!\n";
> -const wchar_t *wstr1 = L"JIHGFEDCBA";
> -const wchar_t *wstr2 = L"F";
> -const wchar_t *wstr3 = L"%s%n%s%n";
> -const wchar_t *wstr4 = L"Hello, ";
> -const wchar_t *wstr5 = L"World!\n";
> -char buf2[10] = "%s";
> -int num1 = 67;
> -int num2 = 987654;
> +static volatile size_t l0;
> +static volatile char *p;
> +static volatile wchar_t *wp;
> +static const char *str1 = "JIHGFEDCBA";
> +static const char *str2 = "F";
> +static const char *str3 = "%s%n%s%n";
> +static const char *str4 = "Hello, ";
> +static const char *str5 = "World!\n";
> +static const wchar_t *wstr1 = L"JIHGFEDCBA";
> +static const wchar_t *wstr2 = L"F";
> +static const wchar_t *wstr3 = L"%s%n%s%n";
> +static const wchar_t *wstr4 = L"Hello, ";
> +static const wchar_t *wstr5 = L"World!\n";
> +static char buf2[10] = "%s";
> +static int num1 = 67;
> +static int num2 = 987654;
>   
>   #define FAIL() \
>     do { printf ("Failure on line %d\n", __LINE__); ret = 1; } while (0)
> @@ -1815,3 +1816,5 @@ do_test (void)
>   
>     return ret;
>   }
> +
> +#include <support/test-driver.c>
> diff --git a/debug/tst-longjmp_chk.c b/debug/tst-longjmp_chk.c
> index e4e93d2a36..37f858606b 100644
> --- a/debug/tst-longjmp_chk.c
> +++ b/debug/tst-longjmp_chk.c
> @@ -10,11 +10,7 @@
>   #include <stdlib.h>
>   #include <unistd.h>
>   
> -
> -static int do_test(void);
> -#define TEST_FUNCTION do_test ()
> -#include "../test-skeleton.c"
> -
> +#include <support/support.h>
>   
>   static jmp_buf b;
>   
> @@ -76,3 +72,5 @@ do_test (void)
>     puts ("second longjmp returned");
>     return 1;
>   }
> +
> +#include <support/test-driver.c>
> diff --git a/debug/tst-longjmp_chk2.c b/debug/tst-longjmp_chk2.c
> index 1810ab44d7..7e1ee3edc5 100644
> --- a/debug/tst-longjmp_chk2.c
> +++ b/debug/tst-longjmp_chk2.c
> @@ -10,9 +10,7 @@
>   #include <sys/resource.h>
>   #include <unistd.h>
>   
> -static int do_test (void);
> -#define TEST_FUNCTION do_test ()
> -#include "../test-skeleton.c"
> +#include <support/support.h>
>   
>   static jmp_buf mainloop;
>   static sigset_t mainsigset;
> @@ -126,3 +124,5 @@ do_test (void)
>   
>     return 0;
>   }
> +
> +#include <support/test-driver.c>
> diff --git a/debug/tst-longjmp_chk3.c b/debug/tst-longjmp_chk3.c
> index f1e576ad5b..3050806c44 100644
> --- a/debug/tst-longjmp_chk3.c
> +++ b/debug/tst-longjmp_chk3.c
> @@ -20,10 +20,6 @@
>   #include <signal.h>
>   #include <string.h>
>   
> -static int do_test (void);
> -#define TEST_FUNCTION do_test ()
> -#include "../test-skeleton.c"
> -
>   static char buf[SIGSTKSZ * 4];
>   static jmp_buf jb;
>   
> @@ -83,3 +79,5 @@ do_test (void)
>     puts ("longjmp returned and shouldn't");
>     return 1;
>   }
> +
> +#include <support/test-driver.c>
diff mbox series

Patch

diff --git a/debug/test-stpcpy_chk.c b/debug/test-stpcpy_chk.c
index 938f3c0ceb..0b9fed49cc 100644
--- a/debug/test-stpcpy_chk.c
+++ b/debug/test-stpcpy_chk.c
@@ -19,7 +19,7 @@ 
 #define STRCPY_RESULT(dst, len) ((dst) + (len))
 #define TEST_MAIN
 #define TEST_NAME "stpcpy_chk"
-#include "../string/test-string.h"
+#include <string/test-string.h>
 
 extern void __attribute__ ((noreturn)) __chk_fail (void);
 char *simple_stpcpy_chk (char *, const char *, size_t);
diff --git a/debug/test-strcpy_chk.c b/debug/test-strcpy_chk.c
index 792e789e1e..684e0bdd9b 100644
--- a/debug/test-strcpy_chk.c
+++ b/debug/test-strcpy_chk.c
@@ -20,7 +20,7 @@ 
 # define STRCPY_RESULT(dst, len) dst
 # define TEST_MAIN
 # define TEST_NAME "strcpy_chk"
-# include "../string/test-string.h"
+# include <string/test-string.h>
 
 /* This test case implicitly tests the availability of the __chk_fail
    symbol, which is part of the public ABI and may be used
diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c
index 3744aadad4..20e926751a 100644
--- a/debug/tst-fortify.c
+++ b/debug/tst-fortify.c
@@ -23,6 +23,7 @@ 
 
 #include <assert.h>
 #include <fcntl.h>
+#include <limits.h>
 #include <locale.h>
 #include <obstack.h>
 #include <setjmp.h>
@@ -36,6 +37,10 @@ 
 #include <sys/select.h>
 #include <sys/socket.h>
 #include <sys/un.h>
+#include <paths.h>
+
+#include <support/temp_file.h>
+#include <support/support.h>
 
 #ifndef _GNU_SOURCE
 # define MEMPCPY memcpy
@@ -52,15 +57,10 @@ 
 #define obstack_chunk_alloc malloc
 #define obstack_chunk_free free
 
-char *temp_filename;
-static void do_prepare (void);
-static int do_test (void);
-#define PREPARE(argc, argv) do_prepare ()
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+static char *temp_filename;
 
 static void
-do_prepare (void)
+do_prepare (int argc, char *argv[])
 {
   int temp_fd = create_temp_file ("tst-chk1.", &temp_filename);
   if (temp_fd == -1)
@@ -77,10 +77,11 @@  do_prepare (void)
       exit (1);
     }
 }
+#define PREPARE do_prepare
 
-volatile int chk_fail_ok;
-volatile int ret;
-jmp_buf chk_fail_buf;
+static volatile int chk_fail_ok;
+static volatile int ret;
+static jmp_buf chk_fail_buf;
 
 static void
 handler (int sig)
@@ -102,22 +103,22 @@  wchar_t wbuf[10];
 #define buf_size sizeof (buf)
 #endif
 
-volatile size_t l0;
-volatile char *p;
-volatile wchar_t *wp;
-const char *str1 = "JIHGFEDCBA";
-const char *str2 = "F";
-const char *str3 = "%s%n%s%n";
-const char *str4 = "Hello, ";
-const char *str5 = "World!\n";
-const wchar_t *wstr1 = L"JIHGFEDCBA";
-const wchar_t *wstr2 = L"F";
-const wchar_t *wstr3 = L"%s%n%s%n";
-const wchar_t *wstr4 = L"Hello, ";
-const wchar_t *wstr5 = L"World!\n";
-char buf2[10] = "%s";
-int num1 = 67;
-int num2 = 987654;
+static volatile size_t l0;
+static volatile char *p;
+static volatile wchar_t *wp;
+static const char *str1 = "JIHGFEDCBA";
+static const char *str2 = "F";
+static const char *str3 = "%s%n%s%n";
+static const char *str4 = "Hello, ";
+static const char *str5 = "World!\n";
+static const wchar_t *wstr1 = L"JIHGFEDCBA";
+static const wchar_t *wstr2 = L"F";
+static const wchar_t *wstr3 = L"%s%n%s%n";
+static const wchar_t *wstr4 = L"Hello, ";
+static const wchar_t *wstr5 = L"World!\n";
+static char buf2[10] = "%s";
+static int num1 = 67;
+static int num2 = 987654;
 
 #define FAIL() \
   do { printf ("Failure on line %d\n", __LINE__); ret = 1; } while (0)
@@ -1815,3 +1816,5 @@  do_test (void)
 
   return ret;
 }
+
+#include <support/test-driver.c>
diff --git a/debug/tst-longjmp_chk.c b/debug/tst-longjmp_chk.c
index e4e93d2a36..37f858606b 100644
--- a/debug/tst-longjmp_chk.c
+++ b/debug/tst-longjmp_chk.c
@@ -10,11 +10,7 @@ 
 #include <stdlib.h>
 #include <unistd.h>
 
-
-static int do_test(void);
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
+#include <support/support.h>
 
 static jmp_buf b;
 
@@ -76,3 +72,5 @@  do_test (void)
   puts ("second longjmp returned");
   return 1;
 }
+
+#include <support/test-driver.c>
diff --git a/debug/tst-longjmp_chk2.c b/debug/tst-longjmp_chk2.c
index 1810ab44d7..7e1ee3edc5 100644
--- a/debug/tst-longjmp_chk2.c
+++ b/debug/tst-longjmp_chk2.c
@@ -10,9 +10,7 @@ 
 #include <sys/resource.h>
 #include <unistd.h>
 
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/support.h>
 
 static jmp_buf mainloop;
 static sigset_t mainsigset;
@@ -126,3 +124,5 @@  do_test (void)
 
   return 0;
 }
+
+#include <support/test-driver.c>
diff --git a/debug/tst-longjmp_chk3.c b/debug/tst-longjmp_chk3.c
index f1e576ad5b..3050806c44 100644
--- a/debug/tst-longjmp_chk3.c
+++ b/debug/tst-longjmp_chk3.c
@@ -20,10 +20,6 @@ 
 #include <signal.h>
 #include <string.h>
 
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
 static char buf[SIGSTKSZ * 4];
 static jmp_buf jb;
 
@@ -83,3 +79,5 @@  do_test (void)
   puts ("longjmp returned and shouldn't");
   return 1;
 }
+
+#include <support/test-driver.c>