私はPacmanパッケージ(基本的にいくつかの特別なメタデータファイルを含むtarballです)をビルドするソフトウェアに取り組んでいます。テストスイートはいくつかのパッケージをビルドし、結果のパッケージを記録された予想結果と比較します。
パッケージに記録されたメタデータのフィールドの1つは、パッケージのインストールサイズですdu -s --apparent-size
。これは、tar変換する前にルートディレクトリで実行することによって決定されます。
これはすべて、私が開発しているローカルのArch Linuxボックスで問題なく動作します。インストールされたサイズ(キロバイト、バイトでさえも!)を含むパッケージは、テストを実行するたびに正確に再現されます。
これで、Ubuntu-12.04ベースのコンテナーで(Travisのドキュメントから理解できる限り)実行されるTravisでもこのテストを有効にしました。そこでは、テストはほとんどの場合合格しています。ほとんどの場合。場合によっては、インストールされているサイズが80〜99%ずれて計算されます。
次に、失敗したテストの例を示します。https://travis-ci.org/holocm/holo/builds/89326780(直前のテストは成功しました。)
@@ -37,7 +37,7 @@
pkgdesc = my foo bar package
url =
packager = Unknown Packager
- size = 37728
+ size = 1464
arch = any
license = custom:none
replaces = foo-bar<2.1
これについての不可解なことは、それが時々発生するだけで、明らかなパターンがないということです。テストは常に同じファイルを配置du -s --apparent-size
し、結果のツリーで実行し、完全に間違った結果に到達します。私はこれをUbuntu 12.04 VMで再現しようとしましたが、そこに1回または2回表示されるのを見ましたが、問題の再現に役立つパターンがそこに出現することも確認できませんでした。
たぶんここの誰かがこの問題を引き起こす可能性のあるアイデアを持っていますか?
編集:ああ、実際に私が観察した1つのパターンがあります。du
テストケースごとに1回実行されます。最初のテストケースで失敗すると、この実行のすべてのテストケースで失敗します。