설명
이 모델은 API 라이브러리에 포함된 모든 모델을 실행합니다. 기고자: Lutz Westermann, 2014년 10월
소형 모델 유형 :슬롯
카테고리 : 슬롯 API 라이브러리
메인 파일 : testapi.gms 포함: apimod.inc[html]
$title 'API 품질 보증 테스트' (TESTAPI,SEQ=2)
$onText
이 모델은 API 라이브러리에 포함된 모든 모델을 실행합니다.
기고자: Lutz Westermann, 2014년 10월
$offText
* 테스터에게는 아무 것도 하지 마세요
$if %runAsTester%==1 $exit
테스트 설정 / Cex1
Cex2
CPPex1*CPPex3
CPPtrseq
DCex1
DOex1
DPex1
DOex2
FEX1
펙스2
gdxperf
Jalias
JBenders
JClad
JCutstock
JDomainCheck
젝스1
젝스2
J인터럽트
JSpecial값
Jtrseq
JTsp
J창고
CSex1
CSex2
CSCalc역
CStrseq
CS별칭
CSBenders
CSClad
CS컷스톡
CSDomain검사 중
CSNUnit
CSSpecial값
CSTsp
CS인터럽트
CS창고
Pex1
Pex2
Pgamstransfer
Pgams_engine
프네오스
Ptrseq
PAlias
PBenders
PClad
PCutstock
PDomain검사 중
P인터럽트
P창고
PTsp
PSpecial값
VBex1
VBex2
VBtrseq /
모음곡 / C 'C 및 CPP'
디'델파이'
F '포트란'
J '자바'
N '.Net'
피 '파이썬' /
st(스위트, 테스트) / C.(Cex1, Cex2, CPPex1* CPPex3)
D.(DCex1, DOex1, DPex1, DOex2)
F.(Fex1, Fex2)
J.(JAlias, JBenders, JCutstock, JDomainCheck, Jex1, Jex2, JInterrupt, Jtrseq
$demosize가 설정되지 않은 경우, JWarehouse, JTsp, JSpecialValues, JClad
)
N.(CSex1, CSex2, CSCalcInverse, CStrseq, CSAlias, CSBenders, CSCutstock, CSDomainChecking, CSInterrupt, CSSpecialValues
$demosize,CSTsp,CSWarehouse, CSClad를 설정하지 않은 경우
$%system.filesys%가 아닌 경우 == UNIX ,CSNUnit ,VBex1, VBex2, VBtrseq, CPPtrseq
)
P.(Pex1, Pex2, Pgamstransfer, Pgams_engine, Pneos, Ptrseq, PAlias, PBenders, PCutstock, PDomainChecking, PInterrupt, gdxperf
$demosize,PWarehouse, PTsp, PSpecialValues, PClad를 설정하지 않은 경우
) /
pfsuite(*,suite) / (dac,deg,lag,leg,wei).(C,F,J,N,P)
/;
$onEmpty
set Skip(tests) 건너뛰기 목록 /
* 우리는 이것이 실패한다는 것을 알고 있습니다
* 일시적인 건너뛰기여야 합니다.
$if %system.buildcode% == DEG JClad 'pstree/kill 문제, #2824'
$if %system.buildcode% == DEG CPPex3 'Pete에 몇 가지 문제가 있습니다(이전 OS 때문에?), devel/슬롯-cpp#69'
/;
$off비어 있음
$set 플래그 lo=%슬롯lo%
$if 데모 크기 설정 $set FLAGS %FLAGS% --demosize=1
$설정되지 않은 경우 TEST $goTo checksuite
SET 실행 테스트(테스트) / %TEST% /;
$if 오류가 없으면 $goTo TEST_OK
$clearError
$log 지정된 테스트 모델(--TEST=%TEST%)이 모두 유효하지 않습니다.
$ 중단
$label 체크 스위트
$설정되지 않은 경우 SUITE $goTo alltests
SET 스위트(suite) / %SUITE% /;
$if 오류가 없으면 $goTo SUITE_OK
$clearError
$log 지정된 제품군(--SUITE=%SUITE%)이 모두 유효하지 않습니다.
$ 중단
$label SUITE_OK
SET 실행 테스트(테스트);
runtests(테스트) = sumst(suite,tests),yes;
$goTo TEST_OK
$label 모든 테스트
SET 실행 테스트(테스트);
runtests(테스트) = 예;
$라벨 TEST_OK
스칼라
~ / 0 /,
오류 / 0 /,
cnt / 0 /;
파일 가을 / 'all_api.gms' /
ferr / 'failures_api.gms' /
rmme / 'rmme.gms' /
로그 / '' /
FX;
putclose fall '* 이것이 우리가 실행한 테스트입니다.' /;
putclose ferr '* 실패한 테스트입니다.' /;
fall.ap = 1;
ferr.ap = 1;
$prefix가 설정되지 않은 경우 $set PREFIX %system.buildcode%
$set DIRNAME "'%PREFIX%_api_' 테스트.tl:0 "
loop(runtests(tests)$(sum(pfsuite('%system.buildcode%',suite)$st(suite,tests),1) 건너뛰지 않음(테스트)),
tot = tot + 1;
put_utility fx 'shell' / 'rm -rf ' %DIRNAME%;
put_utility fx 'shell' / 'mkdir ' %DIRNAME%;
put_utility fx 'shell' / 'cd ' %DIRNAME% ' && apilib ' 테스트.tl:0 ' && 슬롯 ' 테스트.tl:0 ' %FLAGS% > stdout.txt 2>stderr.txt';
if(오류수준,
오류 = 오류 + 1;
putclose ferr '$call =슬롯 testapi --test=' test.tl:0 ' %FLAGS% --dir='%DIRNAME% /;
그렇지 않으면
put_utility fx 'shell' / 'rm -rf ' %DIRNAME%;
);
putclose fall '$call =슬롯 testapi --test=' test.tl:0 ' %FLAGS% --dir='%DIRNAME% /;
);
putclose ferr '*총 테스트 수: ', tot:0:0, ' 실패한 테스트 수: ', err:0:0 ;
로그를 넣어;
(err > 0)인 경우,
put '오류가 있었습니다: ', err:0:0, ' out of ',
tot:0:0, ' 테스트가 실패했습니다.' /;
put '실패한 실행을 재현하려면 failures_api.gms 파일을 참조하세요.'/;
put '당신은 몇 가지 실패를 겪었습니다. 자세한 내용은 failures_api.gms를 참조하세요.';
그렇지 않으면
'축하해요! 모든 ', tot:0:0, ' 테스트가 통과되었습니다.'/;
;
put '모든 실행을 재현하려면 all_api.gms 파일을 참조하세요.'/;