check_add.sh
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:4k
源码类别:

生物技术

开发平台:

C/C++

  1. #! /bin/sh
  2. # $Id: check_add.sh,v 1000.0 2003/10/30 16:33:01 gouriano Exp $
  3. # Author:  Vladimir Ivanov, NCBI 
  4. #
  5. ###########################################################################
  6. #
  7. # Buid list files to checking in the build tree.
  8. #
  9. # Usage: (Run only from Makefile.meta)
  10. #    check_add.sh <project_srcdir> <project_name> <signature> [<exeextension>]
  11. #
  12. # Example:
  13. #    check_add.sh ~/c++/src/html/test test_jsmenu  
  14. #                 GCC_295-Debug--sparc-sun-solaris2.8-serpens
  15. #
  16. # Note:
  17. #    1) Environment variable CHECK_RUN_LIST must be set;
  18. #    2) We assume that current work dir is <project_name> in build dir.
  19. #    3) If environment variable CHECK_USE_IGNORE_LIST is 'Y' that the name 
  20. #       of the current test will be checked in ignore list
  21. #       (src/check/ignore.lst). And if it present in list that this test 
  22. #       will be skipped. By default this variable is 'Y'.
  23. #
  24. ###########################################################################
  25. # Parameters
  26. x_out=$CHECK_RUN_LIST
  27. x_srcdir=`(cd "$1"; pwd)`
  28. x_test=$2
  29. x_signature=$3
  30. x_exeext=$4
  31. x_use_ignore_list=${CHECK_USE_IGNORE_LIST-Y}
  32. x_delim=" ____ "
  33. # Default timeout for check (in seconds)
  34. x_timeout_default=200
  35. # Convert source dir to relative path
  36. x_srcdir_rel=`echo "$x_srcdir" | sed -e 's%^.*/src/%%'`
  37. # Check to necessity make test for this application
  38. if test ! -f "$x_srcdir/Makefile.$x_test.app";  then
  39.    echo "Warning: File "$x_srcdir/Makefile.$x_test.app" not found."
  40.    exit 0
  41. fi
  42. # Get app name
  43. x_app=`grep '^ *APP[ =]' "$x_srcdir/Makefile.$x_test.app"`
  44. x_app=`echo "$x_app" | sed -e 's/^.*=//' -e 's/^ *//'`
  45. x_tpath=`echo "$x_srcdir/$x_test" | sed 's%^.*/src/%%'`
  46. if grep -c '^ *CHECK_CMD' $x_srcdir/Makefile.$x_test.app > /dev/null ; then 
  47.    # Check ignore list
  48.    x_use_ignore_list=`echo $x_use_ignore_list | tr '[a-z]' '[A-Z]' | sed -e 's/^(.).*/1/g'`
  49.    if test "$x_use_ignore_list"=='Y' ; then
  50.       x_signature=`echo $x_signature | sed 's/-[a-z.]*$//'`
  51.       root_dir=`echo "$x_srcdir" | sed 's%/src/.*$%%'`
  52.       ignore_list="$root_dir/src/check/ignore.lst"
  53.       if grep "^ *$x_srcdir_rel/$x_app *$x_signature" $ignore_list > /dev/null 2>&1; then
  54.          echo "SKIP -- $x_tpath"
  55.          exit 0
  56.       fi
  57.    fi
  58.    echo "TEST -- $x_tpath"
  59. else 
  60.    echo "SKIP -- $x_tpath"
  61.    exit 0
  62. fi
  63. # Add exe extension if necessry
  64. x_app=$x_app$x_exeext
  65. # Get cmd-lines to run test
  66. x_run=`grep '^ *CHECK_CMD' "$x_srcdir/Makefile.$x_test.app" | sed 's/^[^=]*=//'`
  67. if test -z "$x_run"; then
  68.    # If command line not defined, then just run the test without parameters
  69.    x_run="$x_app$x_exeext"
  70. fi
  71. x_run=`echo "$x_run" | sed -e 's/ /%gj_s4%/g'`
  72. # Specified files to copy to the build directory
  73. x_files=`grep '^ *CHECK_COPY' "$x_srcdir/Makefile.$x_test.app" | sed -e 's/^.*=//' -e 's/^.[ ]*//'`
  74. # Get application's check timeout
  75. x_timeout=`grep '^ *CHECK_TIMEOUT' "$x_srcdir/Makefile.$x_test.app" | sed -e 's/^.*=//' -e 's/^.[ ]*//'`
  76. x_timeout="${x_timeout:-$x_timeout_default}"
  77. # Get application's requirement
  78. x_requires=`grep '^ *CHECK_REQUIRES' "$x_srcdir/Makefile.$x_test.app" | sed -e 's/^.*=//' -e 's/^.[ ]*//'`
  79. if test -z "$x_requires"; then
  80.    x_requires=`grep '^ *REQUIRES' "$x_srcdir/Makefile.$x_test.app" | sed -e 's/^.*=//' -e 's/^.[ ]*//'`
  81. fi
  82. # Write data about current test into the list file
  83. for x_cmd in $x_run; do
  84.     x_cmd=`echo "$x_cmd" | sed -e 's/%gj_s4%/ /g' | sed -e 's/^ *//' | sed -e 's/"/\\"/g'`
  85.     echo "$x_srcdir_rel$x_delim$x_test$x_delim$x_app$x_delim$x_cmd$x_delim$x_files$x_delim$x_timeout$x_delim$x_requires" >> $x_out
  86. done
  87. exit 0
  88. #  ===========================================================================
  89. #  PRODUCTION $Log: check_add.sh,v $
  90. #  PRODUCTION Revision 1000.0  2003/10/30 16:33:01  gouriano
  91. #  PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.15
  92. #  PRODUCTION
  93. #  ===========================================================================