Print this page
10823 should ignore DW_TAG_subprogram with DW_AT_declaration tags
10824 GCC7-derived CTF can double qualifiers on arrays
10825 ctfdump -c drops last type
10826 ctfdump -c goes off the rails with a missing parent
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Jason King <jason.king@joyent.com>
Approved by: Jerry Jelinek <jerry.jelinek@joyent.com>
   1 /*
   2  * This file and its contents are supplied under the terms of the
   3  * Common Development and Distribution License ("CDDL"), version 1.0.
   4  * You may only use this file in accordance with the terms of version
   5  * 1.0 of the CDDL.
   6  *
   7  * A full copy of the text of the CDDL should have accompanied this
   8  * source.  A copy of the CDDL is also available via the Internet at
   9  * http://www.illumos.org/license/CDDL.
  10  */
  11 
  12 /*
  13  * Copyright (c) 2019, Joyent, Inc.
  14  */
  15 
  16 #ifndef _CHECK_COMMON_H
  17 #define _CHECK_COMMON_H
  18 
  19 /*
  20  * Common definitions for the CTF tests
  21  */
  22 
  23 #include <stdlib.h>
  24 #include <unistd.h>
  25 #include <libctf.h>
  26 #include <err.h>
  27 #include <strings.h>
  28 #include <sys/param.h>
  29 
  30 #ifdef __cplusplus
  31 extern "C" {
  32 #endif
  33 


  86         uint_t cft_flags;
  87         const char **cft_args;
  88 } check_function_test_t;
  89 
  90 /*
  91  * Looks up each type and verifies that it matches the expected type.
  92  */
  93 extern boolean_t ctftest_check_numbers(ctf_file_t *, const check_number_t *);
  94 
  95 /*
  96  * Looks at each symbol specified and verifies that it matches the expected
  97  * type.
  98  */
  99 extern boolean_t ctftest_check_symbols(ctf_file_t *, const check_symbol_t *);
 100 
 101 /*
 102  * Given a symbol name which refers to a type, walks all the references of that
 103  * type and checks against it with each subsequent entry.
 104  */
 105 extern boolean_t ctftest_check_descent(const char *, ctf_file_t *,
 106     const check_descent_t *);
 107 
 108 /*
 109  * Checks that all of the listed members of an enum are present and have the
 110  * right values.
 111  */
 112 extern boolean_t ctftest_check_enum(const char *, ctf_file_t *,
 113     const check_enum_t *);
 114 
 115 /*
 116  * Checks that all of the members of a structure or union are present and have
 117  * the right types and byte offsets. This can be used for either structures or
 118  * unions.
 119  */
 120 extern boolean_t ctftest_check_members(const char *, ctf_file_t *, int, size_t,
 121     const check_member_t *);
 122 
 123 /*
 124  * Check that the named function or function pointer has the correct return
 125  * type, arguments, and function flags.
 126  */
   1 /*
   2  * This file and its contents are supplied under the terms of the
   3  * Common Development and Distribution License ("CDDL"), version 1.0.
   4  * You may only use this file in accordance with the terms of version
   5  * 1.0 of the CDDL.
   6  *
   7  * A full copy of the text of the CDDL should have accompanied this
   8  * source.  A copy of the CDDL is also available via the Internet at
   9  * http://www.illumos.org/license/CDDL.
  10  */
  11 
  12 /*
  13  * Copyright 2019, Joyent, Inc.
  14  */
  15 
  16 #ifndef _CHECK_COMMON_H
  17 #define _CHECK_COMMON_H
  18 
  19 /*
  20  * Common definitions for the CTF tests
  21  */
  22 
  23 #include <stdlib.h>
  24 #include <unistd.h>
  25 #include <libctf.h>
  26 #include <err.h>
  27 #include <strings.h>
  28 #include <sys/param.h>
  29 
  30 #ifdef __cplusplus
  31 extern "C" {
  32 #endif
  33 


  86         uint_t cft_flags;
  87         const char **cft_args;
  88 } check_function_test_t;
  89 
  90 /*
  91  * Looks up each type and verifies that it matches the expected type.
  92  */
  93 extern boolean_t ctftest_check_numbers(ctf_file_t *, const check_number_t *);
  94 
  95 /*
  96  * Looks at each symbol specified and verifies that it matches the expected
  97  * type.
  98  */
  99 extern boolean_t ctftest_check_symbols(ctf_file_t *, const check_symbol_t *);
 100 
 101 /*
 102  * Given a symbol name which refers to a type, walks all the references of that
 103  * type and checks against it with each subsequent entry.
 104  */
 105 extern boolean_t ctftest_check_descent(const char *, ctf_file_t *,
 106     const check_descent_t *, boolean_t);
 107 
 108 /*
 109  * Checks that all of the listed members of an enum are present and have the
 110  * right values.
 111  */
 112 extern boolean_t ctftest_check_enum(const char *, ctf_file_t *,
 113     const check_enum_t *);
 114 
 115 /*
 116  * Checks that all of the members of a structure or union are present and have
 117  * the right types and byte offsets. This can be used for either structures or
 118  * unions.
 119  */
 120 extern boolean_t ctftest_check_members(const char *, ctf_file_t *, int, size_t,
 121     const check_member_t *);
 122 
 123 /*
 124  * Check that the named function or function pointer has the correct return
 125  * type, arguments, and function flags.
 126  */