can't go to sleep

組み込み開発の多くをRubyで自動化することに興味があります

組み込みC言語用の単体テストのテクニックについて

ざっくり箇条書きしておきます。 レジスタアクセス関連は全てpragma inlineでビルド時に自動展開される関数化して、ヘッダファイル内に定義する。こうすることで、製品コードでのビルド時には直接マクロを呼ぶ場合と同じアセンブラに展開される。更に、レジ…

Excelファイルをjsonファイルに変換するツールを作成しました

imanityに新ツールを追加しました。 https://github.com/tatssuki/imanityimanityはExcelのスプレッドシートを使用してテストケースを管理するツールです。 しかしExcelのスプレッドシートはgitなどのバージョン管理ツールでの使用は非常に面倒でした。そこ…

unityのテストケース管理ツールimanity

テストケース管理ツールimanityを作成し、githubで公開を始めました。 tatssuki/imanity · GitHub 使い方の説明などは、日本語readmeを参照してください。 https://github.com/tatssuki/imanity/blob/master/README_ja.md 何はともあれ、exampleを実行して、…

unity支援ツール

unity支援ツールを2つ作成しました。 1つ目は、既存のソースコードを、unity実施可能なレベルにinclude関係などを自動で整形して解決するツールです。 既存のソースコードにunityを実施するためには、依存関係を断ち切るような工夫が必要となり、unityの導…

e2studioとUnity2

前回の記事から結構な日数が経ちましたが、e2studioとUnityの連携を確認してみました(とは言っても、実はe2studioではコンソール出力が良くわからなかったので、CS+にて実施しました。方法は、ルネサスのマニュアル通りで簡単にできました)。 以下、感想で…

e2studioとUnity

ルネサスエレクトロニクスの統合開発環境といえばHEWが有名だと思っていたのですが、いつの間にはHEWは終了していました。 これからは、CubeSuite+改めCS+と、e2studioの2つでまとめていくようです。 e2studioはEclipseベースとのことなので、ARM系を…

同一フォルダ以下にあるcsvファイルを抽出するスクリプト

最近Pythonを勉強し始めています。 とりあえず、同一フォルダ以下にあるcsvファイルを抽出するスクリプトを作成してみました。 # csv_file_search.py import os import re def recursive(path, file_list): dir_list = os.listdir(path) for dirfile in dir_…

unity開始の第一歩(超入門)

思い返せば、unityを初めて1年近く経過しました。 結局こういうツールは使い始めるまでのハードルが最も高いように思います。 ということで、unityの簡単な始め方を、改めて書き出したいと思います。 目標 unityを開始する際には色々と気を付けることがあり…

Unity全自動化(仕様)

以前、Unityを半自動化するという記事を書きました。 最近それを、更に改善する方法を考えたので、メモとして記載します(まだ作成していないので、あくまでメモです)。 半自動化の問題点は、変更したソースコードをいちいち自分で指定しないといけない点で…

HEWでunityを実施する方法

私は仕事でunityを使用しています。 unityではgccでコンパイルを行うため、組み込み機器の実際のコンパイラでコンパイルをした場合と結果が異なる可能性があり、単体テストとしての品質の担保ができません。 そのため極端な話、gccのみのunityテストは、プロ…

Unityメモ2

CeedlingでxUnit形式のxmlを出力できるけれど、デフォルトだとJenkinsで読み込めない。 http://futurismo.biz/archives/1498 参照 Ceedlingだと、テストケースを指定したテストフォルダのサブフォルダ以下からも取得する。しかしUnity単品のrakefileではそれ…

Unityのテスト自動化を半手動化する方法

Unityの自動テストの欠点 Unityはrakeを使用した自動テストランナー作成機能が非常に便利です。 例えば、testというフォルダを作成し、そのフォルダをテストフォルダとしてrakefile用のymlに登録しておくと、そのフォルダ内にあるテストファイルはすべて自動…

メモ

Unityはテストランナーを自動で作成してくれるので、testフォルダに決まった名前(例えば、Test_で始まるファイル名にする、など。ルールはrakefile_helperで設定できます)でテストケースを入れておくと、「rake」というコマンドを入力するとそれだけで、全…

Unityメモ

Unityの基本的な考え方として、プロトタイプ宣言をした関数の実体はヘッダファイルと同名のcファイルの中に存在するべき、というものがあります。 つまり、FuncA.hの中でプロトタイプ宣言をした、int FuncAB(void);の実体は、FuncA.cの中に存在する必要があ…

UnityとCMock その2

さて、今回はCMockの導入の解説をします。 事前条件 まず、前回「UnityとCMock その1」で紹介した通りのフォルダ構成にしてください。 CMockのrakefileや、CMockのexamplesから作っても良いのですが、CMockの中のrakefileでは、specやシステムテストの構成…

UnityとCMock その1

UnityとCMockの使い方について、非常に簡単に解説します。 ただし、今回ははCMock抜きで解説します。(CMockの設定はやや面倒なため) ※ここでは、2013-3-15のバージョンを使用しています。バージョンが異なる場合は設定方法が異なる可能性があります。 事前…

githubとその他雑感

以前記事に書いた、softalkでパワーポイントの内容を読み上げるツールをgithubに保存しました。https://github.com/tatssuki/ppttalkgithubに不慣れなので、とりあえず保存した、という感じですが・・・。CMockをforkしたので、ソースコードのフォルダ構成に…

UnityとCppUTest part1

今、話題の書籍「テスト駆動開発による組み込みプログラミング」。 書籍の内容は非常に面白く魅力的なのですが、それを実践に移すとなると話は別です。 もっとも困難なのが、テスティングフレームワークの導入だと思われます。 また「どのテスティングフレー…

SofTalkでパワーポイントを読み上げる

Softalkでパワーポイントのノートを読み上げるスクリプトを書いてみた。 と言っても、下記リンクを組み合わせただけで、何も新しいことをしていないけれど・・・。[Ruby] PowerPointのノート欄を全て出力 @sarunoie http://blog.mesh.cx/2011/02/rubyolepowe…

SysMLとソフトウェアエンジニアリング

SysMLを使うと何が改善されるのかを、以下で書いてみます。 会社のおっさん達は良く、以下のようなことを言います。 ソースコード自動生成の時代が来てるらしいね オブジェクト指向なんてもう流行終わったんでしょ? SPL熱い! ・・・完全に破綻してます…

TDD4EC1

最近、Test Driven Development for Embedded Cを読んでいる。 その本によれば、組込みCにてTDDを実践するためにはUnityか、あるいはcppUTestを使用する必要があるのだが、私の場合はUnityを選択した。 その理由を以下に挙げる。 cpp専用ではなく、c専用で…