Changeset 389 for azure_iot_hub/trunk/asp3_dcre/utils/gentest.rb
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/utils/gentest.rb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby;charset=UTF-8
r388 r389 8 8 # Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 # 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 # 免責すること. 46 32 # 47 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 48 ã 49 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 50 # ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 51 # ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 52 # ã®è²¬ä»»ãè² ããªãï¼ 33 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 # に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 # アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 # の責任を負わない. 53 38 # 54 39 # $Id$ … … 56 41 57 42 # 58 # ãã¹ãããã°ã©ã çæãã¼ã«43 # テストプログラム生成ツール 59 44 # 60 45 61 46 # 62 # çæåä½ã決ããããã®è¨å®47 # 生成動作を決めるための設定 63 48 # 64 49 $parameterDefinition = { … … 117 102 118 103 # 119 # å¦çåä½ã®ã³ã¼ããæ ¼ç´ããã¯ã©ã¹104 # 処理単位のコードを格納するクラス 120 105 # 121 106 class PUCode 122 # åæå107 # 初期化 123 108 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 # 処理カウント変数名の生成 132 117 case puName 133 118 when /^TASK([0-9]*)$/ … … 152 137 end 153 138 154 # å¦çã«ã¦ã³ãã®è¨å®139 # 処理カウントの設定 155 140 def setCount(count) 156 141 @countFlag = true if count != "" … … 158 143 end 159 144 160 # å¦çã«ã¦ã³ãã®ã¤ã³ã¯ãªã¡ã³ã145 # 処理カウントのインクリメント 161 146 def incrementCount 162 147 if @currentCount != "" … … 165 150 end 166 151 167 # ã³ã¼ãã®è¿½å152 # コードの追加 168 153 def append(*lines) 169 154 lines.each do |line| … … 172 157 end 173 158 174 # å¤æ°ã®è¿½å159 # 変数の追加 175 160 def addVariable(varName, typeName) 176 161 @variableList[varName] = typeName 177 162 end 178 163 179 # SIL ã®ä½¿ç¨164 # SILの使用 180 165 def useSil 181 166 @silFlag = true 182 167 end 183 168 184 # å¦çåä½ã®ã³ã¼ãã®åºå169 # 処理単位のコードの出力 185 170 def generateCode 186 # ä¸è¦ãªå¦çåä½ã®å¤å®171 # 不要な処理単位の判定 187 172 return if @code.length == 0 188 173 189 # å¦çã«ã¦ã³ãå¤æ°ã®çæ174 # 処理カウント変数の生成 190 175 if @countFlag 191 176 print("\nstatic uint_t\t#{@count_var} = 0;\n") 192 177 end 193 178 194 # é¢æ°ãããã®çæ179 # 関数ヘッダの生成 195 180 case @puName 196 181 when /^TASK([0-9]*)$/ … … 282 267 283 268 # 284 # ãµã¼ãã¹ã³ã¼ã«å¼ã³åºãã®èªã¿è¾¼ã¿269 # サービスコール呼び出しの読み込み 285 270 # 286 271 def genServiceCall(pu, svc_call, error_code) … … 303 288 304 289 if !error_code 305 # E_OK ãè¿ãå ´å290 # E_OKが返る場合 306 291 pu.append("\tcheck_ercd(ercd, E_OK);", "") 307 292 elsif error_code == "noreturn" 308 # ãªã¿ã¼ã³ããªãå ´å293 # リターンしない場合 309 294 pu.append("") 310 295 else … … 314 299 315 300 # 316 # ãã¹ãéå§ã³ã¼ãã®çæ301 # テスト開始コードの生成 317 302 # 318 303 def testStartCode(pu) 319 # ãã¹ãéå§ã³ã¼ãã¯ä¸åº¦ã®ã¿åºåãã304 # テスト開始コードは一度のみ出力する 320 305 if $startFlag == 0 321 306 pu.append("\ttest_start(__FILE__);", "") … … 325 310 326 311 # 327 # ã¿ã¼ã²ããä¾åé¨é¢æ°ã®æ¯ãèãã®èªã¿è¾¼ã¿312 # ターゲット依存部関数の振る舞いの読み込み 328 313 # 329 314 def targetFunction(line, checkNum) … … 332 317 line = $2 333 318 if (pu = $puList[functionName]).nil? 334 # æ°ããå¦çåä½ã®çæ319 # 新しい処理単位の生成 335 320 pu = $puList[functionName] = PUCode.new(functionName) 336 321 pu.setCount("1") … … 362 347 363 348 # 364 # ãã¹ãã¹ã¯ãªããã®èªã¿è¾¼ã¿349 # テストスクリプトの読み込み 365 350 # 366 351 def parseLine(line) 367 352 if /^==\s*(([a-zA-Z_]+)[0-9]*)(.*)$/ =~ line 368 # å¦çåä½ã®éå§353 # 処理単位の開始 369 354 $procFlag = 1 370 355 puName = $1 371 356 line2 = $3 372 357 if (pu = $puList[puName]).nil? 373 # æ°ããå¦çåä½ã®çæ358 # 新しい処理単位の生成 374 359 pu = $puList[puName] = PUCode.new(puName) 375 360 end … … 388 373 pu = $currentPu 389 374 if /^([0-9]+\:)\s*(.*)$/ =~ line 390 # ãã§ãã¯ãã¤ã³ãçªå·ã®å¦ç375 # チェックポイント番号の処理 391 376 originalCheckNum = $1 392 377 line = $2 … … 433 418 434 419 # 435 # ã¨ã©ã¼ãã§ãã¯420 # エラーチェック 436 421 # 437 422 if ARGV.length < 1 … … 440 425 441 426 # 442 # åæå427 # 初期化 443 428 # 444 429 inFileName = ARGV.shift 445 430 446 431 # 447 # ã¹ã¯ãªãããã¡ã¤ã«èªã¿è¾¼ã¿å¦ç448 # 449 $lastCheckPoint = 0 # æå¾ã®ãã§ãã¯ãã¤ã³ãçªå·450 $procFlag = 0 # ã¹ã¯ãªããå¦çä¸ãã©ã°451 $startFlag = 0 # ãã¹ãéå§ã³ã¼ãã®åºåãã©ã°452 $currentPu = nil # èªã¿è¾¼ã¿ä¸ã®å¦çåä½453 $puList = {} # å¦çåä½ã®ãªã¹ã432 # スクリプトファイル読み込み処理 433 # 434 $lastCheckPoint = 0 # 最後のチェックポイント番号 435 $procFlag = 0 # スクリプト処理中フラグ 436 $startFlag = 0 # テスト開始コードの出力フラグ 437 $currentPu = nil # 読み込み中の処理単位 438 $puList = {} # 処理単位のリスト 454 439 455 440 begin … … 481 466 482 467 # 483 # ãã¹ãããã°ã©ã åºåå¦ç468 # テストプログラム出力処理 484 469 # 485 470 $puList.keys.sort.each do |puName| -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.