[LTP] [RFC PATCH 0/6] Check exported library symbols and cleanup

Richard Palethorpe rpalethorpe@suse.com
Mon May 17 18:30:23 CEST 2021


Hello,

Forgetting to add static to a global variable is a common mistake. So
far we have relied on manual review to spot it. This is a waste of
time for both the test author and reviewer.

Generally speaking all API functions have tst_ or safe_ prepended. It
is simple to check that exported symbols match this naming. Although I
expect the script I have created will break building on some distros.

The patchset also includes a bunch of fixes for some symbols. I have
tried to fix stuff in the new API and ignored issues only in the old
one.

I created another script to look for unused functions. However this
relies on GNU Global. Also I'm not sure what to do with the
results. FYI the unused commands are listed below:

ltpdev_ioctl_cmds_s	testcases/kernel/fs/scsi/ltpfs/Ltpfs.h	62
ltpdev_ioctl_cmds_t	testcases/kernel/fs/scsi/ltpfs/Ltpfs.h	66
tst_its_set_interval_from_ts	include/tst_timer.h	747
tst_ms_to_timeval	include/tst_timer.h	43
tst_numa_types	include/tst_numa.h	93
tst_timer_tcase	lib/tst_timer_test.c	390
tst_timespec_add_us	include/tst_timer.h	820
tst_timespec_diff_us	include/tst_timer.h	941
tst_timespec_from_ms	include/tst_timer.h	717
tst_timespec_sub_us	include/tst_timer.h	847
tst_timeval_diff_ms	include/tst_timer.h	92
tst_timeval_diff_us	include/tst_timer.h	86
tst_ts_abs_diff_ms	include/tst_timer.h	1001

I have removed some from the list which actually seem to be an issue
with the script or I have already submitted a patch to remove.

Richard Palethorpe (6):
  API: Make some internal symbols static
  API: Add tst_ to create_sig_proc
  API: Add tst_ to file_* functions
  API: add tst_ to mount_overlay
  API: Add tst_ to hugepage opt vars
  API: Check exported symbols

 doc/test-writing-guidelines.txt               |  2 +-
 include/old/old_safe_file_ops.h               | 14 ++--
 include/old/test.h                            |  1 -
 include/safe_file_ops_fn.h                    | 25 ++++----
 include/tst_hugepage.h                        |  4 +-
 include/tst_safe_file_ops.h                   | 24 +++----
 include/tst_sig_proc.h                        |  2 +-
 lib/Makefile                                  | 12 ++++
 lib/newlib_tests/tst_safe_fileops.c           |  4 +-
 lib/safe_file_ops.c                           | 10 +--
 lib/tst_assert.c                              |  4 +-
 lib/tst_clocks.c                              |  2 +-
 lib/tst_device.c                              |  2 +-
 lib/tst_fs_link_count.c                       |  2 +-
 lib/tst_fs_setup.c                            |  4 +-
 lib/tst_hugepage.c                            |  8 +--
 lib/tst_res.c                                 |  2 +-
 lib/tst_sig_proc.c                            |  2 +-
 lib/tst_status.c                              |  6 +-
 lib/tst_sys_conf.c                            |  2 +-
 lib/tst_test.c                                |  2 +-
 lib/tst_timer_test.c                          |  2 +-
 libs/libltpsigwait/sigwait.c                  | 18 +++---
 scripts/check_export_syms.sh                  | 64 +++++++++++++++++++
 testcases/cve/meltdown.c                      |  2 +-
 .../device-drivers/cpufreq/cpufreq_boost.c    |  4 +-
 .../kernel/mem/hugetlb/hugemmap/hugemmap01.c  | 14 ++--
 .../kernel/mem/hugetlb/hugemmap/hugemmap02.c  | 14 ++--
 .../kernel/mem/hugetlb/hugemmap/hugemmap04.c  | 14 ++--
 .../mem/hugetlb/hugeshmat/hugeshmat01.c       |  2 +-
 .../mem/hugetlb/hugeshmat/hugeshmat02.c       |  2 +-
 .../mem/hugetlb/hugeshmat/hugeshmat03.c       |  2 +-
 .../mem/hugetlb/hugeshmctl/hugeshmctl01.c     |  2 +-
 .../mem/hugetlb/hugeshmctl/hugeshmctl02.c     |  2 +-
 .../mem/hugetlb/hugeshmctl/hugeshmctl03.c     |  2 +-
 .../mem/hugetlb/hugeshmdt/hugeshmdt01.c       |  2 +-
 .../mem/hugetlb/hugeshmget/hugeshmget01.c     |  2 +-
 .../mem/hugetlb/hugeshmget/hugeshmget02.c     |  2 +-
 .../mem/hugetlb/hugeshmget/hugeshmget03.c     |  4 +-
 .../mem/hugetlb/hugeshmget/hugeshmget05.c     |  2 +-
 testcases/kernel/mem/ksm/ksm01.c              |  4 +-
 testcases/kernel/mem/ksm/ksm02.c              |  4 +-
 testcases/kernel/mem/ksm/ksm03.c              |  4 +-
 testcases/kernel/mem/ksm/ksm04.c              |  4 +-
 testcases/kernel/mem/ksm/ksm05.c              |  2 +-
 testcases/kernel/mem/ksm/ksm06.c              |  8 +--
 testcases/kernel/mem/swapping/swapping01.c    |  2 +-
 .../clock_nanosleep/clock_nanosleep01.c       |  2 +-
 testcases/kernel/syscalls/fcntl/fcntl33.c     |  2 +-
 testcases/kernel/syscalls/fork/fork13.c       |  2 +-
 .../syscalls/migrate_pages/migrate_pages02.c  |  2 +-
 testcases/kernel/syscalls/ppoll/ppoll01.c     |  4 +-
 testcases/kernel/syscalls/prctl/prctl06.c     |  2 +-
 .../kernel/syscalls/readahead/readahead02.c   |  2 +-
 testcases/kernel/syscalls/utils/mq_timed.h    |  2 +-
 testcases/kernel/tracing/pt_test/pt_test.c    |  4 +-
 .../network/can/filter-tests/can_common.h     |  2 +-
 testcases/network/packet/fanout01.c           |  6 +-
 58 files changed, 211 insertions(+), 137 deletions(-)
 create mode 100755 scripts/check_export_syms.sh

-- 
2.31.1



More information about the ltp mailing list