Crackerjack Project

The Linux Kernel Regression Test Project.

  • You are here: 
  • Home

Welcome to Crackerjack Project.

Overview

Linuxカーネルはコミュニティベースで分散的に開発が進められており、そのためシステムコールの上位互換性を保証することが難しいという問題があります。また、非互換性に関する明文化されたわかりやすい情報が少なく、その結果、ソースコードを読み込むまで詳細がわからないといった問題も起きています。

これらの問題を解決するため、Crackerjack Projectでは、2006年度からLinuxカーネルバージョン間の互換性をテストするツールCrackerJackの開発を進めてきました。その一部は、北東アジアOSS推進フォーラムの日中韓共同開発プロジェクトの一環としても推進されています。

この成果は欧米を中心としたAutotestやLTP(Linux Test Project)などのコミュニティからも認知され、ツールのさらなる高品質化、および非互換性情報の幅広い提供などへの期待が高まっています。

このサイトは、Crackerjackプロジェクトの成果を国内外のLinux利用者および開発者に対して幅広く提供することを目的としています。

Features

Crackerjack Projectの成果物"Crackerjack 2.0"には、以下の機能があります。

  • Linux-Kernelのテスト

    linux-kernelの全てのシステムコールについてのテストを行います。

  • リグレッションテスト

    複数のlinux-kernelバージョン間でのテスト結果を比較することで、バージョン間でのリグレッションを確認するためのデータを作成することができます。

  • カーネルコードのカバレッジ

    各々のシステムコールについて、そのカバレッジをカーネルのソースレベルで確認できます。

  • コマンドライン、GUI

    コマンドラインからの実行はもちろん、GUIシェルも付属しています。

Architecture

Crackerjack Project全体は、以下のような要素から成り立っています。

  • Crackerjack Application

    テストケースを実行し、その結果を保存します。

  • Testcase

    Linux-Kernelのテストケースです。全てのLinuxシステムコールに対応します。

  • Crackerjack Site

    Crackerjack Applicationからの結果を集計し、Regression結果を公開します。

Crackerjack_architecture

Relation with other communities.

Crackerjack Projectと他のコミュニティとの関係を以下に示します。

このコミュニティの関係は、現代の情報基盤を築いているLinux-Kernelについて、品質管理のためのエコシステムとなることを目指します。
カーネル開発者は、リグレッションテストの結果を直接、カーネルの品質向上に使うことができるでしょう。
アプリケーションデベロッパは、リグレッションテストの結果から、各々のバージョンでのシステムコールの動作を把握し、より品質の高いアプリケーションを構築することができるでしょう。
マニュアル作成者は、ドキュメントと実際の動作の乖離をより簡単に発見し、修正することが可能になります。
このように、Linuxコミュニティの成果物全体の品質向上のためのプラットフォームを提供することが我々の目標です。

Other_communities

Image of ideal release model.

我々は、カーネルテストの方法を単純化することにより、Linux-Kernelの開発のより多くの局面でテストを行うことを可能にしたいと考えています。
たとえば、開発用リポジトリへのコミットの段階、ディストリビューションごとのカーネル構築の段階など、いろいろな局面でリグレッションテストを行うことで、Linux-Kernelの品質の向上を図ることが可能になります。

Release_model

Getting Started

Crackerjackは、以下の方法で使用することができます。

  • Download

    まずCrackerjackパッケージをDownloadして、解凍してください。

  • Make

    テストケースをコンパイルするために、Crackerjackを解凍したディレクトリ内の"testcases"ディレクトリでmakeコマンドを実行してください。

  • Test

    Crackerjackを解凍したディレクトリで、"./crackerjack -x"を実行すると、今使われているシステムのカーネルをテストします。(実行にはrubyが必要です。)
    また、"./crackerjack-gui"を実行すると、GUIからテストを行うことができます。

Who can use Crackerjack?

License

Crackerjack Projectの成果物のライセンスは、GNU GENERAL PUBLIC LICENSE Version 2に従います。

Philosophy

Download

Crackerjack TestCase


Download

Subversion

Crackerjack Site Source (from svn)

https://crackerjack.svn.sourceforge.net/svnroot/crackerjack/trunk/viewsite


Crackerjack Site Read Me