Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/utils/gentest.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    88#              Graduate School of Information Science, Nagoya Univ., JAPAN
    99#
    10 #  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12 #  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13 #  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15 #  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16 #      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17 #      スコード中に含まれていること.
    18 #  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19 #      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22 #      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24 #      の無保証規定を掲載すること.
    25 #  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26 #      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28 #      と.
    29 #    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32 #        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33 #    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36 #        報告すること.
    37 #  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38 #      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41 #      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42 #      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44 #      å
    45 è²¬ã™ã‚‹ã“と.
     10#  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11#  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12#  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13#  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14#      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15#      スコード中に含まれていること.
     16#  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17#      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18#      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19#      の無保証規定を掲載すること.
     20#  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21#      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22#      と.
     23#    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24#        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25#    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26#        報告すること.
     27#  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28#      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29#      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30#      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31#      免責すること.
    4632#
    47 #  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49 #  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50 #  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51 #  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52 #  の責任を負わない.
     33#  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34#  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35#  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36#  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37#  の責任を負わない.
    5338#
    54 #  $Id: gentest.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
     39#  $Id$
    5540#
    5641
    5742#
    58 #               ãƒ†ã‚¹ãƒˆãƒ—ログラム生成ツール
     43#               テストプログラム生成ツール
    5944#
    6045       
    6146#
    62 ç”Ÿæˆå‹•ä½œã‚’決めるための設定
     47生成動作を決めるための設定
    6348#
    6449$parameterDefinition = {
     
    117102
    118103#
    119 å‡¦ç†å˜ä½ã®ã‚³ãƒ¼ãƒ‰ã‚’格納するクラス
     104処理単位のコードを格納するクラス
    120105#
    121106class PUCode
    122   # 初期化
     107  # 初期化
    123108  def initialize(puName)
    124     @puName = puName                                            # 処理単位の名前
    125     @currentCount = ""                                          # 処理カウント
    126     @countFlag = false                                          # 処理カウントが使われたか
    127     @code = Hash.new { |h,k| h[k] = [] }        # 処理単位のコード
    128     @variableList = {}                                          # 処理単位の変数
    129     @silFlag = false                                            # SILが使われたか
    130 
    131     # 処理カウント変数名の生成
     109    @puName = puName                                            # 処理単位の名前
     110    @currentCount = ""                                          # 処理カウント
     111    @countFlag = false                                          # 処理カウントが使われたか
     112    @code = Hash.new { |h,k| h[k] = [] }        # 処理単位のコード
     113    @variableList = {}                                          # 処理単位の変数
     114    @silFlag = false                                            # SILが使われたか
     115
     116    # 処理カウント変数名の生成
    132117    case puName
    133118    when /^TASK([0-9]*)$/
     
    148133  end
    149134
    150   # 処理カウントの設定
     135  # 処理カウントの設定
    151136  def setCount(count)
    152137    @countFlag = true if count != ""
     
    154139  end
    155140
    156   # 処理カウントのインクリメント
     141  # 処理カウントのインクリメント
    157142  def incrementCount
    158143    if @currentCount != ""
     
    161146  end
    162147
    163   # コードの追加
     148  # コードの追加
    164149  def append(*lines)
    165150    lines.each do |line|
     
    168153  end
    169154
    170   # 変数の追加
     155  # 変数の追加
    171156  def addVariable(varName, typeName)
    172157    @variableList[varName] = typeName
    173158  end
    174159
    175   # SILの使用
     160  # SILの使用
    176161  def useSil
    177162    @silFlag = true
    178163  end
    179164
    180   # 処理単位のコードの出力
     165  # 処理単位のコードの出力
    181166  def generateCode
    182     # 不要な処理単位の判定
     167    # 不要な処理単位の判定
    183168    return if @code.length == 0
    184169
    185     # 処理カウント変数の生成
     170    # 処理カウント変数の生成
    186171    if @countFlag
    187172      print("\nstatic uint_t\t#{@count_var} = 0;\n")
    188173    end
    189174
    190     # 関数ヘッダの生成
     175    # 関数ヘッダの生成
    191176    case @puName
    192177    when /^TASK([0-9]*)$/
     
    272257
    273258#
    274 ã‚µãƒ¼ãƒ“スコール呼び出しの読み込み
     259サービスコール呼び出しの読み込み
    275260#
    276261def genServiceCall(pu, svc_call, error_code)
     
    293278
    294279  if !error_code
    295     # E_OKが返る場合
     280    # E_OKが返る場合
    296281    pu.append("\tcheck_ercd(ercd, E_OK);", "")
    297282  elsif error_code == "noreturn"
    298     # リターンしない場合
     283    # リターンしない場合
    299284    pu.append("")
    300285  else
     
    304289
    305290#
    306 ãƒ†ã‚¹ãƒˆé–‹å§‹ã‚³ãƒ¼ãƒ‰ã®ç”Ÿæˆ
     291テスト開始コードの生成
    307292#
    308293def testStartCode(pu)
    309   # テスト開始コードは一度のみ出力する
     294  # テスト開始コードは一度のみ出力する
    310295  if $startFlag == 0
    311296    pu.append("\ttest_start(__FILE__);", "")
     
    315300
    316301#
    317 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆä¾å­˜éƒ¨é–¢æ•°ã®æŒ¯ã‚‹èˆžã„の読み込み
     302ターゲット依存部関数の振る舞いの読み込み
    318303#
    319304def targetFunction(line, checkNum)
     
    322307    line = $2
    323308    if (pu = $puList[functionName]).nil?
    324       # 新しい処理単位の生成
     309      # 新しい処理単位の生成
    325310      pu = $puList[functionName] = PUCode.new(functionName)
    326311      pu.setCount("1")
     
    352337
    353338#
    354 ãƒ†ã‚¹ãƒˆã‚¹ã‚¯ãƒªãƒ—トの読み込み
     339テストスクリプトの読み込み
    355340#
    356341def parseLine(line)
    357342  if /^==\s*(([a-zA-Z_]+)[0-9]*)(.*)$/ =~ line
    358     # 処理単位の開始
     343    # 処理単位の開始
    359344    $procFlag = 1
    360345    puName = $1
    361346    line2 = $3
    362347    if (pu = $puList[puName]).nil?
    363       # 新しい処理単位の生成
     348      # 新しい処理単位の生成
    364349      pu = $puList[puName] = PUCode.new(puName)
    365350    end
     
    378363    pu = $currentPu
    379364    if /^([0-9]+\:)\s*(.*)$/ =~ line
    380       # チェックポイント番号の処理
     365      # チェックポイント番号の処理
    381366      originalCheckNum = $1
    382367      line = $2
     
    423408
    424409#
    425 ã‚¨ãƒ©ãƒ¼ãƒã‚§ãƒƒã‚¯
     410エラーチェック
    426411#
    427412if ARGV.length < 1
     
    430415
    431416#
    432 åˆæœŸåŒ–
     417初期化
    433418#
    434419inFileName = ARGV.shift
    435420
    436421#
    437 ã‚¹ã‚¯ãƒªãƒ—トファイル読み込み処理
    438 #
    439 $lastCheckPoint = 0             # 最後のチェックポイント番号
    440 $procFlag = 0                           # スクリプト処理中フラグ
    441 $startFlag = 0                  # テスト開始コードの出力フラグ
    442 $currentPu = nil                        # 読み込み中の処理単位
    443 $puList = {}                            # 処理単位のリスト
     422スクリプトファイル読み込み処理
     423#
     424$lastCheckPoint = 0             # 最後のチェックポイント番号
     425$procFlag = 0                           # スクリプト処理中フラグ
     426$startFlag = 0                  # テスト開始コードの出力フラグ
     427$currentPu = nil                        # 読み込み中の処理単位
     428$puList = {}                            # 処理単位のリスト
    444429
    445430begin
     
    471456
    472457#
    473 ãƒ†ã‚¹ãƒˆãƒ—ログラム出力処理
     458テストプログラム出力処理
    474459#
    475460$puList.keys.sort.each do |puName|
Note: See TracChangeset for help on using the changeset viewer.