lo01.gms : 테스트 로그 동작

설명

이 테스트는 특정 (오류) 메시지가 로그에 기록되는지 확인합니다.
(그리고 stdOut에는 해당되지 않습니다).
또한 로그 파일이 예상 위치에만 기록되는지 테스트합니다.

기고자: Lutz Westermann, 2025년 5월

소형 모델 유형 :슬롯 나라


카테고리 : 슬롯 나라 테스트 라이브러리


메인 파일 : lo01.gms

$title '테스트 로그 동작' (LO01,SEQ=986)

$onText
이 테스트는 특정(오류) 메시지가 로그에 기록되는지 확인합니다.
(그리고 stdOut에는 해당되지 않습니다).
또한 로그 파일이 예상 위치에만 기록되는지 테스트합니다.

기고자: Lutz Westermann, 2025년 5월
$offText

*********************************************************
* 오류 메시지를 확인하세요
*********************************************************

$onEcho > test.gms
스칼라 h;
변수 v;
방정식 e;

e.. v =e= 0;

모델 m /e/;
옵션 SolveLink=3;
m min v를 풀려면 lp를 사용하세요.
h = m.핸들;

display$ReadyCollect(h) '대기';
display$HandleCollect(h) '완료';
* 이것을 건너뛰면 과거에는 특정 "파일 삭제..." 메시지가 stdOut으로 출력되었습니다.
*display$HandleDelete(h) '완료';
$offEcho

$call.checkErrorLevel gams test.gms 슬롯 나라=2
$call.checkErrorLevel grep -iw test.log 삭제 > %system.NullFile%

*********************************************************
* 상대 curDir 및 wDir을 사용하여 로그 위치 확인
*********************************************************

$call.checkErrorLevel gamslib -q trnsport
$call.checkErrorLevel rm -rf a b
$call.checkErrorLevel mkdir a b a%system.DirSep%b
$call.checkErrorLevel cp trnsport.gms
$call.checkErrorLevel cp trnsport.gms b
$call.checkErrorLevel mv trnsport.gms a%system.DirSep%b

$call.checkErrorLevel gams tnsport curdir=a wdir=b filestem=notTrnsport 슬롯 나라=2
$존재하지 않는 경우 a%system.DirSep%b%system.DirSep%notTrnsport.log $abort 로그 파일은 curDir/wDir에 있어야 합니다.
$%system.DirSep%b%system.DirSep%trnsport.log가 존재하는 경우 $abort 로그 파일은 파일 줄기를 고려하여 curDir/wDir에 있어야 합니다.
$%system.DirSep%notTrnsport.log가 존재하는 경우 $abort 로그 파일은 curDir/wDir에만 있어야 합니다.
$존재하는 경우 b%system.DirSep%notTrnsport.log $abort 로그 파일은 curDir/wDir에만 있어야 합니다.
$존재하지 않는 경우 notTrnsport.log $abort 로그 파일은 curDir/wDir에만 있어야 합니다.

$call.checkErrorLevel gams tnsport curdir=a wdir=b 슬롯 나라=2
$존재하지 않는 경우 a%system.DirSep%b%system.DirSep%trnsport.log $abort 로그 파일은 curDir/wDir에 있어야 합니다.
$%system.DirSep%trnsport.log가 존재하는 경우 $abort 로그 파일은 curDir/wDir에만 있어야 합니다.
$존재하는 경우 b%system.DirSep%trnsport.log $abort 로그 파일은 curDir/wDir에만 있어야 합니다.
$존재하는 경우 trnsport.log $abort 로그 파일은 curDir/wDir에만 있어야 합니다.

$call.checkErrorLevel gams tnsport curdir=a 슬롯 나라=2
$존재하지 않는 경우 %system.DirSep%trnsport.log $abort 로그 파일은 curDir에 있어야 합니다.
$존재하는 경우 trnsport.log $abort 로그 파일은 curDir에만 있어야 합니다.

