とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

超簡易 diff

全く同じであれば 0 を返して終了。
異なる行があれば,何行目かとどう違うのかを出力した後, 1 を返して終了。
標準出力を使うアプリをテストするときに使えたらいいかなぁと思って書いてみた。

#!/cygdrive/c/Python31/python
# -*- coding:utf-8 -*-

from sys import stdin, argv
from itertools import zip_longest

test_file = stdin
expected_file = 0
if len(argv) > 2:
    test_file = open(argv[2])
if len(argv) > 1:
    expected_file = open(argv[1])
else:
    print('usage:', argv[0], 'expected_file [test_file]')
    exit(1)

for i, (expected_line, test_line) in enumerate(zip_longest(expected_file, test_file)):
    if expected_line != test_line:
        print('line: ', i + 1, '\n', expected_line, test_line, sep='')
        exit(1)
    
print('test pass!')
exit(0)