[Anthy-dev 1089] uim/intl.cのテスト

Back to archive index

Kouhei Sutou kou****@cozmi*****
2004年 9月 29日 (水) 00:19:06 JST


須藤です.

なんとなくSchemeが書きたくなったので,uim/intl.cのテストを書
いてみました.
# uim/intl.cをテスト無しで放置しておくのも気が引けましたし.

ただ,msgfmtが無かったり,en_USロケールが無かったりするとテ
ストは失敗すると思います.



ついでですが,GaUnit 0.1.0をリリースしました.

  http://www.cozmixng.org/~kou/download/gaunit-0.1.0.tar.gz

0.1.0を使うと以下のようなオプションが使えるようになります.

: -sREGEXP, --test-suite=REGEXP

   正規表現REGEXPにマッチするテストスイート名を持つテストス
   イートのみ実行します.

: -cREGEXP, --test-case=REGEXP

   正規表現REGEXPにマッチするテストケース名を持つテストケー
   スのみ実行します.

: -tREGEXP, --test=REGEXP

   正規表現REGEXPにマッチするテスト名を持つテストのみ実行し
   ます.


uimのテストは毎回テストケース毎にuim-shを起動するので,わり
とテスト時間がかかりますが,上記のオプションを使えば特定のテ
ストだけを実行というのがしやすくなるかもしれません.

例えば,uim/intl.cのテストだけ実行するには以下のようにできま
す.

  % test/run-test.scm -cintl

# テストケース名が"test intl"で,正規表現/intl/にマッチする
# から



Index: test/test-intl.scm
===================================================================
--- test/test-intl.scm	(revision 0)
+++ test/test-intl.scm	(revision 0)
@@ -0,0 +1,47 @@
+#!/usr/bin/env gosh
+
+(use test.unit)
+
+(require "test/uim-test-utils")
+
+(let* ((current-lang #f)
+       (lang "en_US")
+       (locale-dir (build-path "test" "locale"))
+       (LC_MESSAGES-dir (build-path locale-dir "en_US" "LC_MESSAGES"))
+       (domain "uim")
+       (msgid "hello")
+       (msgstr "Hello"))
+  (define-uim-test-case "test intl"
+    (setup
+     (lambda ()
+       (set! current-lang (sys-getenv "LANG"))
+       (sys-putenv "LANG" lang)
+       (make-directory* LC_MESSAGES-dir)
+       (with-output-to-file (build-path LC_MESSAGES-dir #`",|domain|.po")
+         (lambda ()
+           (display
+            (string-join
+             `("msgid \"\""
+               "msgstr \"\""
+               "\"MIME-Version: 1.0\\n\""
+               "\"Content-Type: text/plain; charset=UTF-8\\n\""
+               "\"Content-Transfer-Encoding: 8bit\\n\""
+               ""
+               ,#`"msgid \",|msgid|\""
+               ,#`"msgstr \",|msgstr|\"")
+             "\n"))))
+       (run-process "msgfmt" "-o"
+                    (build-path LC_MESSAGES-dir #`",|domain|.mo")
+                    (build-path LC_MESSAGES-dir #`",|domain|.po")
+                    :wait #t)
+       (*uim-sh-setup-proc*)))
+    (teardown
+     (lambda ()
+       (sys-putenv "LANG" current-lang)
+       (remove-directory* locale-dir)))
+    ("test gettext"
+     (assert-equal msgid (uim `(gettext ,msgid)))
+     (uim `(bindtextdomain ,domain ,locale-dir))
+     (assert-equal msgstr (uim `(dgettext ,domain ,msgid)))
+     (uim `(textdomain ,domain))
+     (assert-equal msgstr (uim `(gettext ,msgid))))))

Property changes on: test/test-intl.scm
___________________________________________________________________
Name: svn:executable
   + *





Anthy-dev メーリングリストの案内
Back to archive index