diff gpf/BIN/mkalltc.bat @ 0:509db1a7b7b8

initial import: leo2moko-r1
author Space Falcon <falcon@ivan.Harhan.ORG>
date Mon, 01 Jun 2015 03:24:05 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gpf/BIN/mkalltc.bat	Mon Jun 01 03:24:05 2015 +0000
@@ -0,0 +1,605 @@
+@echo off
+setlocal
+rem --------------------------------------------------------------------------- 
+rem  Project :  
+rem  Modul   : mkalltc.bat
+rem --------------------------------------------------------------------------- 
+rem  Copyright 2002 Texas Instruments Berlin, AG 
+rem                 All rights reserved. 
+rem 
+rem                 This file is confidential and a trade secret of Texas 
+rem                 Instruments Berlin, AG 
+rem                 The receipt of or possession of this file does not convey 
+rem                 any rights to reproduce or disclose its contents or to 
+rem                 manufacture, use, or sell anything it may describe, in 
+rem                 whole, or in part, without the specific written consent of 
+rem                 Texas Instruments Berlin, AG. 
+rem --------------------------------------------------------------------------- 
+rem   Purpose : Generate all test cases for a given test specification
+rem --------------------------------------------------------------------------- 
+set tc_exitcode=0
+loadbtm on
+@pushd
+@if x%_4ver% == x goto Need4NT
+
+@rem Check %PROST
+@iff x%PROST == x then
+@echo Which Protocol Stack shall be tested?
+@echo set the environment variable PROST to the name of the stack.
+@echo e.g. set PROST=GSM or set PROST=WARP will work
+goto error
+@endiff
+
+@rem Check for gnumake and grep
+set grep=%GPF%\tools\bin\grep.exe
+iff NOT exist %grep% then
+  echo You need %grep% to generate test cases
+  goto error
+endiff
+set gnumake=%GPF%\tools\bin\gnumake.exe
+iff NOT exist %gnumake% then
+  echo You need %gnumake% to generate test cases
+  goto error
+endiff
+set sed=%GPF%\tools\bin\sed.exe
+iff NOT exist %sed% then
+  echo You need %sed% to generate tests
+  goto error
+endiff
+rem set gawk but check it later only if it is needed
+set gawk=%GPF%\tools\bin\gawk.exe
+
+@set TC_COMPILE_ONLY=0
+@set TC_FINALTESTS=0
+iff "x%TDSCHECK_ENABLED" == "x" then
+set enable_check=0
+else
+set enable_check=1
+endiff
+set tc_firsttc=
+set tc_lasttc=
+set tc_delete_olds=1
+set tc_cons_output=0
+set tc_bnam=
+set tc_furtherincludes=
+set tc_gen_only=0
+set tc_range_supplied=0
+set tc_testconfig=
+set tc_testdlldir=
+set tc_testenv=new
+set tc_gendir=%GPF%\util\tap\gen
+set tc_tap_errfunc=tap_get_exitcode 
+set tc_testpref=
+set tc_allin1=0
+set tc_genc=0
+set tc_tdc=0
+
+:check_options
+@rem Check Parameters
+@if "x%1" == "x" goto How2Use
+iff "%1" == "-to" then
+  iff %tc_compile_only% == 1 .OR. %TC_FINALTESTS% == 1 then
+    echo Use of "-to" ignored because "-co" or "-f" was set
+  else
+    set tc_gen_only=1
+  endiff
+  shift 1
+  goto check_options
+elseiff "%1" == "-co" then
+  iff %tc_gen_only% == 1 then
+    echo Use of "-co" ignored because "-to" was set
+  else
+    set TC_COMPILE_ONLY=1
+  endiff
+  shift 1
+goto check_options
+elseiff "%1" == "-eut" then
+  set tc_testconfig=EUT=%@UPPER[%2]
+  set tc_tdcenti=%@LOWER[%2]
+  shift 2
+  goto check_options
+elseiff "%1" == "-f" then
+  rem Check for several tools in %PATH
+  set uniq=%GPF%\tools\bin\uniq.exe
+  set sort=%GPF%\tools\bin\sort.exe
+  iff NOT exist %uniq% then
+    echo You need %uniq% to generate final tests
+    goto error
+  endiff
+  iff NOT exist %sort% then
+    echo You need %sort% to generate final tests
+    goto error
+  endiff
+  iff NOT exist %gawk% then
+    echo You need %gawk% to generate final tests
+    goto error
+  endiff
+  iff %tc_gen_only% == 1 then
+    echo Use of "-f" ignored because "-to" was set
+  else
+    set TC_FINALTESTS=1
+  endiff
+  shift 1
+  goto check_options
+elseiff "%1" == "-tty" then
+  set tc_cons_output=1
+  shift 1
+  goto check_options
+elseiff "%1" == "-oe" then
+  set tc_tap_errfunc=!tcd_errorOccured
+  set tc_gendir=%GPF%\tap
+  set tc_testenv=old
+  shift 1
+  goto check_options
+elseiff "%1" == "-oed" then
+  set tc_tap_errfunc=!tcd_errorOccured
+  set tc_gendir=%GPF%\tap
+  set tc_testenv=old
+  set tc_testpref=oe_
+  shift 1
+  goto check_options
+elseiff "%1" == "-debug" then
+  echo on
+  shift 1
+  goto check_options
+elseiff "%1" == "-k" then
+  set tc_delete_olds=0
+  shift 1
+  goto check_options
+elseiff "%1" == "-tc" then
+  if "x%2" == "x" (echo Missing name of testcases for "-tc" & goto How2Use)
+  set tc_bnam=%2
+  shift 2
+  goto check_options
+elseiff "%1" == "-r" then
+  if "x%2" == "x" (echo Missing range for "-r" & goto How2Use)
+  set tc_dash=%@INDEX[%2,-]
+  if %tc_dash == -1 (echo Invalid range "%2" & goto How2Use)
+  set tc_firsttc=%@INSTR[0,%tc_dash,%2]
+  set tc_lasttc=%@SUBSTR[%2,%@eval[1+%tc_dash%]]
+  set tc_range_supplied=1
+  shift 2
+  goto check_options
+elseiff "%1" == "-chk" then
+  rem Call TDSCheck after generating tds files
+  set enable_check=1
+  shift 1
+  goto check_options
+elseiff "%1" == "-td" then
+  if "x%2" == "x" (echo Missing testdll directory  for "-td" & goto How2Use)
+  set tc_testdlldir=%2
+  shift 2
+  goto check_options
+elseiff "%1" == "-genc" then
+  set tc_genc=1
+  set tc_allin1=1
+  shift 1
+  goto check_options
+elseiff "%1" == "-1" then
+  set tc_allin1=1
+  shift 1
+  goto check_options
+elseiff "%1" == "-tdc" then
+  set tc_tdc=1
+  shift 1
+  goto check_options
+elseiff "%1" == "-i" then
+  if "x%2" == "x" (echo Miissing include directory  for "-i" & goto How2Use)
+  iff "%@INSTR[0,1,%2]" == "." .OR. "%@INSTR[0,1,%2]" == "/" .OR. "%@INSTR[0,1,%2]" == "\" .OR. "%@INSTR[1,1,%2]" == ":" then
+    set tc_furtherincludes=%tc_furtherincludes% -I %2
+  else
+    set tc_furtherincludes=%tc_furtherincludes% -I %TDSDIR%/%2
+  endiff
+  shift 2
+  goto check_options
+endiff
+
+@if %#% GT 2 goto How2Use
+if "%@INSTR[0,1,%1]" == "-" goto unknown_option
+
+iff %tc_allin1% == 1 then
+  set decl_extr=%GPF%\BIN\decl-extr.exe
+  iff NOT exist %decl_extr% then
+    echo You need %decl_extr% to generate test cases
+    goto error
+  endiff
+endiff
+
+iff %tc_tdc% == 1 then
+  set msdev=%@search[msdev]
+  iff "x%msdev%" == "x" then
+    echo You need MSDEV in your Path to generate TDC test cases
+    goto error
+  endiff
+endiff
+
+iff "x%2" != "x" then
+  iff "x%tc_testconfig" != "x" then
+    echo Warning: parameter "%2" ignored, because -eut was set
+  else
+    set tc_testconfig=%@UPPER[%2]
+  endiff
+else
+  if "x%tc_testconfig" == "x" set tc_testconfig=%@UPPER[%1]
+endiff
+set ENTI=%@LOWER[%1]
+if "x%tc_bnam%" == "x" set tc_bnam=%ENTI%
+if "x%tc_tdcenti%" == "x" set tc_tdcenti=%ENTI%
+
+@rem Stack-Specifics
+iff "x%TCDIR%" == "x" then
+  iff "%PROST" == "WARP" .OR. "%PROST%" == "g23net" then
+    set TCDIR=%BINDIR%
+  else
+    set TCDIR=%TESTROOT%\%SIDE%\TEST
+  endiff
+endiff
+iff %tc_tdc% == 1 then
+  iff %PROST% == generic then
+    set TDCSRCDIR=%TESTROOT%\spec\test\%ENTI%
+  else
+    iff exist %TESTROOT%\ms\src\%tc_tdcenti%\%tc_bnam%_test then
+      set TDCSRCDIR=%TESTROOT%\ms\src\%tc_tdcenti%\%tc_bnam%_test
+    elseiff exist %TESTROOT%\ms\src\%tc_tdcenti%\test_%tc_bnam% then
+      set TDCSRCDIR=%TESTROOT%\ms\src\%tc_tdcenti%\test_%tc_bnam%
+    else
+      echo No test case directory
+      echo Neither %TESTROOT%\ms\src\%tc_tdcenti%\%tc_bnam%_test
+      echo ^s^s^s^snor %TESTROOT%\ms\src\%tc_tdcenti%\test_%tc_bnam% exist
+      goto error
+    endiff
+  endiff
+endiff
+
+%TESTDRIVE%
+
+rem check if test case directory is substructured
+iff "x%tc_testdlldir" =="x" then
+  iff "x%TCNOTSUBSTRUCT" == "x" then
+    set TESTDLLDIR=%TCDIR%\%tc_testpref%%ENTI%_test
+  else
+    set TESTDLLDIR=%TCDIR%
+  endiff
+else
+  iff "%@INSTR[0,1,%tc_testdlldir%]" == "." .OR. "%@INSTR[0,1,%tc_testdlldir%]" == "/" .OR. "%@INSTR[0,1,%tc_testdlldir%]" == "\" .OR. "%@INSTR[1,1,%tc_testdlldir%]" == ":" then
+    set TESTDLLDIR=%tc_testdlldir%
+  else
+    set TESTDLLDIR=%TCDIR%\%tc_testdlldir%
+  endiff
+endiff
+
+iff NOT exist %TESTDLLDIR% .AND. %tc_tdc% != 1 then
+  echo "Creating test directory %TESTDLLDIR% ..."
+  mkdir /S %TESTDLLDIR%
+endiff
+
+rem check if configstring is like EUT=ACI or like MFW
+set EQINP2=%@WORDS["=",%tc_testconfig]
+@iff %EQINP2% GT 1 then
+  set TSTDLLCONF="%tc_testconfig%"
+@else
+  set TSTDLLCONF="CONFDLL=%tc_testconfig%"
+@endiff
+
+
+iff %tc_tdc% == 1 then
+  set tcerr=%TDCSRCDIR%\%ENTI%.err
+  iff exist %TDCSRCDIR%\makefile then
+    echo Building Testlib with %TDCSRCDIR%\makefile
+    call gnumake > %tcerr%
+  else
+    iff exist %TDCSRCDIR%\%ENTI%_test.dsp then
+      set msdevfile=%TDCSRCDIR%\%ENTI%_test.dsp
+    elseiff exist %TDCSRCDIR%\%ENTI%_test.dsw then
+      set msdevfile=%TDCSRCDIR%\%ENTI%_test.dsw
+    elseiff exist %TDCSRCDIR%\test_%ENTI%.dsp then
+      set msdevfile=%TDCSRCDIR%\test_%ENTI%.dsp
+    elseiff exist %TDCSRCDIR%\test_%ENTI%.dsw then
+      set msdevfile=%TDCSRCDIR%\test_%ENTI%.dsw
+    else
+      set msdevfile=_not_found_
+    endiff
+    iff %msdevfile% == _not_found_ then
+      echo No Project/Workspace file %ENTI%_test found in %TDCSRCDIR%
+      goto error
+    endiff
+    echo Building Testlib with %msdevfile%
+    call msdev.exe %msdevfile% /MAKE "%@NAME[%msdevfile%] - Win32 Debug" /CLEAN > %tcerr%
+    iff %? == 0 then
+      call msdev.exe %msdevfile% /MAKE "%@NAME[%msdevfile%] - Win32 Debug" /REBUILD >> %tcerr%
+    endiff
+  endiff
+
+  iff %? == 0 then
+    echo ...done.
+    if exist %tcerr% del /q %tcerr%
+  else echo See errors %tcerr & goto end
+  endiff
+  goto end
+else
+  set tcerr=%TDSDIR%\%ENTI%\%ENTI%.err
+endiff
+
+@if %tc_genc == 1 goto gen_c
+@if %TC_COMPILE_ONLY == 1 goto compile_only
+
+@if NOT exist %TSTDOCDIR%\%ENTI%.doc goto NoDoc
+
+@rem Check for tdsgen
+set tdsgen=%GPF%\BIN\tdsGen.exe%
+iff NOT exist %tdsgen% then
+  echo You need %tdsgen% to generate test cases
+goto error
+@endiff
+
+rem Check for doc2txt
+set doc2txt=%GPF%\tools\bin\Doc2txt.exe
+iff NOT exist %doc2txt% then
+echo You need %doc2txt% to generate test cases
+goto error
+endiff
+set doc2txt_opts=-O -w -f wdFormatTextLineBreaks
+
+rem Check for tdscheck.exe
+iff %enable_check% == 1 then 
+  set tdscheck=%GPF%\BIN\tdscheck.exe
+  iff NOT EXIST %tdscheck% then
+    echo You need %tdscheck% to check your tds files
+    goto error
+  endiff
+endiff
+
+rem check if tds directory exists
+@iff NOT exist %TDSDIR%\%ENTI% then
+@echo "Creating test directory %TDSDIR%\%ENTI% ..."
+@mkdir /S %TDSDIR%\%ENTI%
+@endiff
+
+@if exist %TDSDIR%\%ENTI%\*.tds del /q %TDSDIR%\%ENTI%\*.tds
+
+%doc2txt% %doc2txt_opts% %TSTDOCDIR%\%ENTI%.doc
+rem hack for office 2000 where a blank is inserted after a backslash-newline
+move /q %TSTDOCDIR%\%ENTI%.txt %TSTDOCDIR%\%ENTI%.txt_
+%sed% -e "s/\\ $/\\/" %TSTDOCDIR%\%ENTI%.txt_ > %TSTDOCDIR%\%ENTI%.txt
+del /q %TSTDOCDIR%\%ENTI%.txt_ > nul
+rem end of hack
+%tdsgen% %TCDIR% %ENTI% %TSTDOCDIR% %TDSDIR%\%ENTI%
+if %tc_cons_output% == 1 type %tcerr%
+if errorlevel GT 0 goto tdsgenerr
+gosub gen_suites
+@iff %enable_check% == 1 then 
+  %tdscheck% %TDSDIR%\%ENTI% %ENTI%
+  @if errorlevel GT 1 goto tapcheckerrors
+@endiff
+if %tc_gen_only == 1 goto end
+
+:gen_c
+:compile_only
+@if NOT exist %TDSDIR%\%ENTI%\*.tds goto NoTds
+cd %TDSDIR%\%ENTI%
+set tc_exmp_=%@FINDFIRST[*.tds]
+set tc_exmp=%@NAME[%tc_exmp_]
+set tc_exmp_=%@FINDCLOSE[*.tds]
+iff %tc_testenv% == new then
+%grep% SCRIPT_BEGIN %tc_exmp%.tds > nul
+  iff %? == 0 then
+    set tc_testlanguage=TCSL 
+  else
+    set tc_testlanguage=TDS
+  endiff
+endiff
+
+if %tc_allin1% == 0 goto not_allin1
+
+@if %TC_COMPILE_ONLY == 1 goto compile_c
+echo #include "%ENTI%.h" > %ENTI%.c
+
+@FOR %tcase IN (%TDSDIR%\%ENTI%\*.tds) do (
+%sed% -e 1,2d -e "s/TESTCASE (\([a-zA-Z0-9_]*\))/EXPORT UBYTE \1(){&/" -e "s/ENDCASE/&;return (%tc_tap_errfunc%());}/" -e "s/#include \"\([a-zA-Z0-9_]*\).[tT][dD][sS]\"/\1();/" %tcase% >> %ENTI%.c
+)
+
+%grep% EXPORT %ENTI%.c | sed s/{.*/;/ > %ENTI%.h
+%decl_extr% %ENTI%.def %ENTI%.decl
+%grep% #include %ENTI%.def >> %ENTI%.decl
+
+:compile_c
+cdd %tc_gendir%
+call gnumake -f testdll.mk OUTDLL=%TESTDLLDIR%/%ENTI%.DLL %TSTDLLCONF% ALL_IN_ONE=1 TSTDOCNAM=%ENTI% TC_FURTHERINCLUDES="%tc_furtherincludes" TC_TESTLANGUAGE=%tc_testlanguage% all >%tcerr%
+
+iff %? == 0 then
+  echo Generated Testlib %TESTDLLDIR%\%ENTI%.DLL.
+  if exist %tcerr% del /q %tcerr%
+else echo See %tcerr & goto end
+endiff
+goto end
+
+:not_allin1
+rem Check ranges
+iff %tc_range_supplied% == 1 then
+  set tc_ords=%@SUBSTR[%tc_exmp,%@LEN[%tc_bnam%]]
+  set tc_len=%@LEN[%tc_ords]
+  if %@NUMERIC[%tc_ords] == 0 set tc_len=%@DEC[%tc_len%]
+  iff x%tc_firsttc == x then
+    iff %tc_len% == 4 then
+      set tc_firsttc=0000
+    else
+      set tc_firsttc=000
+    endiff
+  else
+    set tc_len_=%@LEN[%tc_firsttc]
+    if %@NUMERIC[%tc_firsttc] == 0 set tc_len_=%@DEC[%tc_len_%]
+    if %tc_len != %tc_len_ echo Warning: your range "%tc_firsttc" is ambigious
+  endiff
+  iff x%tc_lasttc == x then
+    iff %tc_len% == 4 then
+      set tc_lasttc=9999Z
+    else
+      set tc_lasttc=999Z
+    endiff
+  else
+    set tc_len_=%@LEN[%tc_lasttc]
+    if %@NUMERIC[%tc_lasttc] == 0 set tc_len_=%@DEC[%tc_len_%]
+    if %tc_len != %tc_len_ echo Warning: your range "%tc_lasttc" is ambigious
+  endiff
+endiff
+
+rem Deleting all old .err-Files
+@if exist %TDSDIR%\%ENTI%\*.err del /q %TDSDIR%\%ENTI%\%ENTI%*.err
+
+iff %tc_delete_olds == 1 then
+  iff exist %TESTDLLDIR%\%tc_bnam%*.dll .OR. exist %TESTDLLDIR%\sui\%tc_bnam%*.dll then
+    echo Deleting all old .dll-Files
+    if exist %TESTDLLDIR%\%tc_bnam%*.dll del /q %TESTDLLDIR%\%tc_bnam%*.dll
+    if exist %TESTDLLDIR%\sui\%tc_bnam%*.dll del /q %TESTDLLDIR%\sui\%tc_bnam%*.dll
+  endiff
+endiff
+
+iff %TC_FINALTESTS% == 1 then
+set tc_nonfdummy=%TDSDIR%\%ENTI%\%ENTI%_nonfdummy.txt
+if exist %tc_nonfdummy% del /q %tc_nonfdummy
+%grep% -hi "#include.*tds" %TDSDIR%\%ENTI%\*.tds | %sed% -e "s/#include  *[\"^<]\([a-zA-Z0-9]*\).*[\"^>]/\1.td_/" > %tc_nonfdummy%
+iff %tc_testlanguage% == TCSL then
+    if exist %ENTI%.sui echo Warning: option -f in combination with Suites and test language TCSL cannot always work properly 
+else
+  %grep% -Li "#include.*tds" %TDSDIR%\%ENTI%\*.tds | %sed% -e "s/.*\\//" -e "s/tds/td_/" >> %tc_nonfdummy
+endiff
+%sort% < %tc_nonfdummy% | %uniq% | %gawk% -- "{ print $1 > $1 }"
+iff exist %ENTI%.sui then
+  %sort% < %tc_nonfdummy% | %uniq% | %sed% -e "s/\(.*\)\.td_/\/\1\/{ print \"\1\"}/" > %ENTI%.awk 
+  %gawk% -f %ENTI%.awk %ENTI%.sui | %sort% | %uniq% | %sed% -e "s/.*/&.td__/" | %gawk% -- "{ print $1 > $1}"
+  del /q %ENTI%.awk
+  if NOT isdir %TESTDLLDIR%\sui .AND. exist *.td__ mkdir %TESTDLLDIR%\sui
+endiff
+del /q %tc_nonfdummy
+endiff
+
+cdd %tc_gendir%
+@echo Compiling testcases
+set tc_error_occurred=0
+FOR %tcase IN (%TDSDIR%\%ENTI%\*.tds) do (
+  if %tc_error_occurred == 0 gosub mk_test
+)
+goto clean_up
+
+:mk_test
+set tcname=%@NAME[%tcase]
+iff %tc_range_supplied% == 1 then
+  set tc_ords=%@SUBSTR[%tcname,%@LEN[%tc_bnam%]]
+  set tc_namparam=%tc_bnam%%tc_ords%
+  iff %tc_ords% GE %tc_firsttc% .AND. %tc_ords% LE %tc_lasttc% then
+    set tc_inrange=1
+  else
+    set tc_inrange=0
+  endiff
+else
+  set tc_namparam=%tcname%
+  set tc_inrange=1
+endiff
+iff %tc_inrange% == 1 then
+  iff EXIST %TDSDIR%\%ENTI%\%tcname%.td__ then
+    set OUTDLL=%TESTDLLDIR%/sui/%tcname%.dll
+  elseiff NOT EXIST %TDSDIR%\%ENTI%\%tcname%.td_ then
+    set OUTDLL=%TESTDLLDIR%/%tcname%.dll
+  else
+    set OUTDLL=
+  endiff
+  iff "x%OUTDLL" != "x" then
+    %gnumake% -f testdll.mk OUTDLL=%OUTDLL% TSTDOCNAM=%ENTI% TC_NAME=%tc_namparam% %TSTDLLCONF% TC_FURTHERINCLUDES="%tc_furtherincludes" TC_TESTLANGUAGE=%tc_testlanguage% all >%tcerr%
+    iff %tc_cons_output% == 1 then
+      if %? != 0 set tc_error_occurred=1
+      type %tcerr%
+    else
+      iff %? == 0 then
+        echo %@NAME[%tcase] done.
+      else echo Error (%tcname%): See %tcerr & set tc_error_occurred=1
+    endiff
+  endiff
+endiff
+return
+
+:gen_suites
+%grep% Suites %TSTDOCDIR%\%ENTI%.txt > nul
+iff %? == 0 then
+  set gensuites=%GPF%\BIN\gensuites.awk
+  iff NOT EXIST %gensuites% .OR. NOT EXIST %gawk% then
+    echo Warning: You need %gensuites% and %gawk% to generate suites
+    return
+  endiff
+  %gawk% -f %gensuites% %TSTDOCDIR%\%ENTI%.txt | tee %TDSDIR%\%ENTI%\%ENTI%.sui > %TESTDLLDIR%\%ENTI%.sui
+  echo Generated %TDSDIR%\%ENTI%\%ENTI%.sui
+  echo ^s^s^s^s^s^sand %TESTDLLDIR%\%ENTI%.sui
+else
+  echo No Suites
+endiff
+return
+
+:clean_up
+iff %tc_error_occurred% == 0 then
+  echo Generated Test Cases are in %TESTDLLDIR%
+  if exist %tcerr% del /q %tcerr%
+endiff
+
+if exist %TDSDIR%\%ENTI%\*.td_ del /q %TDSDIR%\%ENTI%\*.td_
+if exist %TDSDIR%\%ENTI%\*.td__ del /q %TDSDIR%\%ENTI%\*.td__
+goto end
+
+
+:NoDoc
+@echo "%TSTDOCDIR%\%ENTI%.doc does not exist"
+goto error
+
+:NoTds
+@echo "No tds-Files in %TDSDIR%\%ENTI%"
+goto error
+
+:tdsgenerr
+iff %?%==2 @echo Parse error in test case document. See %TDSDIR%\%ENTI%\%ENTI%.err
+iff %?%==3 @echo Error while opening file during generation of test cases 
+goto error
+
+:tapcheckerrors
+@echo "tapcheck has found problems in %TSTDOCDIR%\%ENTI%.doc"
+@echo "inspect %TDSDIR%\%ENTI%\%ENTI%.chk"
+goto error
+
+:still_open
+@echo "%TSTDOCDIR%\%ENTI%.doc is still open"
+goto error
+
+:Need4NT
+@echo "Error: 4DOS or 4NT is needed
+goto error
+
+:unknown_option
+echo Unknown Option: %1
+
+:How2Use
+text
+MkAllTc : Create test cases
+Usage   : MkAllTc [-chk] [-co] [-to] [-f] [-r [<first>]-[<last>]] [-k] [-tty] [-oe] [-oed] [-i <incdir>] [-tc <tcbase>] [-eut <entity>] [-td <testdlldir>] [-tdc] <Tdoc> [config]
+Example : MkAllTc CC  -  creates all available test cases for CC (from CC.doc)
+    -chk: call TDSCheck after generating TDS files
+    -co : compile only - do not regenerate tds-Files from word source
+    -to : generate TDS files only; don't compile test cases
+    -f  : generate final test only (test, that are not preambles)
+    -r  : generate range from <first> to <last>
+    -k  : keep (don't delete) older testcases (useful when using -r)
+    -tty: write tools output to console
+    -i  : set <incdir> as additional include directory for test case compilation
+    -td : set <testdlldir> as directory for the test cases
+    -oe : old environment; generate test case for Tap on old frame
+    -oed: same as -oe, but create test cases in a differently named directory
+    -eut: same as EUT=<entity> as last parameter
+		-tc : set test case base name
+    -tdc: use dedicated makefile or msdev project to generate tdc test cases
+  config: EUT=<entity> where the names of testdoc and entity differ
+    like: MkAllTc BMIT EUT=ACI
+endtext
+
+:error
+set tc_exitcode=1
+
+:end
+endlocal
+popd
+quit %tc_exitcode%