102 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #! /bin/sh
 | |
| # Copyright (c) 2002, Intel Corporation. All rights reserved.
 | |
| # Created by:  inaky.perez-gonzalez REMOVE-THIS AT intel DOT com
 | |
| # This file is licensed under the GPLv2 license.  For the full content
 | |
| # of this license, see the COPYING file at the top level of this
 | |
| # source tree.
 | |
| 
 | |
| usage()
 | |
| {
 | |
|     cat <<EOF
 | |
| Usage: $(basename "$0") [OPTIONs] DIRECTORY
 | |
| 
 | |
| Lists the tests (source/binary) available from the DIRECTORY directory
 | |
| and down.
 | |
| 
 | |
|   --buildonly     List only tests that require building
 | |
|   --runnable      List only tests that are executable
 | |
|                   If you just want to build a test, but not run it,
 | |
|                   do not include a main function into the .c file or
 | |
|                   name it something including the "-buildonly" string.
 | |
|   --test-tools	  List all test tools that require building.
 | |
|   --help          Show this help and exit
 | |
| 
 | |
| Filenames need to follow some standarized format for them to be picked
 | |
| up by this tool. This might change in the future. So far, the ones
 | |
| picked up are:
 | |
| 
 | |
| NUMBER-NUMBER.c     [requires compilation]
 | |
| NUMBER-NUMBER.sh    [does not require compilation]
 | |
| NUMBER-buildonly.c  [requires compilation]
 | |
| NAME.sh             [does not require compilation]
 | |
| 
 | |
| Note that the [requires compilation] tags will mean that the actual
 | |
| test name for TEST.c after compiling will be TEST. Currently it does
 | |
| not support TESTs compiled from many different sources.
 | |
| 
 | |
| EOF
 | |
| }
 | |
| 
 | |
| mode=
 | |
| 
 | |
| # Go through the cmd line options
 | |
| while true
 | |
| do
 | |
| 	case "$1" in
 | |
| 	"--buildonly")
 | |
| 		mode="buildonly"
 | |
| 		shift
 | |
| 		;;
 | |
| 	"--runnable")
 | |
| 		mode="runnable"
 | |
| 		shift
 | |
| 		;;
 | |
| 	"--test-tools")
 | |
| 		mode="test-tools"
 | |
| 		shift
 | |
| 		;;
 | |
| 	"--help")
 | |
| 		usage
 | |
| 		exit 0
 | |
| 		;;
 | |
| 	--*)
 | |
| 		echo  >&2 "Unknown option: $1"
 | |
| 		usage >&2
 | |
| 		exit 1
 | |
| 		;;
 | |
| 	*)
 | |
| 		break
 | |
| 		;;
 | |
| 	esac
 | |
| done
 | |
| 
 | |
| # Simple version right now, just locate all:
 | |
| WHERE=${1:-.}
 | |
| 
 | |
| # Need the DIRECTORY arg ...
 | |
| if [ ! -d "$WHERE" ]; then
 | |
| 	echo >&2 "Error: $WHERE: no such directory"
 | |
| 	exit 1
 | |
| elif [ "x$mode" = x ]; then
 | |
| 	echo >&2 "Error: no options specified"
 | |
| 	usage >&2
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| case "$mode" in
 | |
| buildonly)
 | |
| 	find "$WHERE" -type f -name "*.c" | grep buildonly
 | |
| 	;;
 | |
| runnable)
 | |
| 	# XXX (garrcoop): the tools part is a hack to ensure that we don't
 | |
| 	# waltz down the tools directory and try and build t0 (which doesn't
 | |
| 	# make sense as it's a tool, not a test). Better criterion needs to
 | |
| 	# be established for this file.
 | |
| 	find "$WHERE/conformance" "$WHERE/stress" -type f -name '*[0-9].c' -o -name '[0-9]*-[0-9]*.sh' | grep -v buildonly | grep -v '^./tools'
 | |
| 	find "$WHERE/functional" -type f -name '*.c'
 | |
| 	;;
 | |
| test-tools)
 | |
| 	find "$WHERE" -type f -name '*-core.c'
 | |
| 	;;
 | |
| esac
 |