*

C/C++のスタブを自動生成するツールを公開しました

公開日: : 最終更新日:2019/08/31 C++, C言語, HACK, 開発

どもです。

突然ですが、C/C++の単体テストで使用する「スタブ」を自動で生成するツールを公開しました。

作成したのは5年くらい前で、その後細々使用していましたが、自宅のSVNサーバーが少し前に壊れた、メインのPCを入れ替えたなど、環境の変化がありましたので、保管場所(?)をGitHubに変更することにしました。
それに伴い、公開します。

1.ビルド環境

以下の環境でのビルドを確認しています。

PC本体:
OS:Windows10 Pro (バージョン:1903)
CPU:Intel Core i7-8700
メモリ:16GB

開発環境:
IDE:Eclipse Version 2019-06(4.12.0)
Cygwin:gcc/x86_64-pc-cygwin

2.使い方

2.1.ツールの使い方

下記のような使い方をします。

ここで、”ev3_brick.txt”はスタブを作成したい関数の定義が入力されたファイル名です。
具体的な内容は、下記の通りです。

このファイルを入力とした場合、次のようなスタブのコードが生成されます。

2.2.生成されたスタブ

  • 生成された関数には、末尾に”_stub”が付加されています。
    必要に応じて、これは削除して下さい。
  • スタブの戻り値を予め設定しておくためのバッファーも、生成されます。
  • バッファーも、呼び出された順番ごとに戻り値を設定できます。
  • バッファーを初期化するための関数も、同時に生成されます。
  • バッファーに関しては、呼び出し回数と引数のバッファーについては、GETマクロ、戻り値のバッファーについてはSETマクロが用意されます。

3.言い訳コーナー

3.1.CMakeじゃないの?

はい。
CMakeではございません。
make/Makefileでのビルドになります。
また、上記Windows環境でのみビルドが確認できています。

3.2.Windows10だけ?

はい。
動作確認ができているのが、Windows10/cygwinのみです。
LinuxとかMacでの確認はできていません。

4.公開しています

GitHubに公開しています。
自宅サーバーが壊れた関係で、開発の途中経過は一切残っていません。
申し訳ありません。
また、設計資料もastahで作成しており、データを救出できなかったので公開を避けました。

5.まとめ

だいぶ昔に作ったモノで、今コードを読み返すと
「ひどい設計、ひどいコードになっているなぁ」
と思ってしまいます。
それでも、自分で使っていた時には
「お。役に立つな」
と感じていました。

「ソフトの造」はよくないのに、「ソフトの効果」は高い…。
それが自分の作ったソフトとなると、だいぶ複雑な気分になりますね。

ではっ!

関連記事

think_about_utest

単体テストの効率化を考える(6)-スタブの自動生成ツール

どもです。 「単体テストの効率化について考える」の6回目です。 1回目から5回目まではコチラ

記事を読む

iot_at_home_eye_catch

IoT開発(4)-ESP-WROOM-02を電池で駆動

どもです。 この記事は、以下の記事の続きです。 IoT開発(1)-ESP-WROOM-02の

記事を読む

toppers

C言語でEV3開発(24)-APIの実行時間を測定してみた。

どもです。 今回、以前から気になっていた、開発環境/プラットフォームであるTOPPERS HRP2

記事を読む

toppers

C言語でEV3開発(23)-モーターの性能確認

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモーター)の性能について調べてみた

記事を読む

python

Ev3開発サポートツール(4)-Pythonによるグラフ表示

どもです。 前回のエントリーで、VisualStudioCommunityでのPythonの開発環

記事を読む

no image

C言語でEV3開発(15)-TOPPERS/HRP2 EV3 で PID制御

どもです。 今回のエントリーは、コレまでのエントリーから内容を変えて、モーターの動作の制御をします

記事を読む

no image

Objective-CからC++コードを呼び出す

どもどもです。 今回は、突然ながらMacに関係する投稿です。 ソフト関係のことを勉強していて

記事を読む

iot_raspberrypi_gateway_001_eye_catch

IoT開発(13)
RaspberryPiをIoTゲートウェイにする(VI)
flaskでGET/POSTの受信処理

どもです。このエントリは、以下のエントリの続きです。 IoT開発(6) RaspberryPi

記事を読む

eclipse_4.3_kepler

eclipse/CDTにおけるgdbでのデバッグ中に発生するpythonのエラー

どもです。 今回のエントリーは、Eclipse上でのデバッグの際に「pythonのエンコードエラー

記事を読む

toppers

C言語でEV3開発(25)-Q_Learningを実装してみた…が!?

どもです。 今回の内容は、「失敗しました」という内容です。 最近、流行になっている深層学習/

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

どもです。 前回、C#/OpenXmlを用いて、エクセルのセル内

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセル

c_sharp_eye_catch
C#でバッファの内容を表示する処理を実装してみた-
データ型に従って動的に書式を設定する

どもです。 最近、C#でバッファ/配列の値をコンソールに表示した

arduino_relay_switch_003_self_preservation_circuit_eye_catch
Arduinoでリレースイッチ(3)-自己保存回路

どもです。 前回の記事で、リレースイッチ「AE-G5V-DRV」

arduino_relay_switch_002_ae_g5v_drv_eye_catch
Arduinoでリレースイッチ(2)-AE-G5V-DRV

どもです。 前回の記事では、「フォトカプラリレー」を使用したLチ

→もっと見る

PAGE TOP ↑