ソフトな忘却力(17) VSCodeでgtest、テンプレートライブラリ使用csvパーサ

csvparser_gtest_results
Joseph Halfmoon

今回は実用的なテンプレート・ライブラリ libfccp を呼び出しているコードにGoogleTest(gtest)を適用してみたいと思います。libfccp はC++用のCSVファイル読み取り用のパーサです。CSVはテキストなので自分でも読み込み簡単な気がしますが、既にライブラリがあるのなら利用させていただいた方が確実でお楽。

“ソフトな忘却力(17) VSCodeでgtest、テンプレートライブラリ使用csvパーサ” の続きを読む

ソフトな忘却力(16) VSCodeで ctest+gtestその2、Classのテスト

CTEST_Results
Joseph Halfmoon

前回 CMakeのテストランナーである ctest の元で GoogleTest(gtest)フレームワークのTEST走らせました。調子に乗って今回はC++のClass のテストに手を広げてみました。前回の関数単体とはちょっと書き方が違ってました。今回は分量多いので「前回との差分」部分にフォーカスして記述いたします。

“ソフトな忘却力(16) VSCodeで ctest+gtestその2、Classのテスト” の続きを読む

ソフトな忘却力(15) VSCodeでctest+gtest、CMakeLists.txt

vscodeGtestCtest
Joseph Halfmoon

前回 CMakeLists.txtを書くだけで、GoogleTestがインストールされていなくても速攻でgtestできるのに感激しました。CMake本当に便利。しかし前回はVSCodeからリモート接続じゃなかったです。それに全部のファイルを同じディレクトリに入れてました。やっぱりライブラリやテストは分けたいです。またテキトーにCMakeLists.txt書いてみたら通ってしまった。これで良いの?

“ソフトな忘却力(15) VSCodeでctest+gtest、CMakeLists.txt” の続きを読む

ソフトな忘却力(14) ラズパイでgtest、CMakeLists.txt書くだけでOK

testRUNagain
Joseph Halfmoon

GoogleTest(gtest)は、C++用の単体テストツールとして定番ですが、遥か昔にちょっと使ったキリでとんとご無沙汰、すっかり忘却。おぼげな記憶によるとセットアップがメンドかった記憶が?今回ラズパイ上でやってみたら、まったくメンドくないです。CMakeLists.txtにチョイと仕込みを入れるだけで速攻テスト可能。テスト自体は書かないとダメだけどね。

“ソフトな忘却力(14) ラズパイでgtest、CMakeLists.txt書くだけでOK” の続きを読む

ソフトな忘却力(13) ラズパイsyslog、ファイル振り分け、UDPの許可

Raspberry Pi 4
Joseph Halfmoon

困った時の syslog 頼み。Raspberry Pi OSを動かしていて何かトラブったときに見るのが syslog です。運が良ければ?問題の原因が分かります。そうして頼ってきた割にラズパイのsyslogの事はちゃんと理解していなかったことが今回発覚。「ついでに」ファイルの振り分けを追加し、リモートからのUDPでのログにも対応とな。

“ソフトな忘却力(13) ラズパイsyslog、ファイル振り分け、UDPの許可” の続きを読む

ソフトな忘却力(12) RPi3、AES、1ブロックだけのテストパターン「素の」暗号化

AES_BlockDiagram
Joseph Halfmoon

前回は、ATSAMD51マイコンのSHA1計算ハードを試用するプログラムを書いた後で、テストパターン生成用のプログラムを作りました。こういう泥縄ではいかん、ということで、今回はマイコンプログラムの前にテストパターン生成用のプログラムを作っておくことにいたしました。AES暗号化、1ブロック「だけ」です。

“ソフトな忘却力(12) RPi3、AES、1ブロックだけのテストパターン「素の」暗号化” の続きを読む

ソフトな忘却力(11) RPi4、SHA1、パディング入りのテストパターンとダイジェスト

SHA1_EC
Joseph Halfmoon

先週別件でメモリ内容のハッシュをハードウエアで計算しつづけるDMACを使ってみました。ハッシュ値を求めることにも使えますが、改竄対策?かな。とりあえずのサンプルデータで動作検証したのですが、テスト用の入力パターンの生成が手作業なのは何とも。そこでラズパイ4上でテストパターン生成プログラムを試作してみました。 “ソフトな忘却力(11) RPi4、SHA1、パディング入りのテストパターンとダイジェスト” の続きを読む