$call.checkErrorLevel gams tnsport wdir=b 슬롯 나라=2
$존재하지 않는 경우 b%system.DirSep%trnsport.log $abort 로그 파일은 wDir에 있어야 합니다.
$존재하는 경우 trnsport.log $abort 로그 파일은 wDir에만 있어야 합니다.

*********************************************************
* 절대 curDir 및 wDir을 사용하여 로그 위치 확인
*********************************************************

$call.checkErrorLevel gamslib -q trnsport
$call.checkErrorLevel rm -rf a b c
$call.checkErrorLevel mkdir a b c
$call.checkErrorLevel cp trnsport.gms
$call.checkErrorLevel cp trnsport.gms b
$call.checkErrorLevel mv trnsport.gms c

$call.checkErrorLevel gams trnsport curdir="%gams.workdir%%system.DirSep%a" wdir="%gams.workdir%%system.DirSep%c" filestem=notTrnsport 슬롯 나라=2
$존재하지 않는 경우 c%system.DirSep%notTrnsport.log $abort 로그 파일은 wDir에 있어야 합니다.
$존재하는 경우 c%system.DirSep%trnsport.log $abort 로그 파일은 파일 시스템과 관련된 wDir에 있어야 합니다.
$%system.DirSep%notTrnsport.log가 존재하는 경우 $abort 로그 파일은 wDir에만 있어야 합니다.
$if 존재하지 않음Trnsport.log $abort 로그 파일은 wDir에만 있어야 합니다.

$call.checkErrorLevel 'gams trnsport curdir="%gams.workdir%%system.DirSep%a" wdir="%gams.workdir%%system.DirSep%c" 슬롯 나라=2'
$존재하지 않는 경우 c%system.DirSep%trnsport.log $abort 로그 파일은 wDir에 있어야 합니다.
$%system.DirSep%trnsport.log가 존재하는 경우 $abort 로그 파일은 wDir에만 있어야 합니다.
$존재하는 경우 trnsport.log $abort 로그 파일은 wDir에만 있어야 합니다.

$call.checkErrorLevel 'gams trnsport curdir="%gams.workdir%%system.DirSep%a" 슬롯 나라=2'
$존재하지 않는 경우 %system.DirSep%trnsport.log $abort 로그 파일은 curDir에 있어야 합니다.
$존재하는 경우 trnsport.log $abort 로그 파일은 curDir에만 있어야 합니다.

$call.checkErrorLevel 'gams trnsport wdir="%gams.workdir%%system.DirSep%b" 슬롯 나라=2'
$존재하지 않는 경우 b%system.DirSep%trnsport.log $abort 로그 파일은 wDir에 있어야 합니다.
$if 존재하는 경우 trnsport.log $abort 로그 파일은 wDir에만 있어야 합니다.

*********************************************************
* fileStem 설정 시 로그(및 기타) 이름을 확인하세요.
*********************************************************
$call.checkErrorLevel gamslib -q trnsport
$call.checkErrorLevel gams trnsport 파일템=notTrnsport 슬롯 나라=2 gdx=기본값 rf=기본값
$존재하는 경우 trnsport.log $abort 로그 파일은 fileStem을 무시합니다.
$존재하는 경우 trnsport.lst $abort lst 파일은 fileStem을 무시합니다.
$존재하는 경우 trnsport.gdx $abort gdx 파일이 무시됨 fileStem
$존재하는 경우 trnsport.ref $abort 참조 파일은 fileStem을 무시합니다.
$존재하지 않는 경우 notTrnsport.log $abort 로그 파일이 무시됨 fileStem
$존재하지 않는 경우 notTrnsport.lst $abort lst 파일이 무시됨 fileStem
$존재하지 않는 경우 notTrnsport.gdx $abort gdx 파일이 무시됨 fileStem
$존재하지 않는 경우 notTrnsport.ref $abort 참조 파일이 fileStem을 무시함