diff gpf/BIN/MKTC.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/MKTC.bat	Mon Jun 01 03:24:05 2015 +0000
@@ -0,0 +1,337 @@
+@echo off
+@pushd
+rem --------------------------------------------------------------------------- 
+rem  Project :  
+rem  Modul   :  
+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 a test case.
+rem --------------------------------------------------------------------------- 
+@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 end
+@endiff
+
+@rem Check for gnumake
+set gnumake=%GPF%\tools\bin\gnumake.exe
+iff NOT exist %gnumake% then
+  echo You need %gnumake% to generate test cases
+  goto end
+endiff
+
+@set TC_GENTDS=0
+set tc_cons_output=0
+iff "x%TDSCHECK_ENABLED" == "x" then
+set enable_check=0
+else
+set enable_check=1
+endiff
+set tc_furtherincludes=
+set tc_testconfig=
+set tc_testdlldir=
+set tc_toolerror=0
+set tc_testenv=new
+set tc_gendir=%GPF%\util\tap\gen
+set tc_testpref=
+
+@rem Check Parameters
+:check_options
+@if x%1 == x goto How2Use
+@iff "%1" == "-gen" then
+  gosub prepare_gen
+  if %tc_toolerror% == 1 goto end
+  set TC_GENTDS=1
+  shift 1
+  goto check_options
+elseiff "%1" == "-eut" then
+  set tc_testconfig=EUT=%@UPPER[%2]
+  shift 2
+  goto check_options
+elseiff "%1" == "-tty" then
+  set tc_cons_output=1
+  shift 1
+  goto check_options
+elseiff "%1" == "-oe" then
+  set tc_gendir=%GPF%\tap
+  set tc_testenv=old
+  shift 1
+  goto check_options
+elseiff "%1" == "-oed" then
+  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" == "-chk" then
+  rem Generate tds files first
+  set TC_GENTDS=1
+  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" == "-i" then
+  if "x%2" == "x" (echo Missing 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
+
+set grep=%GPF%\tools\bin\grep.exe
+iff NOT exist %grep% then
+  echo You need %grep% to generate test cases
+  set tc_toolerror=1
+endiff
+
+@if %#% GT 3 goto How2Use
+if "%@INSTR[0,1,%1]" == "-" goto unknown_option
+@if x%2 == x goto How2Use
+iff "x%3" != "x" then
+  iff "x%tc_testconfig" != "x" then
+    echo Warning: parameter "%3" ignored, because -eut was set
+  else
+    set tc_testconfig=%@UPPER[%3]
+  endiff
+else
+  if "x%tc_testconfig" == "x" set tc_testconfig=%@UPPER[%1]
+endiff
+
+@rem Check style of second parameter (e.g. 037 or cc037)
+@set ENTI=%@UPPER[%1]
+@set FC2=%@INSTR[0,1,%2]
+@iff %@NUMERIC[%FC2] == 1 then
+set tc_bnam=%ENTI%%@UPPER[%2]
+@else
+set tc_bnam=%@UPPER[%2]
+@endiff
+set TCBASE=%TDSDIR%\%ENTI%\%tc_bnam%
+
+@if not exist %TCBASE%.tds .AND. not exist %TSTDOCDIR%\%ENTI%.doc goto NoThing
+
+@%TESTDRIVE%
+
+@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 "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% then
+  echo "Creating test directory %TESTDLLDIR% ..."
+  mkdir /S %TESTDLLDIR%
+endiff
+
+
+rem check if tds directory exists
+@iff NOT exist %TDSDIR%\%ENTI% then
+@echo "Creating test directory %TDSDIR%\%ENTI% ..."
+@mkdir /S %TDSDIR%\%ENTI%
+@endiff
+
+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 end
+  endiff
+endiff
+
+@if %TC_GENTDS% == 1 goto remake
+
+@if not exist %TCBASE%.tds goto NoSuchFile
+
+@set TC_RESP=n
+@iff exist %TSTDOCDIR%\%ENTI%.doc then
+@iff %@FILEAGE[%TSTDOCDIR%\%ENTI%.doc] gt %@FILEAGE[%TCBASE%.tds] then
+@echo Testdocument %TSTDOCDIR%\%ENTI%.doc is newer than
+@echo test case %TCBASE%.tds.
+@inkey /k"yn" /c Remake it?[yn] %%TC_RESP
+@endiff
+@endiff
+@if %TC_RESP% != y goto compile
+
+:remake
+gosub prepare_gen
+if %tc_toolerror% == 1 goto end
+%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 %TDSDIR%\%ENTI%\%ENTI%.err
+@if errorlevel GT 0 goto tdsgenerr
+@if not exist %TCBASE%.tds goto NoTc
+gosub gen_suites
+@iff %enable_check% == 1 then 
+  call %tdscheck% %TDSDIR%\%ENTI% %ENTI%
+  @if errorlevel GT 1 goto tapcheckerrors
+@endiff
+
+:compile
+cd %tc_gendir%
+iff %tc_testenv% == new then
+%grep% SCRIPT_BEGIN %TCBASE%.tds > nul
+  iff %? == 0 then
+    set tc_testlanguage=TCSL 
+  else
+    set tc_testlanguage=TDS
+  endiff
+endiff
+@echo Compiling and Linking Testcase %tc_bnam%
+@set EQINP2=%@WORDS["=",%tc_testconfig]
+@iff %EQINP2% GT 1 then
+  set TSTDLLCONF="%tc_testconfig%"
+@else
+  set TSTDLLCONF="CONFDLL=%tc_testconfig%"
+@endiff
+set tc_comperror=0
+%gnumake% -f testdll.mk OUTDLL=%TESTDLLDIR%/%tc_bnam%.DLL %TSTDLLCONF% TSTDOCNAM=%ENTI% TC_NAME=%tc_bnam% TC_FURTHERINCLUDES="%tc_furtherincludes" TC_TESTLANGUAGE=%tc_testlanguage% all > %TCBASE%.err
+iff %tc_cons_output% == 1 then
+  if %? != 0 set tc_comperror=1 
+  type %TCBASE%.err
+  if %tc_comperror% == 0 del /q %TCBASE%.err
+else
+  @iff %? == 0 then
+  @echo ^sdone.
+  @echo Generated Test Case %TESTDLLDIR%\%tc_bnam%.DLL
+  del /q %TCBASE%.err
+  @else
+  @echo See %TCBASE%.err
+  @endiff
+@endiff
+
+@goto end
+
+:prepare_gen
+set doc2txt=%GPF%\tools\bin\Doc2txt.exe
+iff NOT exist %doc2txt% then
+  echo You need %doc2txt% to generate test cases
+  set tc_toolerror=1
+endiff
+set tdsgen=%GPF%\BIN\tdsGen.exe%
+iff NOT exist %tdsgen% then
+  echo You need %tdsgen% to generate test cases
+  set tc_toolerror=1
+endiff
+set doc2txt_opts=-O -w -f wdFormatTextLineBreaks
+set sed=%GPF%\tools\bin\sed.exe
+iff NOT exist %sed% then
+  echo You need %sed% to generate tests
+  goto error
+endiff
+return
+
+:gen_suites
+%grep% Suites %TSTDOCDIR%\%ENTI%.txt > nul
+iff %? == 0 then
+  set gawk=%GPF%\tools\bin\gawk.exe
+  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
+
+:NoThing
+@echo What is %ENTI%?
+@echo Neither %TCBASE%.tds
+@echo nor %TSTDOCDIR%\%ENTI%.doc exist!
+@goto end
+
+:NoSuchFile
+@echo "%TCBASE%.tds - no such file!"
+@goto end
+
+:NoTc
+@echo ...nevertheless: a test case "%TCBASE%.tds" does not exist
+@goto end
+
+: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 end
+
+:tapcheckerrors
+@echo "tdscheck has found problems in %TSTDOCDIR%\%ENTI%.doc"
+@echo "inspect %TDSDIR%\%ENTI%\%ENTI%.chk"
+@goto end
+
+
+:Need4NT
+@echo "Error: 4DOS or 4NT is needed
+@goto end
+
+:unknown_option
+echo Unknown Option: %1
+
+:How2Use
+text
+MkTc    : Create a DLL containing a Test Case
+Usage   : MkTc [-chk] [-gen] [-tty] [-oe] [-oed] [-i <incdir>] [-eut <entity>] [-td <testdlldir>] <Entity> <TestCase> [config]
+  -chk  : Regenerate tds-Files from Word-Document, then call TDSCheck
+  -gen  : Regenerate tds-Files from Word-Document
+  -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
+ config : EUT=<entity> where the names of testdoc and entity differ
+Example : MkTc CC [CC]001
+endtext
+
+:end
+@popd