FreeBSD Daily Topics

2014年4月25日2014年第一四半期SR:FreeBSD Test Suite

SR

2014Q1 SR

2014年第一四半期におけるステータスレポートが公開されました。中からとくに興味深いものをピックアップして紹介します。

FreeBSD Test Suite

第1四半期の今回の報告では「FreeBSD Test Suite」という取り組みについても説明がありました。⁠FreeBSD Test Suite」はFreeBSDで動作するユーザランドのコマンドやライブラリが適切に動作するかどうかを包括的にテストするための仕組みであり、そのテストコードの集まりということになります。主にFreeBSDの開発者向けの機能で、開発中に取り込んだ変更でほかのソフトウェアへ影響が出ていないかどうかを自動的にチェックする仕組みとなります。FreeBSD Test SuiteのコードはHEADまたは最新のSTABLEに取り込まれています。リリースに含まれるのは10.1-RELEASEや11.0-RELEASE以降ということになります。

しかし、この機能はFreeBSDをエンタープライズユースで使う場合にも利用できる機能です。調達したハードウェアで適切にFreeBSDが動作するかどうか、負荷試験のみならずこのテストキットを実行することで動作状況を確認できます。運用前にこうしたチェックを実施しておくと、運用後に発生したトラブルがハードウェアによるものなのかソフトウェアによるものなのかの切り分けに役立つようになります。

FreeBSD Test Suiteを有効にするには/etc/src.confファイルに「WITH_TESTS=YES」という設定を追加してmake buildworld buildkernel && make installkernel installworldを実行する必要があります。テスト関連のコードは/usr/testにインストールされます。

 /usr/tests以下にインストールされた統合試験環境