ソフトな忘却力(10) RPi4、Pthreadの実験をOpenMPで書き換えてみた

ompGraph
Joseph Halfmoon

前回は、Pthreadを用いた実験プログラムを最適化したものとしないもの、RPi3とRPi4でスレッド数を変えて走らせて比べました。今回はそのときのプログラムを「無理やり」OpenMP化してみました。スレッド数が同じなら、PthreadでもOpenMPでも似たような結果でないかい、と思いましたが、結果は微妙。こだわる人はコダワル? “ソフトな忘却力(10) RPi4、Pthreadの実験をOpenMPで書き換えてみた” の続きを読む

ソフトな忘却力(9) 最適化とthread数、RPi3とRPi4ではまた違うのだ

Graph elapsed time - thread
Joseph Halfmoon

前回は、スレッド数に反比例して処理時間が短くなるサンプルプログラムに、コンパイラの最適化オプション効かせたら、マルチスレッドが効かなくなったのを目にしました。今回は、サンプルに「手を入れて」「スレッド化の効果あり」に無理やり変更の上、実行環境をラズパイ3からラズパイ4へ変えてみます。CPUの馬力が違うとまた違う。一筋縄ではいきまへん。

“ソフトな忘却力(9) 最適化とthread数、RPi3とRPi4ではまた違うのだ” の続きを読む

ソフトな忘却力(8) CMake、最適化オプションの置き場所。thread化の蹉跌?

SpeedGraph
Joseph Halfmoon

前回はPthreadを使って、スレッド数が多くなると処理時間が短くなるようなコードを書いてみました。今回はそれに最適化オプションを加えてみます。ヤバいな、ズルズルと深みにハマって行く感じがします。まずはCMakeの使い方もよく分かってないので、まずCMakeLists.txt内での最適化オプションの置き場所から調べないと。 “ソフトな忘却力(8) CMake、最適化オプションの置き場所。thread化の蹉跌?” の続きを読む

ソフトな忘却力(7) clock()関数はCPUタイムを集計するのだ。経過時間じゃない。

RPi3_pthread
Joseph Halfmoon

時間計測のとき、プロセッサ固有の性能カウンタばかり使用しておったのです。今回はCレベルの関数で「汎用」にやろうとして失敗しました。なれないことはするもんじゃないです。とりあえず pthread の効用を測定する雛形は作成。ラズパイ3上では、それらしいグラフを描けました。他のマシンや pthread以外への展開はまた次回かな。

“ソフトな忘却力(7) clock()関数はCPUタイムを集計するのだ。経過時間じゃない。” の続きを読む

ソフトな忘却力(6) 今回はハード? Jetson Nano復活のACアダプタ

PowerSupplyEC
Joseph Halfmoon

長らく眠っていたJetson Nanoを本日復活させました。眠っていた理由は電源です。Node-REDのサーバ機として活躍しているラズパイ3の電源が不安だったのでJetson Nanoの電源を「召し上げ」ラズパイ3に流用していました。後で買って戻すからといいつつ、ズルズル本日に至ってしまいました。ごめんJetson。

“ソフトな忘却力(6) 今回はハード? Jetson Nano復活のACアダプタ” の続きを読む

ソフトな忘却力(5) CMakeLists.txtにリンク・ライブラリ指定、Boost

boost_filesystem
Joseph Halfmoon

前回は、VS Code拡張 CMake Toolsが生成してくれたCMakeLists.txtを手修正して「お好み」の階層構造でビルドできることを確かめました。今回はインストール済のライブラリを使えるようにしてみます。リンクするライブラリはBoostの中からFilesystemを選んでみました。何も難しいことはないのだけれど、結局ポカはあるのね。

“ソフトな忘却力(5) CMakeLists.txtにリンク・ライブラリ指定、Boost” の続きを読む

ソフトな忘却力(4) 自動生成のCMakeLists.txtを改造して「自分の」にする

vscode_EC
Joseph Halfmoon

前回はVS Code拡張 ”CMake Tools” のクイックスタートを使ってみました。これでとりあえず空のディレクトリを「CMakeできる」ようにしてくれた、と。ここを出発点に自分でCMakeLists.txtを書き換えて「お好み」な感じにしてみます。CMake Tools自体、設定すればいろいろやってくれそうではあるのですが、CMakeのお勉強かねて直接。

“ソフトな忘却力(4) 自動生成のCMakeLists.txtを改造して「自分の」にする” の続きを読む