Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vim の "make test" を読み解く 第 1 回

$
0
0

Vim 本体のテストに関する記事ってあんまりないような気がしたので。理解できた部分を少しずつ追記していきます。大変に地味な記事になる予感。面白そうなトピックがあれば教えてください。
OS は Linux で、以下の設定で実行した場合を想定しています。

$ ./configure --with-features=huge --enable-fail-if-missing--prefix=$HOME

make test

:help testingを見てみると分かるように、その他大勢のアプリケーションと同様に Vim にもテストが存在していて、make testで実行することができます。また、src/Makefileには以下のような記述があります。

# 4. "make test"  {{{1
#   This is optional.  This will run Vim scripts on a number of test
#   files, and compare the produced output with the expected output.
#   If all is well, you will get the "ALL DONE" message in the end.  If a
#   test fails you get "TEST FAILURE".  See below (search for "/^test").

日本語訳

このステップは任意です。これはたくさんのテストファイル上で Vim script を実行し、生成された出力と期待される出力を比較します。すべてが正常だった場合、"ALL DONE" というメッセージが最後に表示されます。もしテストが失敗した場合は "TEST FAILURE" が表示されます。("/^test" で検索して) 下のほうを参照してください。

2018/02/18 現在 (tag: v8.1.0946) では、"ALL DONE" は実際には最後ではなく途中に表示されます。これは次の章で説明しますが、もともとあった Vim 本体のテストに対して unit test と libvterm のテストが後から追加されたためではないかと推測します。libvterm に関しては以下のサイトが参考になります。
https://qiita.com/mattn/items/5aed718a65d21ca7855c

Makefile

make test (もしくはmake check) でテストを実行すると、

  1. scripttests
  2. unittests
  3. test_libvterm

の 3 つが実行されることが分かります。

# TESTING
#
# Execute the test scripts and the unittests.
test check:scripttests unittests test_libvterm

先に種明かしをしてしまうと、scripttests は Vim 本体の機能のテスト、unittests は Vim の内部に存在する関数のユニットテスト、test_libvterm は上述の libvterm に関するテストです。

とりあえず、第 1 回はここまで。


Viewing all articles
Browse latest Browse all 5608

Trending Articles