Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) Futex Test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) ==========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) Futex Test is intended to thoroughly test the Linux kernel futex system call
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) API.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) Functional tests shall test the documented behavior of the futex operation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) code under test. This includes checking for proper behavior under normal use,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) odd corner cases, regression tests, and abject abuse and misuse.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Futextest will also provide example implementation of mutual exclusion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) primitives. These can be used as is in user applications or can serve as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) examples for system libraries. These will likely be added to either a new lib/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) directory or purely as header files under include/, I'm leaning toward the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) latter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Quick Start
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) # make
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) # ./run.sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Design and Implementation Goals
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) -------------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) o Tests should be as self contained as is practical so as to facilitate sharing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)   the individual tests on mailing list discussions and bug reports.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) o The build system shall remain as simple as possible, avoiding any archive or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)   shared object building and linking.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) o Where possible, any helper functions or other package-wide code shall be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)   implemented in header files, avoiding the need to compile intermediate object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)   files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) o External dependencies shall remain as minimal as possible. Currently gcc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)   and glibc are the only dependencies.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) o Tests return 0 for success and < 0 for failure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) Output Formatting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) -----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) Test output shall be easily parsable by both human and machine. Title and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) results are printed to stdout, while intermediate ERROR or FAIL messages are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) sent to stderr. Tests shall support the -c option to print PASS, FAIL, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) ERROR strings in color for easy visual parsing. Output shall conform to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) following format:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) test_name: Description of the test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	Arguments: arg1=val1 #units specified for clarity where appropriate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	ERROR: Description of unexpected error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	 FAIL: Reason for test failure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 	# FIXME: Perhaps an " INFO: informational message" option would be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	#        useful here. Using -v to toggle it them on and off, as with -c.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	# there may be multiple ERROR or FAIL messages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) Result: (PASS|FAIL|ERROR)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) Naming
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) ------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) o FIXME: decide on a sane test naming scheme.  Currently the tests are named
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)   based on the primary futex operation they test. Eventually this will become a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)   problem as we intend to write multiple tests which collide in this namespace.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)   Perhaps something like "wait-wake-1" "wait-wake-2" is adequate, leaving the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)   detailed description in the test source and the output.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) Coding Style
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) ------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) o The Futex Test project adheres to the coding standards set forth by Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)   kernel as defined in the Linux source Documentation/process/coding-style.rst.