summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorDana Robinson <43805+derobins@users.noreply.github.com>2023-06-14 14:59:49 (GMT)
committerGitHub <noreply@github.com>2023-06-14 14:59:49 (GMT)
commitce794d6a8894667048ffa8c75cdc806962810206 (patch)
treead0eae15a9ce03fb926e820ec00dd05706c65ac9 /bin
parent340c37629cab7c1c7a2364c18658e2aa605f0078 (diff)
downloadhdf5-ce794d6a8894667048ffa8c75cdc806962810206.zip
hdf5-ce794d6a8894667048ffa8c75cdc806962810206.tar.gz
hdf5-ce794d6a8894667048ffa8c75cdc806962810206.tar.bz2
Remove the checkposix script (#3122)
This script was used to ensure that all non-HDF5 calls were prefixed with 'HD'. We are removing this scheme so this script is no longer needed.
Diffstat (limited to 'bin')
-rw-r--r--bin/README.md1
-rwxr-xr-xbin/checkposix259
2 files changed, 0 insertions, 260 deletions
diff --git a/bin/README.md b/bin/README.md
index 856f348..e2e2570 100644
--- a/bin/README.md
+++ b/bin/README.md
@@ -6,7 +6,6 @@ Programs run via `autogen.sh` (or the equivalent in CMake) are indicated.
|-------|-------|
|`buildhdf5`|Convenience script to build HDF5 using the Autotools|
|`checkapi`|Checks if public API calls are used in internal functions|
-|`checkposix`|Checks if C/POSIX calls are prefixed with `HD`|
|`chkcopyright`|Checks if files have appropriate copyright statements|
|`cmakehdf5`|Convenience script to build HDF5 using CMake|
|`debug-ohdr`|Examines debug output from `H5O_open/close` to look for open objects|
diff --git a/bin/checkposix b/bin/checkposix
deleted file mode 100755
index 4daa0e0..0000000
--- a/bin/checkposix
+++ /dev/null
@@ -1,259 +0,0 @@
-#!/usr/bin/env perl
-require 5.003;
-use warnings;
-
-#
-# Copyright by The HDF Group.
-# All rights reserved.
-#
-# This file is part of HDF5. The full HDF5 copyright notice, including
-# terms governing use, modification, and redistribution, is contained in
-# the COPYING file, which can be found at the root of the source code
-# distribution tree, or in https://www.hdfgroup.org/licenses.
-# If you do not have access to either file, you may request a copy from
-# help@hdfgroup.org.
-#
-# Dana Robinson
-# Spring 2019
-# (Original by Robb Matzke)
-#
-# Purpose: Given the names of C source files this script will print the
-# file name, line number, and function name of any function that
-# doesn't begin with the letter 'h' or 'H' as stipulated by the
-# HDF5 programming style guide.
-#
-# Emacs users can run this script as the compile command and
-# use 'next-error' (usually bound to M-`) to find each name
-# violation.
-
-use File::Basename;
-
-# Loop over all files passed to the function
-foreach $arg (@ARGV) {
-
- # Get the filename from the path
- $filename = fileparse($arg);
-
- # Skip files that don't include H5private.h
- # H5system. has to be inspected by hand since it wraps POSIX files
- #
- # If a user specifies one file, process it no matter what so people
- # can inspect files we normally skip (like H5system.c).
-
- $ignore = 0;
-
- # Ignored files in src/
- if($#ARGV gt 0 and $filename =~ /H5FDmulti|H5FDstdio|H5VLpassthru|H5system/) {
- $ignore = 1;
- }
- # Ignored atomic test files in test/
- if($#ARGV gt 0 and $filename =~ /atomic_reader|atomic_writer/) {
- $ignore = 1;
- }
- # Ignored filter plugins in test/
- if($#ARGV gt 0 and $filename =~ /^filter_plugin\d_/) {
- $ignore = 1;
- }
- # Ignored generators in test/
- if($#ARGV gt 0 and $filename =~ /^gen_/) {
- $ignore = 1;
- }
-
- if($ignore) {
- print "$filename is exempt from using Standard library macro wrappers\n";
- next;
- }
-
- # Open the file
- open(my $fh, "<", $arg) or do {
- warn "NOTE: Unable to open $arg: !$\n";
- next;
- };
-
- # Loop over all lines in the file to find undecorated functions
- while (<$fh>) {
-
- # Get rid of comments by removing the inside part.
- s|/\*.*?\*/||g;
- if ($in_comment) {
- if (/\*\//) {
- s|.*?\*/||;
- $in_comment = 0;
- } else {
- $_="\n";
- }
- } elsif (m|/\*|) {
- s|/\*.*||;
- $in_comment = 1;
- }
-
- # Get rid of string constants if they begin and end on this line.
- s/([\'\"])([^\1]|\\\1)*?\1/$1$1/g;
-
- # Get rid of preprocessor directives
- s/^\#.*//;
-
- # Skip callbacks invoked as methods in a struct
- next if $_ =~ /\b(\)?]?->|\.)\(?([a-z_A-Z]\w*)\s*\(/;
-
- # Now find all function calls on this line which don't start with 'H'
- while (($name)=/\b([a-z_A-GI-Z]\w*)\s*\(/) {
- $_ = $';
-
- # Ignore C statements that look sort of like function
- # calls.
- next if $name =~ /^(if|for|offsetof|return|sizeof|switch|while|void)$/;
-
- # Ignore things that get misdetected because of the simplified
- # parsing that takes place here.
- next if $name =~ /^(int|herr_t|_term_interface|_term_package)$/;
-
- # These are really HDF5 functions/macros even though they don't
- # start with `h' or `H'.
- next if $name =~ /^FUNC_(ENTER|LEAVE)(_(NO)?API|_PACKAGE|_STATIC)?(_NAMECHECK_ONLY|_NOFS|_NOCLEAR|_NOINIT|_NOPUSH)?(_NOFUNC|_TAG)?$/;
- next if $name =~ /^(BEGIN|END)_FUNC$/;
- next if $name =~ /^U?INT(8|16|32|64)(ENCODE|DECODE)(_VAR)?$/;
- next if $name =~ /^CI_(PRINT_STATS|INC_SRC|INC_DST)$/;
- next if $name =~ /^(ABS|ADDR_OVERFLOW|ALL_MEMBERS|BOUND|CONSTR|DETECT_[I|F|M]|DOWN)$/;
- next if $name =~ /^(MIN3?|MAX3?|NELMTS|POWER_OF_TWO|REGION_OVERFLOW)$/;
- next if $name =~ /^(SIZE_OVERFLOW|UNIQUE_MEMBERS|S_ISDIR)$/;
- next if $name =~ /^addr_defined$/;
- next if $name =~ /^TERMINATOR$/;
-
- # Ignore callback invocation
- next if $name =~ /^(op|cb|OP|iter_op|func)$/;
-
- # Ignore main
- next if $name =~ /^main$/;
-
- # This often appears in preprocessor lines that span multiple lines
- next if $name =~ /^(defined)$/;
-
- # These are Windows system calls. Ignore them.
- next if $name =~ /^(_get_osfhandle|GetFileInformationByHandle|SetFilePointer|GetLastError|SetEndOfFile)$/;
- next if $name =~ /^(FindNextFile|FindClose|_tzset|Wgettimeofday|GetSystemTimeAsFileTime|GetUserName)$/;
- next if $name =~ /^(DeleteCriticalSection|TlsFree|TlsGetValue|CreateThread)$/;
- next if $name =~ /^(ExpandEnvironmentStringsA|LockFileEx|UnlockFileEx)$/;
- next if $name =~ /^(DllMain|LocalAlloc|LocalFree)$/;
- next if $name =~ /^(FindFirstFileA|FindNextFileA)$/;
- next if $name =~ /^(_beginthread|(Initialize|Enter|Leave)CriticalSection|TlsAlloc)$/;
-
- # These are MPI function calls. Ignore them.
- next if $name =~ /^(MPI_)/;
-
- # These are POSIX threads function calls. Ignore them.
- next if $name =~ /^pthread_/;
-
- # These are zlib & szlib function calls. Ignore them.
- next if $name =~ /^(inflate|SZ_)/;
- next if $name =~ /^compress2$/;
-
- # These is an H5Dfill function. Ignore it in this file.
- if($filename =~ /H5Dfill/) {
- next if $name =~ /^(alloc_func)$/;
- }
-
- # These are H5Zscaleoffset functions. Ignore them in this file.
- if($filename =~ /H5Zscaleoffset/) {
- next if $name =~ /^(pow_fun|round_fun|abs_fun|lround_fun|llround_fun)$/;
- }
-
- # This is a macro parameter in H5Rint.c. Ignore it in this file.
- if($filename =~ /H5Rint/) {
- next if $name =~ /^(func)$/;
- }
-
- # Internal calls in the HDFS VFD (H5FDhdfs.c). Ignore it in this file.
- if($filename =~ /H5FDhdfs/) {
- next if $name =~ /^(hdfs)/;
- }
-
- # Macros, etc. from the mirror VFD (H5FDmirror.c). Ignore in this file.
- if($filename =~ /H5FDmirror/) {
- next if $name =~ /^(LOG)/;
- next if $name =~ /^(BSWAP_64|is_host_little_endian)$/;
- }
-
- # These are things in H5FDs3comms.c and H5FDros3.c. Ignore them in these files.
- if($filename =~ /H5FDs3comms|H5FDros3/) {
- next if $name =~ /^(curl_|curlwritecallback|gmnow)/;
- next if $name =~ /^(ros3_|ROS3_|S3COMMS_)/;
- next if $name =~ /^(EVP_sha256|SHA256|ISO8601NOW)$/;
- }
-
- # TESTING (not comprehensive - just noise reduction)
-
- # Test macros and functions (testhdf5.h)
- next if $name =~ /^(AddTest|TestErrPrintf|TestSummary|TestCleanup|TestShutdown)$/;
- next if $name =~ /^(CHECK|CHECK_PTR|CHECK_PTR_NULL|CHECK_PTR_EQ|CHECK_I)$/;
- next if $name =~ /^(VERIFY|VERIFY_STR|VERIFY_TYPE|MESSAGE|ERROR)$/;
-
- # Test macros and functions (h5test.h)
- next if $name =~ /^(TESTING|PASSED|SKIPPED|PUTS_ERROR|FAIL_PUTS_ERROR|FAIL_STACK_ERROR|TEST_ERROR|AT)$/;
- next if $name =~ /^(GetTestExpress)$/;
-
- # Ignore functions that start with test_ or check_
- next if $name =~ /^test_/;
- next if $name =~ /^check_/;
-
- # Ignore functions that start with h5_
- next if $name =~ /^h5_/;
-
- # Ignore process completed status
- next if $name =~ /(WIFEXITED|WEXITSTATUS|WIFSIGNALED|WTERMSIG|WCOREDUMP|WIFSTOPPED|WSTOPSIG)/;
-
- # Ignore usage functions
- next if $name =~ /^usage$/;
-
- # Ignore callbacks
- next if $name =~ /(_cb\d?)$/;
-
- # Specific tests (not even remotely comprehensive)
-
- # accum test code
- if($filename =~ /accum/) {
- next if $name =~ /^(accum_)/;
- }
-
- # cache test code
- if($filename =~ /cache/) {
- next if $name =~ /(_entry|_entries|_cache|_check|_dependency|_status|_op)$/;
- next if $name =~ /^(verify_|smoke_check_|row_major_|col_major_)/;
- next if $name =~ /^(resize_configs_are_equal|CACHE_ERROR)$/
- }
-
- # Splitter VFD test code. Ignore in vfd.c.
- if($filename =~ /vfd/) {
- next if $name =~ /^(SPLITTER_|splitter_)/;
- next if $name =~ /(_splitter_)/;
- next if $name =~ /^(file_exists)$/;
- }
-
- # S3 VFD test code. Ignore in ros3.c and s3comms.c.
- # HDFS VFD test code. Ignore in hdfs.c.
- if($filename =~ /ros3|s3comms|hdfs/) {
- next if $name =~ /^(JSVERIFY|JSFAILED_|JSERR_|jserr_|FAIL_)/;
- next if $name =~ /^(curl_)/;
- next if $name =~ /^(S3COMMS_FORMAT_CREDENTIAL|ISO8601NOW|gmnow)$/;
- }
-
- # VDS test code. Ignore in vds.c.
- if($filename =~ /vds/) {
- next if $name =~ /^(vds_)/;
- }
-
- print "$filename:$.: $name\n";
- }
-
- }
-
- # Close the file
- close($fh);
-}
-
-if($#ARGV gt 0) {
- print "\n";
- print "NOTE:\n";
- print "If any files were skipped due to being exempt, you can inspect them manually\n";
- print "by using this script on them one at a time, which will always process the file.\n";
-}