超格安な日本発のマイコンボード UIAPduinoの紹介
290円という価格が目を引く日本発のマイコンボードについて、主な仕様、安さの背景、向 く用途、定番ボードとの違いをまとめて紹介します。
この記事では、Luaモジュールの動作確認用として個人的に良く使っているテストスクリプトのテンプレートを掲載します。 自分以外に使う人はいるのか?もっと良い方法があるんじゃないか?と思いますが、個人的にパッとコピペして使う用で掲載することにしました。
ここでは、簡単な処理を実行するmod.luaと呼ばれるLuaモジュールを例にします。
このmod.luaをテストスクリプト経由で呼び出すことで、入力に対する出力結果を確認します。
それでは、行ってみます。
※この記事は以下の環境で実施した結果を元に作成しています。
例として今回、動作確認をするLuaモジュールは次のmod.luaです。
関数は「hello」とコンソールに表示するmod.greetと入力値xyの加算結果を返すmod.addの2つです。
--mod.lua local mod = {} --helloと表示する mod.greet = function () print("hello") end --xとyの加算結果を返す mod.add = function (x, y) return x + y end return mod
次節では、このモジュールの各関数をテストするスクリプトを掲載します。
テストスクリプトは2つのLuaスクリプトで構成されます。
まず、1つ目のスクリプトは対象モジュールを呼び出すための処理が記述されたものです。
この記事ではmod.luaの動作確認をしたいので、testmod.luaと呼ばれるスクリプトを用意し、その中にmod.luaを
呼び出すためのテスト関数と引数情報を管理しています。
--testmod.lua --modモジュールのテスト関数 function test_greet() local mod = require("mod") mod.greet() end function test_add(args) local mod = require("mod") local x = args[1].value local y = args[2].value local result = mod.add(x, y) return result end --modモジュールをテスト実行するために必要な情報を呼び出し元に提供します function get_mod_list() local test_list = { { title = 'mod.greet', --テスト対象の関数名 desc = 'helloと表示します。', --処理についての説明(任意) func = test_greet --テスト関数の指定 }, { title = 'mod.add', desc = 'XとYの値を加算します。', --mod.addは引数が2つ必要なので、ここで引数用テーブルを記述しています。 args = { { desc = 'xの値 :', --入力時の説明文 value = nil }, { desc = 'yの値 :', value = nil }, }, func = test_add }, } return test_list end
テスト関数は何に対するテストか明確になるように、確認対象の関数名の先頭にプレフィックス「test_」を付けて命名しています。 get_mod_listはmod.luaの関数呼び出しに必要な情報をリストアップしている関数です。メイン処理によって実行されるとテスト関数情報をテーブルとして提供します。
2つ目のスクリプトは、メイン処理部のtest.luaです。
テストスクリプトのエントリポイントとして動作し、ユーザーの入力を受付けて指定モジュールをテスト実行します。
今回の場合、mod.luaのテスト一覧はtestmod.luaのget_mod_listで取得できます。
これによって得られた情報を基にテスト関数を実行します。
--test.lua require("testmod") while true do local list = nil print("[module list]") print("[1]...mod.lua") --テストしたいモジュール番号を選択します io.write("\nselect module no:") local test = io.read() if test == "1" then list = get_mod_list() --elseif test == '2' then 新たにテストしたいモジュールが増えたらリストをここに追加します -- list = get_xxx_list() else break end print("\nfunction list") for idx, val in ipairs(list) do print("["..idx.."]..."..val.title) end --テスト対象の関数番号を選択します io.write("\nselect function no:") local select = io.read() select = tonumber(select) local target_test = list[select] local args = target_test.args if not target_test then break end print(target_test.desc) --テスト対象の関数説明を表示します if args then for i = 1, #args do io.write(args[i].desc) args[i].value = io.read() --テスト対象関数の引数を入力します end end --実行結果を表示します print("\n[Result]----------------------------------------------") io.write(target_test.title..'(') if args then for i = 1, #args do io.write(args[i].value) if args[i+1] then io.write(', ') end end end print(')\n') local result = target_test.func(args) if result then print(result) end print("------------------------------------------------------\n") io.flush() end print("terminate")
コンソール上のユーザー指定によって、テスト対象モジュールの関数を実行することができます。
関数に引数が必要であれば、ユーザーはコンソールから引数の値を入力することができます。
実行結果はコンソールに表示されます。
kamo@kamo:~$ lua test.lua [module list] [1]...mod.lua select module no:1 function list [1]...mod.greet [2]...mod.add select function no:1 helloと表示します。 [Result]---------------------------------------------- mod.greet() hello ------------------------------------------------------ [module list] [1]...mod.lua select module no:1 function list [1]...mod.greet [2]...mod.add select function no:2 XとYの値を加算します。 xの値 :1 yの値 :2 [Result]---------------------------------------------- mod.add(1, 2) 3 ------------------------------------------------------ [module list] [1]...mod.lua select module no: terminate
このテストスクリプトからCGIプログラムが内部実行するLuaモジュールなどを 呼び出して処理結果をコンソールに表示させれば、ある程度の動作理解に繋がります。どんどん モジュールの呼び出し処理を追記していけば、ちょっとしたときに使えるツールになるはずです。
超格安な日本発のマイコンボード UIAPduinoの紹介
290円という価格が目を引く日本発のマイコンボードについて、主な仕様、安さの背景、向 く用途、定番ボードとの違いをまとめて紹介します。
スキャナーおすすめ5選 書類・写真・本のデジタル化に合う選び方
紙の書類、写真、本をデータ化したい人向けに、ADF、フラットベッド、オーバーヘッド型の違いと5機種の選び方を整理します。
信頼性が売り! 大手・老舗PCメーカーが販売するミニPC 5選
ASUS、マウスコンピューター、Lenovo、HP、MSIから、Amazonで購入できるミニPC5機種を紹介します。CPU、メモリ、ストレージ、拡張性、保証、無線LANの有無を用途別に整理します。
3Dプリンターの選び方! 造形方式や素材、確認ポイントを整理して紹介
3Dプリンターの選び方を紹介します。FDMと光造形の違い、PLAやPETG、ABSなどの素材、造形サイズ、家庭で使うときの注意点、代表的なメーカーと製品を整理しています。
【1~5万円台】格安レーザー彫刻機おすすめ10選|入門モデルを比較
1~5万円台で購入しやすい格安レーザー彫刻機10機種を、レーザー光出力、作業領域、付属品、追加費用から比較します。
2026年版 インスタントカメラ・チェキ系ガジェットの選び方 おすすめ10選
昔ながらのフィルム式インスタントカメラと、インスタントデ ジタルカメラ・ハイブリッド機の両方を対象に、チェキ系ガジェ ット10機種を用途別に紹介します。