diff options
Diffstat (limited to 'Readme.md')
-rw-r--r-- | Readme.md | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..f83891a --- /dev/null +++ b/Readme.md @@ -0,0 +1,138 @@ +# IC service Cluster API + +## Overview + +This repository has 3 main elements: + +* Cluster API library code: ./src ./include +* Test app for client: ./test/client_test + +## How to build + +```bash +# ipc library is required by cluster_api, so please check ipc library and headers are installed in the system. +$ ./buildtest.sh +``` + +## How to run + +* For client_test + +```bash +$ ./buildtest.sh -d +$ cd cmakeBuild/test/client_test +$ ./client_test + + + CUnit - A Unit testing framework for C - Version 2.1-2 + http://cunit.sourceforge.net/ + + +***************** CUNIT CONSOLE - MAIN MENU ****************************** +(R)un (S)elect (L)ist (A)ctivate (F)ailures (O)ptions (H)elp (Q)uit +Enter command: ★rを入力すると全テスト自動実行。 ★q入力で終了 +``` + +# ソース構成 + +- cluster_api/ + - include/ + - 外部公開ヘッダ一式 + - src/ + - cluster_apiライブラリ実装ソース + - test/ + - client_test/ + - Cluster APIテスト環境実装ソース + +# 生成物構成 + +以下、./buildtest.sh を実行した場合の生成物を示す。 + +- cluster_api/ + - cmakeBuild/ + - src/ + - 以下、Cluster APIのライブラリ + ```bash + libcluster_api.so -> libcluster_api.so.1 + libcluster_api.so.1 -> libcluster_api.so.1.0.0 + libcluster_api.so.1.0.0 + ``` + - test/ + - client_test/ + - Cluster APIテスト実行ファイル + ```bash + client_test + dummy_server + ``` + +# Cluster API実装内容 + +- アプリ向けのI/FとなるAPI関数は IC-Service_API_rev0.4.docx の通りに実装した。 +- 主な実装処理は、IC-Service用サーバから送信されたデータを管理しておき、アプリからAPIが呼ばれたら、管理しているデータから該当データだけを取り出すこと。 +- IC-Service_API_rev0.4.docx に加え、以下の2つのAPIを追加実装した。 + - bool clusterInit(void) + - Cluster APIを使用するための初期化処理。 + - このAPIによりIC-Service用のサーバと接続するので、サーバが起動済みであることが前提。 + - 処理成功時をtrueとしたbool値を返す。 + - bool clusterTerm(void) + - Cluster API終了処理。 + - IC-Service用サーバとの接続を切断するために使用。 + - 処理成功時をtrueとしたbool値を返す。 +- アプリはcluster_api.hをincludeし、libcluster_api.soとリンクすることで、各種APIを呼び出すことが可能となる。 + +# client_test テスト内容 + +Cluster APIの各種APIに対する動作テストを実施する。構成は以下の通り。 + +- テストは実行ファイルclient_testとdummy_serverの2つで構成される。 + - client_test : Cluster APIテスト本体 + - dummy_server : Cluster APIテストに使用する疑似IC-Serviceサーバ +- テスト実行時はclient_testだけ実行すれば良い。 +- dummy_serverはclient_test内から自動で起動される。 +- dummy_serverの起動待ち、dummy_serverからの送信待ちについては10msecとしている。 + (別プロセスで非同期であることから、全く待ちがないと意図通りに動作しない) +- client_testはCUnitを用いて実装した自動テストプログラムである。CUnitの仕様通り全項目テスト、単体項目テスト、いずれも可能である。 +- ※プロセス間通信のタイミングの関係上、稀にテストがFAILすることがある。 +(テスト全156項目を20周繰り返して1項目FAILする程度) + +実施するテスト項目については以下の通り。 + +1. InitAndTerm (5項目) + - clusterInit()とclusterTerm()が意図通り動作することを確認する。 + - IC-Service用サーバが存在する状態でclusterInit()とclusterTerm()を順に呼ぶ時の動作を確認する(正常系) + - APIの呼び出し順誤りでエラーになることを確認する。 + - clusterInit()2連続呼び出し。 + - clusterInit()後、clusterTerm()を2連続呼び出し。 + - clusterInit()を呼ばずにclusterTerm()を呼び出し。 + - IC-Service用サーバが存在しない状態でのclusterInit()呼び出しでエラーになることを確認する。 +2. Telltale (52項目) + - IC-Service_API_rev0.4.docx の 3-4 Telltale に記載されている各種APIで意図通りの値が取得できることを確認する。 + - 各API 1パターンずつ実施。 +3. ShiftPosition (2項目) + - IC-Service_API_rev0.4.docx の 3-5 ShiftPosition に記載されている各種APIで意図通りの値が取得できることを確認する。 + - 各API 1パターンずつ実施。 +4. Speed (2項目) + - IC-Service_API_rev0.4.docx の 3-6 Speed に記載されている各種APIで意図通りの値が取得できることを確認する。 + - 各API 1パターンずつ実施。 +5. Tacho (1項目) + - IC-Service_API_rev0.4.docx の 3-7 Tacho に記載されている各種APIで意図通りの値が取得できることを確認する。 + - 各API 1パターンずつ実施。 +6. TripComputer (20項目) + - IC-Service_API_rev0.4.docx の 3-8 TripComputer に記載されている各種APIで意図通りの値が取得できることを確認する。 + - 各API 1パターンずつ実施。 +7. RegisterAndNotify (74項目) + - IC-Service_API_rev0.4.docx の 3-9 Register/Notify にある registerIcHmi()の動作が意図通りであることを確認する。 + - 第1引数 arg_1 に IC_HMI_TT_ALL を指定した時のテスト。 + - 3-2-1 TellTaleに記載された34種のどのシグナルが変化してもコールバック関数が呼ばれることを確認する。 + - 3-2-1 TellTaleに記載された34種いずれのシグナルも変化していなければコールバック関数が呼ばれないことを確認する。 + - 3-2-1 TellTaleに記載された34種のシグナル以外が変化してもコールバック関数が呼ばれないことを確認する。 + - 第1引数 arg_1 に 0 を指定した場合に、3-2-1 TellTaleに記載された34種のどのシグナルが変化してもコールバック関数が呼ばれないことを確認する。 + - 第1引数 arg_1 に 3-2-1-1~3-2-1-34 に示されたフラグ以外全てをセットした場合に、3-2-1 TellTaleに記載された34種のどのシグナルが変化してもコールバック関数が呼ばれないことを確認する。 + - 第2引数 addr にNULLが指定された場合にエラーとなることを確認する。 + - 第1引数 arg_1 に 3-2-1-1~3-2-1-34 のいずれか1つをセットした値を指定した場合について以下の2つを実施する。 + - 指定したフラグに該当するシグナルが変化した時だけコールバック関数が呼ばれることを確認する。 + - 他の33種のシグナルが変化してもコールバック関数が呼ばれないことを確認する。 + - 第1引数 arg_1 に 3-2-1-1~3-2-1-34 のいずれか1つのフラグだけクリアした値を指定した場合について以下の2つを実施する。 + - クリアしたフラグに該当するシグナルが変化しても、コールバック関数が呼ばれないことを確認する。 + - 他の33種のシグナルが変化しても、誤ってクリアしたフラグに関するコールバック通知が行われないことを確認する。 + (他のシグナル変化へのコールバック通知は行われること) |