Eskil

Check-in [fa8652fa59]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:New tests for compareFiles.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: fa8652fa59b5dea3fc73552d63e388187a5d31ef
User & Date: peter 2005-01-27 22:41:57.000
Context
2005-01-27
22:44
Fixed handling of ignore keyword in dir diff. Added 95 chars/line option in print. check-in: ba845025f0 user: peter tags: trunk
22:41
New tests for compareFiles. check-in: fa8652fa59 user: peter tags: trunk
2004-12-14
22:45
Release 2.0.7. check-in: cc381a6797 user: peter tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Added tests/dir.test.


























































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# Tests for comparing directories.                          -*- tcl -*-
#----------------------------------------------------------------------
# $Revision$
#----------------------------------------------------------------------

set ::Pref(dir,ignorekey) 0
set ::Pref(comparelevel) 1

proc testCompareFiles {text1 text2 {sametime 0}} {
    set ch [open _f1_ w]
    puts -nonewline $ch $text1
    close $ch

    set ch [open _f2_ w]
    puts -nonewline $ch $text2
    close $ch

    set t [file mtime _f1_]
    if {$sametime} {
        file mtime _f2_ $t
    } else {
        file mtime _f2_ [expr {$t - 5}]
    }

    set res [compareFiles _f1_ _f2_]
    append res [compareFiles _f2_ _f1_]
    file delete -force _f1_ _f2_
    return $res
}

proc touch {name} {
    set ch [open $name w]
    puts $ch "a"
    close $ch
}

test dir-1.1 {
    compareFiles
} -body {
    set text1 "Hej hopp"
    testCompareFiles $text1 $text1
} -result {11}

test dir-1.2 {
    compareFiles
} -body {
    set text1 [string repeat "Abab" 16384]
    set text2 ${text1}Xx
    set res [testCompareFiles $text1 $text2]
} -result {00}

test dir-1.3 {
    compareFiles
} -body {
    set text1 [string repeat "Abab" 16384]
    set text2 ${text1}Xx${text1}Xx
    set res [testCompareFiles $text1 $text2]
} -result {00}

test dir-2.1 {
    compareFiles, ingore key
} -body {
    set text1 [string repeat "Abab" 1684]
    append text1 "\$"
    append text1 "Somekey: asdf s 178 flkjsf as lkj\$"
    append text1 Aaalkdalkioodi[string repeat "Abab" 16844]

    set text2 [string repeat "Abab" 1684]
    append text2 "\$"
    append text2 "Somekey: asdf s 17 flkjsf as lkj\$"
    append text2 Aaalkdalkioodi[string repeat "Abab" 16844]

    set res [testCompareFiles $text1 $text2]
    set ::Pref(dir,ignorekey) 1
    append res [testCompareFiles $text1 $text2]
    set ::Pref(dir,ignorekey) 0
    set res
} -result {0011}

test dir-2.2 {
    compareFiles, ingore key
} -body {
    set text1 [string repeat "Abab" 1684]
    append text1 "\$"
    append text1 "Somekey: asdf s 178 flkjsf as lkj\$"
    append text1 Aaalkdalkioodi[string repeat "Abab" 16844]

    set text2 [string repeat "Abab" 1684]
    append text2 "\$"
    append text2 "Somekey: asdf s 17 flkjsf as lkj\$"
    append text2 Aaalkdalkiood[string repeat "Abab" 16844]

    set res [testCompareFiles $text1 $text2]
    set ::Pref(dir,ignorekey) 1
    append res [testCompareFiles $text1 $text2]
    set ::Pref(dir,ignorekey) 0
    set res
} -result {0000}

test dir-3.1 {
    compareFiles, bogus files
} -body {
    touch _f1_
    set res [compareFiles _bogus_ _f1_]
    append res [compareFiles _f1_ _bogus]
    append res [compareFiles _bogus_ _bogus]
} -cleanup {
    file delete -force _f1_
} -result {000}

test dir-4.1 {
    compareFiles, no contents
} -body {
    set ::Pref(comparelevel) 0
    set res [testCompareFiles "abab" "baba"]
    # Different size
    append res [testCompareFiles "abab" "babax"]
    set ::Pref(comparelevel) 1
    append res [testCompareFiles "abab" "baba"]
    # Same time
    append res [testCompareFiles "abab" "baba" 1]
} -result {11000011}

test dir-5.1 {
    compareFiles, directories
} -body {
    touch _f1_
    file mkdir _d1_
    file mkdir _d2_
    touch _d2_/_f2_

    set res [compareFiles _f1_ _d1_]
    append res [compareFiles _d1_ _d2_]
} -cleanup {
    file delete -force _f1_ _d1_ _d2_
} -result {00}

test dir-6.1 {
    compareFiles, binary
} -body {
    set ::Pref(comparelevel) 1b
    set res [testCompareFiles "short" "longer"]
} -cleanup {
    set ::Pref(comparelevel) 1
} -result {00}

test dir-6.2 {
    compareFiles, binary
} -body {
    set ::Pref(comparelevel) 1b
    set text1 [string repeat hugg 1534]\rhejsan
    set text2 [string repeat hugg 1534]\nhejsan

    set res [testCompareFiles $text1 $text2]
    set ::Pref(comparelevel) 1
    append res [testCompareFiles $text1 $text2]
} -result {0011}