# tree /usr/tests | head -30
/usr/tests
|-- Kyuafile
|-- bin
|   |-- Kyuafile
|   |-- date
|   |   |-- Kyuafile
|   |   `-- legacy_test
|   |-- mv
|   |   |-- Kyuafile
|   |   `-- legacy_test
|   |-- pax
|   |   |-- Kyuafile
|   |   `-- legacy_test
|   |-- pkill
|   |   |-- Kyuafile
|   |   |-- pgrep-F_test
|   |   |-- pgrep-LF_test
|   |   |-- pgrep-P_test
|   |   |-- pgrep-U_test
|   |   |-- pgrep-_g_test
|   |   |-- pgrep-_s_test
|   |   |-- pgrep-g_test
|   |   |-- pgrep-i_test
|   |   |-- pgrep-j_test
|   |   |-- pgrep-l_test
|   |   |-- pgrep-n_test
|   |   |-- pgrep-o_test
|   |   |-- pgrep-q_test
|   |   |-- pgrep-s_test
|   |   |-- pgrep-t_test
#

FreeBSD Test SuiteはKyuaおよびATFで開発されていますので、利用するには次のようにKyuaをインストールします。試験によってはPerlも使われるので、必要な場合はPerlもインストールしておいてください。

 Kyuaをインストール
# pkg install -y kyua
Updating repository catalogue
The following 1 packages will be installed:

        Installing kyua: 20140215,1

The installation will require 372 B more space

0 B to be downloaded
Checking integrity... done
[1/1] Installing kyua-20140215,1... done
#

/usr/tests/に移動して「kyua test」と実行すると試験が実行されます。執筆現在のFreeBSD Test Suiteに登録されているテストの数は500強ほどで、数分から数十分ほどで試験は完了します。試験にはこれまで/usr/src/tools/regression/に登録されていたものも取り込まれています。今後はFreeBSD Test Suiteで包括的に試験を実施することになりそうです。

 試験の実行
# cd /usr/test/
# kyua test
bin/date/legacy_test:main  ->  passed  [0.242s]
bin/mv/legacy_test:main  ->  passed  [0.521s]
bin/pax/legacy_test:main  ->  skipped: Required program '/usr/local/bin/perl' not found  [0.000s]
bin/pkill/pgrep-F_test:main  ->  passed  [0.395s]
bin/pkill/pgrep-LF_test:main  ->  passed  [0.703s]
bin/pkill/pgrep-P_test:main  ->  passed  [0.457s]
bin/pkill/pgrep-U_test:main  ->  passed  [0.844s]
bin/pkill/pgrep-_g_test:main  ->  passed  [0.732s]
bin/pkill/pgrep-_s_test:main  ->  passed  [0.147s]
bin/pkill/pgrep-g_test:main  ->  passed  [1.032s]
…略…
usr.sbin/etcupdate/fbsdid_test:main  ->  passed  [1.085s]
usr.sbin/etcupdate/ignore_test:main  ->  passed  [0.555s]
usr.sbin/etcupdate/preworld_test:main  ->  passed  [0.508s]
usr.sbin/etcupdate/tests_test:main  ->  passed  [5.390s]
usr.sbin/etcupdate/tzsetup_test:main  ->  passed  [1.085s]
usr.sbin/newsyslog/legacy_test:main  ->  passed  [42.592s]
usr.sbin/sa/legacy_test:main  ->  passed  [0.489s]

504/509 passed (5 failed)
Committed action 1
#

試験結果は次のようにreportサブコマンドで出力させます。

 試験結果の報告
# kyua report
===> Skipped tests
bin/pax/legacy_test:main  ->  skipped: Required program '/usr/local/bin/perl' not found  [0.000s]
lib/atf/libatf-c++/pkg_config_test:build  ->  skipped: Required program 'pkg-config' not found in PATH  [0.000s]
lib/atf/libatf-c++/pkg_config_test:version  ->  skipped: Required program 'pkg-config' not found in PATH  [0.000s]
lib/atf/libatf-c/pkg_config_test:build  ->  skipped: Required program 'pkg-config' not found in PATH  [0.000s]
lib/atf/libatf-c/pkg_config_test:version  ->  skipped: Required program 'pkg-config' not found in PATH  [0.000s]
sbin/growfs/legacy_test:main  ->  skipped: Required program '/usr/local/bin/perl' not found  [0.000s]
sbin/ifconfig/fibs_test:process_fib  ->  skipped: Required configuration property 'fibs' not defined  [0.000s]
sbin/mdconfig/legacy_test:main  ->  skipped: Required program '/usr/local/bin/perl' not found  [0.000s]
sys/kern/kern_descrip_test:kern_maxfiles__increase  ->  skipped: Required configuration property 'allow_sysctl_side_effects' not defined  [0.000s]
sys/netinet/fibs_test:arpresolve_checks_interface_fib  ->  skipped: Required configuration property 'fibs' not defined  [0.000s]
sys/netinet/fibs_test:default_route_with_multiple_fibs_on_same_subnet  ->  skipped: Required configuration property 'fibs' not defined  [0.000s]
sys/netinet/fibs_test:loopback_and_network_routes_on_nondefault_fib  ->  skipped: Required configuration property 'fibs' not defined  [0.000s]
sys/netinet/fibs_test:src_addr_selection_by_subnet  ->  skipped: Required configuration property 'fibs' not defined  [0.000s]
sys/netinet/fibs_test:subnet_route_with_multiple_fibs_on_same_subnet  ->  skipped: Required configuration property 'fibs' not defined  [0.000s]
===> Failed tests
bin/pkill/pgrep-j_test:main  ->  failed: 3 tests of 3 failed  [6.632s]
bin/pkill/pkill-j_test:main  ->  failed: 1 tests of 3 failed  [7.437s]
lib/atf/libatf-c/macros_test:use  ->  failed: Build of macros_h_test.c failed; some macros in atf-c/macros.h are broken  [1.016s]
usr.bin/sed/multi_test:main  ->  failed: 1 tests of 129 failed  [1.392s]
usr.bin/yacc/legacy_test:main  ->  failed: 15 tests of 15 failed  [1.368s]
===> Summary
Action: 1
Test cases: 509 total, 14 skipped, 0 expected failures, 0 broken, 5 failed
Total time: 202.259s
# pkg-config
pkg-config: not found
#

report-htmlサブコマンドを使うとHTMLとして試験結果を出力させることもできます。

 試験結果の報告(HTML)
# kyua report-html --output out
Generating out/context.html
Generating out/bin_pax_legacy_test_main.html
Generating out/bin_pkill_pgrep-j_test_main.html
Generating out/bin_pkill_pkill-j_test_main.html
Generating out/lib_atf_libatf-c++_pkg_config_test_build.html
Generating out/lib_atf_libatf-c++_pkg_config_test_version.html
Generating out/lib_atf_libatf-c_macros_test_use.html
Generating out/lib_atf_libatf-c_pkg_config_test_build.html
Generating out/lib_atf_libatf-c_pkg_config_test_version.html
Generating out/sbin_growfs_legacy_test_main.html
Generating out/sbin_ifconfig_fibs_test_process_fib.html
Generating out/sbin_mdconfig_legacy_test_main.html
Generating out/sys_kern_kern_descrip_test_kern_maxfiles__increase.html
Generating out/sys_netinet_fibs_test_arpresolve_checks_interface_fib.html
Generating out/sys_netinet_fibs_test_default_route_with_multiple_fibs_on_same_subnet.html
Generating out/sys_netinet_fibs_test_loopback_and_network_routes_on_nondefault_fib.html
Generating out/sys_netinet_fibs_test_src_addr_selection_by_subnet.html
Generating out/sys_netinet_fibs_test_subnet_route_with_multiple_fibs_on_same_subnet.html
Generating out/usr.bin_sed_multi_test_main.html
Generating out/usr.bin_yacc_legacy_test_main.html
Generating out/report.css
Generating out/index.html
#
 試験結果報告 HTMLの例その1
図 試験結果報告 HTMLの例その1
 試験結果報告 HTMLの例その2
図 試験結果報告 HTMLの例その2

Jenkinsによる継続的自動ビルドシステムの構築、FreeBSD Test Suiteによる継続的自動試験システムの構築、libvirt対応によるクラウド管理ソフトウェアとの連携、オペレーティングシステム管理ソフトウェアとの連動など、ここ最近のFreeBSDプロジェクトの取り組みはよりエンタープライズレベルでの用途向けの開発が活発です。この傾向は今後も継続するものとみられます。

告知

技評×オングス FreeBSD 10新機能紹介と変更点説明

2014年5月22日に技術評論社本社ビル5F会議室において技評×オングス FreeBSD 10新機能紹介と変更点説明 ~新世代のFreeBSDについて知ろう~を開催します。参加申し込みはこちらからどうぞ。

先日、次世代メジャーアップグレードバージョン「FreeBSD 10.0-RELEASE」が登場しました。10.0-RELEASEではいくつ大きな変更があるほか、これまで望まれてきたさまざまな機能が追加されています。10で導入される新機能や大きな変更点などを取り上げ、新しい機能をどのように扱ったらよいのか、変更に関してどのように対処すればよいのかを詳しく解説します。Linuxを扱っている方にもぜひご参加いただきたい発表会です。

  • 次世代パッケージ管理システムpkg(8)
  • 次世代ハイパーバイザ/仮想環境基盤 BHyVe
  • BINDをベースシステムから廃止/UnboundとLDNSの導入と活用方法
  • GCCをベースシステムから廃止/LLVM Clangの導入
  • Amazon EC2デフォルト対応/Microsoft Hyper-Vデフォルト対応
  • ZFS機能強化(LZ4とその効果、L2ARC圧縮による性能向上、NOP Write最適化、SSD対応、今後の開発方針など)
  • オンラインでファイルシステムを拡張できるUFS growfs(8)
  • 新しいカーネルレベルiSCSIターゲット/イニシエータ
  • ファイアウォールpf(4)マルチコア対応
  • ファイアウォールipfw(8)機能強化マルチコア/メニーコアで性能向上 Unmapped VMIOバッファ
  • 高速ネットワーク通信機能NetMap
開催日時2014年5月22日(木)19:00~21:30(18:30開場)
場所技術評論社 本社5F会議室 ⁠東京都新宿区市谷左内町21-13)
参加申込http://atnd.org/events/49883
第29回 FreeBSD勉強会

2014年6月2日(月)に東京、KDDIウェブコミュニケーションズさまの会議室において第29回 FreeBSD勉強会 シェルとコマンド~実践的企業システム開発手法を開催します。参加申し込みはこちらからどうぞ。

近年、企業の基幹システム(売上管理システム、商品マスタ管理システム、販売管理システム、在庫管理システム、勘定系システム、MDシステム、勤怠管理システム、給与系システム、データ分析システム、ログ分析システムなど)の開発手法として超高速開発手法と呼ばれる開発手法が注目されつつあります。

現在の企業活動に求められるシステムの開発時間はますます短くなっており、従来のウォーターフォール型の開発では経営の要求に応えることが難しくなりつつあります。高性能なシステムを短期間に開発できる開発手法の需要が高まってます。

本勉強会ではFreeBSDを企業システムのベースに採用し、シェルとコマンドを組み合わせて企業システムを開発する手法を紹介します。この手法は企業システムの開発速度がきわめて高速で、開発される成果物も高性能という特徴があります。こうした開発手法の草分け的存在がユニバーサル

  • シェル
  • プログラミング研究所が開発しているユニケージ開発手法です。オングスではトリプル
  • ティー開発手法と呼ばれるシェルとコマンドをベースとした開発手法を活用して企業システムを開発しています。
  • 本勉強会ではこうした企業システム開発の実践経験などをベースに、どのような発想で企業システムを開発するのか、シェルとコマンドをベースとしたシステム開発とはいったいどのようなものなのか、コマンドとしてはどういったものが活用できるのか、などを紹介します。

    開催日時2014年6月2日(月)19:00~21:30(18:30開場)
    場所KDDIウェブコミュニケーションズ会議室 / 東京都千代田区麹町三丁目6番地 住友不動産麹町ビル3号館
    参加申込http://atnd.org/events/49885

    発表のあとはその場で簡単な懇親会を開きます。軽いつまみとアルコール類は用意しますが、お好きなお酒の持ち込みも大歓迎です。

    おすすめ記事

    記事・ニュース一覧