2013-11-22 2 views
1

빌드 과정에서 일부 얼랭 코드를 내 Tsung 구성 파일 (tsung.xml)에 가져 와서 일부 동적 변수를 사용하지만 몇 가지 표현이 제대로 작동하지 않는 것으로 나타났습니다.Tsung.xml에서 Erlang이 임베드되었습니다. 동적 변수가 구문 분석에 실패합니다. 식

If 문이나 대소 문자 또는 함수 정의 (재미 또는 일반)를 사용하려고하면 Tsung이 "unexpected_char"메시지 (그러나 가능한 문자를 언급하지 않음)를 사용하거나 Erlang이 " '[]' "구문 오류가 발생하기 전에 구문 오류가 발생했습니다. 함수식 전체 다만 만약 식 경우

<setdynvars sourcetype="eval" 
       code="fun({Pid,DynVars}) -> 
         {Var_Scale, ScaleUp} = {3, 100}, 
         Random=random:uniform() * 100 * ScaleUp, 
         Compare=round(Var_Scale * ScaleUp), 
         if 
           Random =< Compare -> 
            Return = 1; 
           true -> 
            Return = 0 
         end, 
         Return. 
         "> 
      <var name="someVariable" /> 

동일한 결과가 발생

<setdynvars sourcetype="eval" 
       code="fun({Pid,DynVars}) -> 
         if 
          1 < 2 -> Return = 2; 
          true -> Return = 3 
         end. 
         "> 
      <var name="anotherVariable" /> 
     </setdynvars> 

그리고 상기 결과 인라인 또는 익명 함수

<setdynvars ... 
    Compare=round(Var_Scale * ScaleUp), 
    Fn = fun() -> a 
    end. 
"> 

위한

구문 분석 오류.

저는 Erlang과 Tsung에 새로운 점이 있습니다. 그래서 아마도이 명령들이 어떻게 구조화되어야하는지, ts_utils에서 Tsung의 평가가 어떻게 받아 들여 져야하는지 오해했을 것입니다. 그것은 표준 얼랑 스캔, 구문 분석 및 평가 방법을 사용하는 것, 그래서 그것은 가장 확실하게 분기 작업과 기능을 지원한다고 생각합니다.

그래서 내 질문 자체는 다음과 같이 요약됩니다.이 코드는 구문 상 올바르지 만 Tsung은이를 단순히 지원하지 않으며 두 번째로는이를 수행하는 데 더 이상 관용적으로 올바른 방법이 있습니까?

답변

3

XML 속성에 포함 된 <> 문자에 대해 불만이들 것 같습니다. &lt;&gt;으로 입력하십시오.

<setdynvars sourcetype="eval" 
       code="fun({Pid,DynVars}) -&gt; 
         if 
          1 &lt; 2 -&gt; Return = 2; 
          true -&gt; Return = 3 
         end 
        end. 
         "> 
      <var name="anotherVariable" /> 
     </setdynvars> 
+0

아, 물론 : 또한, 이름이 지정된 함수는 달리 fun는 일치 end 토큰이 필요합니다! 나는 잠재적 인 문제로 XML 파서 자체에 대해 생각하지 않았다. 초기 코드 => 함수 정의는 그렇지 않다면 잘 해석한다. 익명의 기능을 충분히 읽을 수없는 것처럼 보입니다. 감사! – user3022071

관련 문제