##// END OF EJS Templates
py3: use print_function in test-hybridencode.py
Robert Stanca -
r28750:2b0d7be9 default
parent child Browse files
Show More
@@ -1,249 +1,247
1 1 #require test-repo
2 2
3 3 $ cd "$TESTDIR"/..
4 4
5 5 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs python contrib/check-py3-compat.py
6 6 doc/check-seclevel.py not using absolute_import
7 7 doc/gendoc.py not using absolute_import
8 8 doc/hgmanpage.py not using absolute_import
9 9 hgext/color.py not using absolute_import
10 10 hgext/eol.py not using absolute_import
11 11 hgext/extdiff.py not using absolute_import
12 12 hgext/factotum.py not using absolute_import
13 13 hgext/fetch.py not using absolute_import
14 14 hgext/fsmonitor/pywatchman/__init__.py not using absolute_import
15 15 hgext/fsmonitor/pywatchman/__init__.py requires print_function
16 16 hgext/fsmonitor/pywatchman/capabilities.py not using absolute_import
17 17 hgext/fsmonitor/pywatchman/pybser.py not using absolute_import
18 18 hgext/gpg.py not using absolute_import
19 19 hgext/graphlog.py not using absolute_import
20 20 hgext/hgcia.py not using absolute_import
21 21 hgext/hgk.py not using absolute_import
22 22 hgext/highlight/__init__.py not using absolute_import
23 23 hgext/highlight/highlight.py not using absolute_import
24 24 hgext/histedit.py not using absolute_import
25 25 hgext/largefiles/__init__.py not using absolute_import
26 26 hgext/largefiles/basestore.py not using absolute_import
27 27 hgext/largefiles/lfcommands.py not using absolute_import
28 28 hgext/largefiles/lfutil.py not using absolute_import
29 29 hgext/largefiles/localstore.py not using absolute_import
30 30 hgext/largefiles/overrides.py not using absolute_import
31 31 hgext/largefiles/proto.py not using absolute_import
32 32 hgext/largefiles/remotestore.py not using absolute_import
33 33 hgext/largefiles/reposetup.py not using absolute_import
34 34 hgext/largefiles/uisetup.py not using absolute_import
35 35 hgext/largefiles/wirestore.py not using absolute_import
36 36 hgext/mq.py not using absolute_import
37 37 hgext/rebase.py not using absolute_import
38 38 hgext/share.py not using absolute_import
39 39 hgext/win32text.py not using absolute_import
40 40 i18n/check-translation.py not using absolute_import
41 41 i18n/polib.py not using absolute_import
42 42 setup.py not using absolute_import
43 43 tests/heredoctest.py requires print_function
44 44 tests/killdaemons.py not using absolute_import
45 45 tests/md5sum.py not using absolute_import
46 46 tests/mockblackbox.py not using absolute_import
47 47 tests/printenv.py not using absolute_import
48 48 tests/readlink.py not using absolute_import
49 49 tests/readlink.py requires print_function
50 50 tests/revlog-formatv0.py not using absolute_import
51 51 tests/run-tests.py not using absolute_import
52 52 tests/sitecustomize.py not using absolute_import
53 53 tests/svn-safe-append.py not using absolute_import
54 54 tests/svnxml.py not using absolute_import
55 55 tests/test-atomictempfile.py not using absolute_import
56 56 tests/test-demandimport.py not using absolute_import
57 57 tests/test-demandimport.py requires print_function
58 58 tests/test-doctest.py not using absolute_import
59 59 tests/test-hgwebdir-paths.py not using absolute_import
60 tests/test-hybridencode.py requires print_function
61 60 tests/test-lrucachedict.py not using absolute_import
62 61 tests/test-lrucachedict.py requires print_function
63 62 tests/test-manifest.py not using absolute_import
64 63 tests/test-minirst.py not using absolute_import
65 64 tests/test-minirst.py requires print_function
66 65 tests/test-parseindex2.py not using absolute_import
67 66 tests/test-parseindex2.py requires print_function
68 67 tests/test-pathencode.py not using absolute_import
69 68 tests/test-pathencode.py requires print_function
70 69 tests/test-propertycache.py not using absolute_import
71 70 tests/test-propertycache.py requires print_function
72 71 tests/test-revlog-ancestry.py not using absolute_import
73 72 tests/test-revlog-ancestry.py requires print_function
74 73 tests/test-run-tests.py not using absolute_import
75 74 tests/test-simplemerge.py not using absolute_import
76 75 tests/test-status-inprocess.py not using absolute_import
77 76 tests/test-status-inprocess.py requires print_function
78 77 tests/test-symlink-os-yes-fs-no.py not using absolute_import
79 78 tests/test-trusted.py not using absolute_import
80 79 tests/test-trusted.py requires print_function
81 80 tests/test-ui-color.py not using absolute_import
82 81 tests/test-url.py not using absolute_import
83 82
84 83 #if py3exe
85 84 $ hg files 'set:(**.py)' | sed 's|\\|/|g' | xargs $PYTHON3 contrib/check-py3-compat.py
86 85 contrib/check-code.py: invalid syntax: (unicode error) 'unicodeescape' codec can't decode bytes in position *-*: malformed \N character escape (<unknown>, line *) (glob)
87 86 doc/hgmanpage.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
88 87 hgext/acl.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
89 88 hgext/automv.py: error importing module: <SyntaxError> invalid syntax (commands.py, line *) (line *) (glob)
90 89 hgext/blackbox.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
91 90 hgext/bugzilla.py: error importing module: <ImportError> No module named 'urlparse' (line *) (glob)
92 91 hgext/censor.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
93 92 hgext/chgserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
94 93 hgext/children.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
95 94 hgext/churn.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
96 95 hgext/clonebundles.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
97 96 hgext/color.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
98 97 hgext/convert/bzr.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
99 98 hgext/convert/common.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
100 99 hgext/convert/convcmd.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
101 100 hgext/convert/cvs.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
102 101 hgext/convert/cvsps.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
103 102 hgext/convert/darcs.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
104 103 hgext/convert/filemap.py: error importing module: <SystemError> Parent module 'hgext.convert' not loaded, cannot perform relative import (line *) (glob)
105 104 hgext/convert/git.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
106 105 hgext/convert/gnuarch.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
107 106 hgext/convert/hg.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
108 107 hgext/convert/monotone.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
109 108 hgext/convert/p*.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
110 109 hgext/convert/subversion.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
111 110 hgext/convert/transport.py: error importing module: <ImportError> No module named 'svn.client' (line *) (glob)
112 111 hgext/eol.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
113 112 hgext/extdiff.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
114 113 hgext/factotum.py: error importing: <ImportError> No module named 'cStringIO' (error at url.py:*) (glob)
115 114 hgext/fetch.py: error importing module: <SyntaxError> invalid syntax (commands.py, line *) (line *) (glob)
116 115 hgext/fsmonitor/state.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
117 116 hgext/fsmonitor/watchmanclient.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
118 117 hgext/gpg.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
119 118 hgext/graphlog.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
120 119 hgext/hgcia.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
121 120 hgext/hgk.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
122 121 hgext/highlight/highlight.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
123 122 hgext/histedit.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
124 123 hgext/keyword.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
125 124 hgext/largefiles/basestore.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
126 125 hgext/largefiles/lfcommands.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
127 126 hgext/largefiles/lfutil.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
128 127 hgext/largefiles/localstore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
129 128 hgext/largefiles/overrides.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
130 129 hgext/largefiles/proto.py: error importing module: <ImportError> No module named 'urllib2' (line *) (glob)
131 130 hgext/largefiles/remotestore.py: error importing module: <ImportError> No module named 'urllib2' (line *) (glob)
132 131 hgext/largefiles/reposetup.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
133 132 hgext/largefiles/uisetup.py: error importing module: <SyntaxError> invalid syntax (archival.py, line *) (line *) (glob)
134 133 hgext/largefiles/wirestore.py: error importing module: <ImportError> No module named 'lfutil' (line *) (glob)
135 134 hgext/mq.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
136 135 hgext/notify.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
137 136 hgext/pager.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
138 137 hgext/patchbomb.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
139 138 hgext/purge.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
140 139 hgext/rebase.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
141 140 hgext/record.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
142 141 hgext/relink.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
143 142 hgext/schemes.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
144 143 hgext/share.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
145 144 hgext/shelve.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
146 145 hgext/strip.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
147 146 hgext/transplant.py: error importing: <SyntaxError> invalid syntax (bundle*.py, line *) (error at bundlerepo.py:*) (glob)
148 147 hgext/win*text.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
149 148 mercurial/archival.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
150 149 mercurial/bookmarks.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
151 150 mercurial/branchmap.py: error importing: <ImportError> No module named 'Queue' (error at scmutil.py:*) (glob)
152 151 mercurial/bundle*.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
153 152 mercurial/bundlerepo.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
154 153 mercurial/byterange.py: error importing module: <ImportError> No module named 'urllib2' (line *) (glob)
155 154 mercurial/changegroup.py: error importing: <ImportError> No module named 'Queue' (error at scmutil.py:*) (glob)
156 155 mercurial/changelog.py: error importing: <ImportError> No module named 'cStringIO' (error at mpatch.py:*) (glob)
157 156 mercurial/cmdutil.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
158 157 mercurial/commands.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
159 158 mercurial/commandserver.py: error importing module: <ImportError> No module named 'SocketServer' (line *) (glob)
160 159 mercurial/config.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
161 160 mercurial/context.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
162 161 mercurial/copies.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
163 162 mercurial/crecord.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
164 163 mercurial/destutil.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
165 164 mercurial/dirstate.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
166 165 mercurial/discovery.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
167 166 mercurial/dispatch.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
168 167 mercurial/exchange.py: error importing module: <ImportError> No module named 'urllib2' (line *) (glob)
169 168 mercurial/extensions.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
170 169 mercurial/filelog.py: error importing: <ImportError> No module named 'cStringIO' (error at mpatch.py:*) (glob)
171 170 mercurial/filemerge.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
172 171 mercurial/fileset.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
173 172 mercurial/formatter.py: error importing module: <ImportError> No module named 'cPickle' (line *) (glob)
174 173 mercurial/graphmod.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
175 174 mercurial/help.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
176 175 mercurial/hg.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
177 176 mercurial/hgweb/common.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
178 177 mercurial/hgweb/hgweb_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
179 178 mercurial/hgweb/hgwebdir_mod.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
180 179 mercurial/hgweb/protocol.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
181 180 mercurial/hgweb/request.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
182 181 mercurial/hgweb/server.py: error importing module: <ImportError> No module named 'BaseHTTPServer' (line *) (glob)
183 182 mercurial/hgweb/webcommands.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
184 183 mercurial/hgweb/webutil.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
185 184 mercurial/hgweb/wsgicgi.py: error importing module: <SystemError> Parent module 'mercurial.hgweb' not loaded, cannot perform relative import (line *) (glob)
186 185 mercurial/hook.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
187 186 mercurial/httpclient/_readers.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
188 187 mercurial/httpconnection.py: error importing module: <ImportError> No module named 'urllib2' (line *) (glob)
189 188 mercurial/httppeer.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
190 189 mercurial/keepalive.py: error importing module: <ImportError> No module named 'httplib' (line *) (glob)
191 190 mercurial/localrepo.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
192 191 mercurial/lock.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
193 192 mercurial/mail.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
194 193 mercurial/manifest.py: error importing: <ImportError> No module named 'cStringIO' (error at mpatch.py:*) (glob)
195 194 mercurial/match.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
196 195 mercurial/mdiff.py: error importing: <ImportError> No module named 'cStringIO' (error at mpatch.py:*) (glob)
197 196 mercurial/merge.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
198 197 mercurial/minirst.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
199 198 mercurial/namespaces.py: error importing: <ImportError> No module named 'cStringIO' (error at patch.py:*) (glob)
200 199 mercurial/obsolete.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
201 200 mercurial/patch.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
202 201 mercurial/pathutil.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
203 202 mercurial/peer.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
204 203 mercurial/pure/mpatch.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
205 204 mercurial/pure/parsers.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
206 205 mercurial/pushkey.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
207 206 mercurial/pvec.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
208 207 mercurial/registrar.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
209 208 mercurial/repair.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
210 209 mercurial/repoview.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
211 210 mercurial/revlog.py: error importing: <ImportError> No module named 'cStringIO' (error at mpatch.py:*) (glob)
212 211 mercurial/revset.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
213 212 mercurial/scmutil.py: error importing module: <ImportError> No module named 'Queue' (line *) (glob)
214 213 mercurial/scmwindows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
215 214 mercurial/similar.py: error importing: <ImportError> No module named 'cStringIO' (error at mpatch.py:*) (glob)
216 215 mercurial/simplemerge.py: error importing: <ImportError> No module named 'cStringIO' (error at mpatch.py:*) (glob)
217 216 mercurial/sshpeer.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
218 217 mercurial/sshserver.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
219 218 mercurial/sslutil.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
220 219 mercurial/statichttprepo.py: error importing module: <ImportError> No module named 'urllib2' (line *) (glob)
221 220 mercurial/store.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
222 221 mercurial/streamclone.py: error importing: <ImportError> No module named 'Queue' (error at scmutil.py:*) (glob)
223 222 mercurial/subrepo.py: error importing: <ImportError> No module named 'cStringIO' (error at cmdutil.py:*) (glob)
224 223 mercurial/tagmerge.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
225 224 mercurial/tags.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
226 225 mercurial/templatefilters.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
227 226 mercurial/templatekw.py: error importing: <ImportError> No module named 'cStringIO' (error at patch.py:*) (glob)
228 227 mercurial/templater.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
229 228 mercurial/transaction.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
230 229 mercurial/ui.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
231 230 mercurial/unionrepo.py: error importing: <ImportError> No module named 'cStringIO' (error at mpatch.py:*) (glob)
232 231 mercurial/url.py: error importing module: <ImportError> No module named 'cStringIO' (line *) (glob)
233 232 mercurial/util.py: error importing: <ImportError> No module named 'cStringIO' (error at parsers.py:*) (glob)
234 233 mercurial/verify.py: error importing: <ImportError> No module named 'cStringIO' (error at mpatch.py:*) (glob)
235 234 mercurial/win*.py: error importing module: <ImportError> No module named 'msvcrt' (line *) (glob)
236 235 mercurial/windows.py: error importing module: <ImportError> No module named '_winreg' (line *) (glob)
237 236 mercurial/wireproto.py: error importing module: <SyntaxError> invalid syntax (bundle*.py, line *) (line *) (glob)
238 237 tests/readlink.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
239 238 tests/test-demandimport.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
240 tests/test-hybridencode.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
241 239 tests/test-lrucachedict.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
242 240 tests/test-minirst.py: invalid syntax: Missing parentheses in call to 'print' (<unknown>, line *) (glob)
243 241 tests/test-parseindex*.py: invalid syntax: Missing parentheses in call to 'print' (<unknown>, line *) (glob)
244 242 tests/test-propertycache.py: invalid syntax: Missing parentheses in call to 'print' (<unknown>, line *) (glob)
245 243 tests/test-revlog-ancestry.py: invalid syntax: Missing parentheses in call to 'print' (<unknown>, line *) (glob)
246 244 tests/test-status-inprocess.py: invalid syntax: Missing parentheses in call to 'print' (<unknown>, line *) (glob)
247 245 tests/test-trusted.py: invalid syntax: invalid syntax (<unknown>, line *) (glob)
248 246
249 247 #endif
@@ -1,471 +1,471
1 from __future__ import absolute_import
1 from __future__ import absolute_import, print_function
2 2 from mercurial import (
3 3 store,
4 4 )
5 5
6 6 def show(s):
7 7 # show test input
8 print "A = '%s'" % s.encode("string_escape")
8 print("A = '%s'" % s.encode("string_escape"))
9 9
10 10 # show the result of the C implementation, if available
11 11 h = store._pathencode(s)
12 print "B = '%s'" % h.encode("string_escape")
12 print("B = '%s'" % h.encode("string_escape"))
13 13
14 14 # compare it with reference implementation in Python
15 15 r = store._hybridencode(s, True)
16 16 if h != r:
17 print "R = '%s'" % r.encode("string_escape")
18 print
17 print("R = '%s'" % r.encode("string_escape"))
18 print()
19 19
20 20 show("data/abcdefghijklmnopqrstuvwxyz0123456789 !#%&'()+,-.;=[]^`{}")
21 21
22 print "uppercase char X is encoded as _x"
22 print("uppercase char X is encoded as _x")
23 23 show("data/ABCDEFGHIJKLMNOPQRSTUVWXYZ")
24 24
25 print "underbar is doubled"
25 print("underbar is doubled")
26 26 show("data/_")
27 27
28 print "tilde is character-encoded"
28 print("tilde is character-encoded")
29 29 show("data/~")
30 30
31 print "characters in ASCII code range 1..31"
31 print("characters in ASCII code range 1..31")
32 32 show('data/\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f'
33 33 '\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f')
34 34
35 print "characters in ASCII code range 126..255"
35 print("characters in ASCII code range 126..255")
36 36 show('data/\x7e\x7f'
37 37 '\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f'
38 38 '\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f')
39 39 show('data/\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf'
40 40 '\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf')
41 41 show('data/\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf'
42 42 '\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf')
43 43 show('data/\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef'
44 44 '\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff')
45 45
46 print "Windows reserved characters"
46 print("Windows reserved characters")
47 47 show('data/less <, greater >, colon :, double-quote ", backslash \\'
48 48 ', pipe |, question-mark ?, asterisk *')
49 49
50 print "encoding directories ending in .hg, .i or .d with '.hg' suffix"
50 print("encoding directories ending in .hg, .i or .d with '.hg' suffix")
51 51 show('data/x.h.i/x.hg/x.i/x.d/foo')
52 52 show('data/a.hg/a.i/a.d/foo')
53 53 show('data/au.hg/au.i/au.d/foo')
54 54 show('data/aux.hg/aux.i/aux.d/foo')
55 55 show('data/auxy.hg/auxy.i/auxy.d/foo')
56 56
57 print "but these are not encoded on *filenames*"
57 print("but these are not encoded on *filenames*")
58 58 show('data/foo/x.hg')
59 59 show('data/foo/x.i')
60 60 show('data/foo/x.d')
61 61 show('data/foo/a.hg')
62 62 show('data/foo/a.i')
63 63 show('data/foo/a.d')
64 64 show('data/foo/au.hg')
65 65 show('data/foo/au.i')
66 66 show('data/foo/au.d')
67 67 show('data/foo/aux.hg')
68 68 show('data/foo/aux.i')
69 69 show('data/foo/aux.d')
70 70 show('data/foo/auxy.hg')
71 71 show('data/foo/auxy.i')
72 72 show('data/foo/auxy.d')
73 73
74 print "plain .hg, .i and .d directories have the leading dot encoded"
74 print("plain .hg, .i and .d directories have the leading dot encoded")
75 75 show('data/.hg/.i/.d/foo')
76 76
77 77 show('data/aux.bla/bla.aux/prn/PRN/lpt/com3/nul/coma/foo.NUL/normal.c.i')
78 78
79 79 show('data/AUX/SECOND/X.PRN/FOURTH/FI:FTH/SIXTH/SEVENTH/EIGHTH/NINETH/'
80 80 'TENTH/ELEVENTH/LOREMIPSUM.TXT.i')
81 81 show('data/enterprise/openesbaddons/contrib-imola/corba-bc/netbeansplugin/'
82 82 'wsdlExtension/src/main/java/META-INF/services/org.netbeans.modules'
83 83 '.xml.wsdl.bindingsupport.spi.ExtensibilityElementTemplateProvider.i')
84 84 show('data/AUX.THE-QUICK-BROWN-FOX-JU:MPS-OVER-THE-LAZY-DOG-THE-QUICK-'
85 85 'BROWN-FOX-JUMPS-OVER-THE-LAZY-DOG.TXT.i')
86 86 show('data/Project Planning/Resources/AnotherLongDirectoryName/'
87 87 'Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt')
88 88 show('data/Project.Planning/Resources/AnotherLongDirectoryName/'
89 89 'Followedbyanother/AndAnother/AndThenAnExtremelyLongFileName.txt')
90 90 show('data/foo.../foo / /a./_. /__/.x../ bla/.FOO/something.i')
91 91
92 92 show('data/c/co/com/com0/com1/com2/com3/com4/com5/com6/com7/com8/com9')
93 93 show('data/C/CO/COM/COM0/COM1/COM2/COM3/COM4/COM5/COM6/COM7/COM8/COM9')
94 94 show('data/c.x/co.x/com.x/com0.x/com1.x/com2.x/com3.x/com4.x/com5.x'
95 95 '/com6.x/com7.x/com8.x/com9.x')
96 96 show('data/x.c/x.co/x.com0/x.com1/x.com2/x.com3/x.com4/x.com5'
97 97 '/x.com6/x.com7/x.com8/x.com9')
98 98 show('data/cx/cox/comx/com0x/com1x/com2x/com3x/com4x/com5x'
99 99 '/com6x/com7x/com8x/com9x')
100 100 show('data/xc/xco/xcom0/xcom1/xcom2/xcom3/xcom4/xcom5'
101 101 '/xcom6/xcom7/xcom8/xcom9')
102 102
103 103 show('data/l/lp/lpt/lpt0/lpt1/lpt2/lpt3/lpt4/lpt5/lpt6/lpt7/lpt8/lpt9')
104 104 show('data/L/LP/LPT/LPT0/LPT1/LPT2/LPT3/LPT4/LPT5/LPT6/LPT7/LPT8/LPT9')
105 105 show('data/l.x/lp.x/lpt.x/lpt0.x/lpt1.x/lpt2.x/lpt3.x/lpt4.x/lpt5.x'
106 106 '/lpt6.x/lpt7.x/lpt8.x/lpt9.x')
107 107 show('data/x.l/x.lp/x.lpt/x.lpt0/x.lpt1/x.lpt2/x.lpt3/x.lpt4/x.lpt5'
108 108 '/x.lpt6/x.lpt7/x.lpt8/x.lpt9')
109 109 show('data/lx/lpx/lptx/lpt0x/lpt1x/lpt2x/lpt3x/lpt4x/lpt5x'
110 110 '/lpt6x/lpt7x/lpt8x/lpt9x')
111 111 show('data/xl/xlp/xlpt/xlpt0/xlpt1/xlpt2/xlpt3/xlpt4/xlpt5'
112 112 '/xlpt6/xlpt7/xlpt8/xlpt9')
113 113
114 114 show('data/con/p/pr/prn/a/au/aux/n/nu/nul')
115 115 show('data/CON/P/PR/PRN/A/AU/AUX/N/NU/NUL')
116 116 show('data/con.x/p.x/pr.x/prn.x/a.x/au.x/aux.x/n.x/nu.x/nul.x')
117 117 show('data/x.con/x.p/x.pr/x.prn/x.a/x.au/x.aux/x.n/x.nu/x.nul')
118 118 show('data/conx/px/prx/prnx/ax/aux/auxx/nx/nux/nulx')
119 119 show('data/xcon/xp/xpr/xprn/xa/xau/xaux/xn/xnu/xnul')
120 120
121 121 show('data/a./au./aux./auxy./aux.')
122 122 show('data/c./co./con./cony./con.')
123 123 show('data/p./pr./prn./prny./prn.')
124 124 show('data/n./nu./nul./nuly./nul.')
125 125 show('data/l./lp./lpt./lpt1./lpt1y./lpt1.')
126 126 show('data/lpt9./lpt9y./lpt9.')
127 127 show('data/com./com1./com1y./com1.')
128 128 show('data/com9./com9y./com9.')
129 129
130 130 show('data/a /au /aux /auxy /aux ')
131 131
132 print "largest unhashed path"
132 print("largest unhashed path")
133 133 show('data/123456789-123456789-123456789-123456789-123456789-'
134 134 'unhashed--xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
135 135 '123456789-12345')
136 136
137 print "shortest hashed path"
137 print("shortest hashed path")
138 138 show('data/123456789-123456789-123456789-123456789-123456789-'
139 139 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
140 140 '123456789-123456')
141 141
142 print "changing one char in part that's hashed away produces a different hash"
142 print("changing one char in part that's hashed away produces a different hash")
143 143 show('data/123456789-123456789-123456789-123456789-123456789-'
144 144 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxy-'
145 145 '123456789-123456')
146 146
147 print "uppercase hitting length limit due to encoding"
147 print("uppercase hitting length limit due to encoding")
148 148 show('data/A23456789-123456789-123456789-123456789-123456789-'
149 149 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
150 150 '123456789-12345')
151 151 show('data/Z23456789-123456789-123456789-123456789-123456789-'
152 152 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
153 153 '123456789-12345')
154 154
155 print "compare with lowercase not hitting limit"
155 print("compare with lowercase not hitting limit")
156 156 show('data/a23456789-123456789-123456789-123456789-123456789-'
157 157 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
158 158 '123456789-12345')
159 159 show('data/z23456789-123456789-123456789-123456789-123456789-'
160 160 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
161 161 '123456789-12345')
162 162
163 print "not hitting limit with any of these"
163 print("not hitting limit with any of these")
164 164 show("data/abcdefghijklmnopqrstuvwxyz0123456789 !#%&'()+,-.;="
165 165 "[]^`{}xxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-"
166 166 "123456789-12345")
167 167
168 print "underbar hitting length limit due to encoding"
168 print("underbar hitting length limit due to encoding")
169 169 show('data/_23456789-123456789-123456789-123456789-123456789-'
170 170 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
171 171 '123456789-12345')
172 172
173 print "tilde hitting length limit due to encoding"
173 print("tilde hitting length limit due to encoding")
174 174 show('data/~23456789-123456789-123456789-123456789-123456789-'
175 175 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
176 176 '123456789-12345')
177 177
178 print "Windows reserved characters hitting length limit"
178 print("Windows reserved characters hitting length limit")
179 179 show('data/<23456789-123456789-123456789-123456789-123456789-'
180 180 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
181 181 '123456789-12345')
182 182 show('data/>23456789-123456789-123456789-123456789-123456789-'
183 183 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
184 184 '123456789-12345')
185 185 show('data/:23456789-123456789-123456789-123456789-123456789-'
186 186 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
187 187 '123456789-12345')
188 188 show('data/"23456789-123456789-123456789-123456789-123456789-'
189 189 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
190 190 '123456789-12345')
191 191 show('data/\\23456789-123456789-123456789-123456789-123456789-'
192 192 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
193 193 '123456789-12345')
194 194 show('data/|23456789-123456789-123456789-123456789-123456789-'
195 195 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
196 196 '123456789-12345')
197 197 show('data/?23456789-123456789-123456789-123456789-123456789-'
198 198 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
199 199 '123456789-12345')
200 200 show('data/*23456789-123456789-123456789-123456789-123456789-'
201 201 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
202 202 '123456789-12345')
203 203
204 print "initial space hitting length limit"
204 print("initial space hitting length limit")
205 205 show('data/ 23456789-123456789-123456789-123456789-123456789-'
206 206 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
207 207 '123456789-12345')
208 208
209 print "initial dot hitting length limit"
209 print("initial dot hitting length limit")
210 210 show('data/.23456789-123456789-123456789-123456789-123456789-'
211 211 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
212 212 '123456789-12345')
213 213
214 print "trailing space in filename hitting length limit"
214 print("trailing space in filename hitting length limit")
215 215 show('data/123456789-123456789-123456789-123456789-123456789-'
216 216 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
217 217 '123456789-1234 ')
218 218
219 print "trailing dot in filename hitting length limit"
219 print("trailing dot in filename hitting length limit")
220 220 show('data/123456789-123456789-123456789-123456789-123456789-'
221 221 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
222 222 '123456789-1234.')
223 223
224 print "initial space in directory hitting length limit"
224 print("initial space in directory hitting length limit")
225 225 show('data/ x/456789-123456789-123456789-123456789-123456789-'
226 226 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
227 227 '123456789-12345')
228 228
229 print "initial dot in directory hitting length limit"
229 print("initial dot in directory hitting length limit")
230 230 show('data/.x/456789-123456789-123456789-123456789-123456789-'
231 231 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
232 232 '123456789-12345')
233 233
234 print "trailing space in directory hitting length limit"
234 print("trailing space in directory hitting length limit")
235 235 show('data/x /456789-123456789-123456789-123456789-123456789-'
236 236 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
237 237 '123456789-12345')
238 238
239 print "trailing dot in directory hitting length limit"
239 print("trailing dot in directory hitting length limit")
240 240 show('data/x./456789-123456789-123456789-123456789-123456789-'
241 241 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
242 242 '123456789-12345')
243 243
244 print "with directories that need direncoding, hitting length limit"
244 print("with directories that need direncoding, hitting length limit")
245 245 show('data/x.i/56789-123456789-123456789-123456789-123456789-'
246 246 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
247 247 '123456789-12345')
248 248 show('data/x.d/56789-123456789-123456789-123456789-123456789-'
249 249 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
250 250 '123456789-12345')
251 251 show('data/x.hg/5789-123456789-123456789-123456789-123456789-'
252 252 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
253 253 '123456789-12345')
254 254
255 print "Windows reserved filenames, hitting length limit"
255 print("Windows reserved filenames, hitting length limit")
256 256 show('data/con/56789-123456789-123456789-123456789-123456789-'
257 257 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
258 258 '123456789-12345')
259 259 show('data/prn/56789-123456789-123456789-123456789-123456789-'
260 260 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
261 261 '123456789-12345')
262 262 show('data/aux/56789-123456789-123456789-123456789-123456789-'
263 263 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
264 264 '123456789-12345')
265 265 show('data/nul/56789-123456789-123456789-123456789-123456789-'
266 266 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
267 267 '123456789-12345')
268 268 show('data/com1/6789-123456789-123456789-123456789-123456789-'
269 269 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
270 270 '123456789-12345')
271 271 show('data/com9/6789-123456789-123456789-123456789-123456789-'
272 272 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
273 273 '123456789-12345')
274 274 show('data/lpt1/6789-123456789-123456789-123456789-123456789-'
275 275 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
276 276 '123456789-12345')
277 277 show('data/lpt9/6789-123456789-123456789-123456789-123456789-'
278 278 'xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
279 279 '123456789-12345')
280 280
281 print "non-reserved names, just not hitting limit"
281 print("non-reserved names, just not hitting limit")
282 282 show('data/123456789-123456789-123456789-123456789-123456789-'
283 283 '/com/com0/lpt/lpt0/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
284 284 '123456789-12345')
285 285
286 print "hashed path with largest untruncated 1st dir"
286 print("hashed path with largest untruncated 1st dir")
287 287 show('data/12345678/-123456789-123456789-123456789-123456789-'
288 288 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
289 289 '123456789-123456')
290 290
291 print "hashed path with smallest truncated 1st dir"
291 print("hashed path with smallest truncated 1st dir")
292 292 show('data/123456789/123456789-123456789-123456789-123456789-'
293 293 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
294 294 '123456789-123456')
295 295
296 print "hashed path with largest untruncated two dirs"
296 print("hashed path with largest untruncated two dirs")
297 297 show('data/12345678/12345678/9-123456789-123456789-123456789-'
298 298 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
299 299 '123456789-123456')
300 300
301 print "hashed path with smallest truncated two dirs"
301 print("hashed path with smallest truncated two dirs")
302 302 show('data/123456789/123456789/123456789-123456789-123456789-'
303 303 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
304 304 '123456789-123456')
305 305
306 print "hashed path with largest untruncated three dirs"
306 print("hashed path with largest untruncated three dirs")
307 307 show('data/12345678/12345678/12345678/89-123456789-123456789-'
308 308 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
309 309 '123456789-123456')
310 310
311 print "hashed path with smallest truncated three dirs"
311 print("hashed path with smallest truncated three dirs")
312 312 show('data/123456789/123456789/123456789/123456789-123456789-'
313 313 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
314 314 '123456789-123456')
315 315
316 print "hashed path with largest untruncated four dirs"
316 print("hashed path with largest untruncated four dirs")
317 317 show('data/12345678/12345678/12345678/12345678/789-123456789-'
318 318 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
319 319 '123456789-123456')
320 320
321 print "hashed path with smallest truncated four dirs"
321 print("hashed path with smallest truncated four dirs")
322 322 show('data/123456789/123456789/123456789/123456789/123456789-'
323 323 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
324 324 '123456789-123456')
325 325
326 print "hashed path with largest untruncated five dirs"
326 print("hashed path with largest untruncated five dirs")
327 327 show('data/12345678/12345678/12345678/12345678/12345678/6789-'
328 328 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
329 329 '123456789-123456')
330 330
331 print "hashed path with smallest truncated five dirs"
331 print("hashed path with smallest truncated five dirs")
332 332 show('data/123456789/123456789/123456789/123456789/123456789/'
333 333 'hashed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
334 334 '123456789-123456')
335 335
336 print "hashed path with largest untruncated six dirs"
336 print("hashed path with largest untruncated six dirs")
337 337 show('data/12345678/12345678/12345678/12345678/12345678/12345'
338 338 '678/ed----xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
339 339 '123456789-123456')
340 340
341 print "hashed path with smallest truncated six dirs"
341 print("hashed path with smallest truncated six dirs")
342 342 show('data/123456789/123456789/123456789/123456789/123456789/'
343 343 '123456789/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
344 344 '123456789-123456')
345 345
346 print "hashed path with largest untruncated seven dirs"
346 print("hashed path with largest untruncated seven dirs")
347 347 show('data/12345678/12345678/12345678/12345678/12345678/12345'
348 348 '678/12345678/xxxxxx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
349 349 '123456789-123456')
350 350
351 print "hashed path with smallest truncated seven dirs"
351 print("hashed path with smallest truncated seven dirs")
352 352 show('data/123456789/123456789/123456789/123456789/123456789/'
353 353 '123456789/123456789/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
354 354 '123456789-123456')
355 355
356 print "hashed path with largest untruncated eight dirs"
357 print "(directory 8 is dropped because it hits _maxshortdirslen)"
356 print("hashed path with largest untruncated eight dirs")
357 print("(directory 8 is dropped because it hits _maxshortdirslen)")
358 358 show('data/12345678/12345678/12345678/12345678/12345678/12345'
359 359 '678/12345678/12345678/xxxxxxx-xxxxxxxxx-xxxxxxxxx-'
360 360 '123456789-123456')
361 361
362 print "hashed path with smallest truncated eight dirs"
363 print "(directory 8 is dropped because it hits _maxshortdirslen)"
362 print("hashed path with smallest truncated eight dirs")
363 print("(directory 8 is dropped because it hits _maxshortdirslen)")
364 364 show('data/123456789/123456789/123456789/123456789/123456789/'
365 365 '123456789/123456789/123456789/xxxxxxxxx-xxxxxxxxx-'
366 366 '123456789-123456')
367 367
368 print "hashed path with largest non-dropped directory 8"
369 print "(just not hitting the _maxshortdirslen boundary)"
368 print("hashed path with largest non-dropped directory 8")
369 print("(just not hitting the _maxshortdirslen boundary)")
370 370 show('data/12345678/12345678/12345678/12345678/12345678/12345'
371 371 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
372 372 '123456789-123456')
373 373
374 print "...adding one truncated char to dir 1..7 won't drop dir 8"
374 print("...adding one truncated char to dir 1..7 won't drop dir 8")
375 375 show('data/12345678x/12345678/12345678/12345678/12345678/12345'
376 376 '678/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
377 377 '123456789-123456')
378 378 show('data/12345678/12345678x/12345678/12345678/12345678/12345'
379 379 '678/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
380 380 '123456789-123456')
381 381 show('data/12345678/12345678/12345678x/12345678/12345678/12345'
382 382 '678/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
383 383 '123456789-123456')
384 384 show('data/12345678/12345678/12345678/12345678x/12345678/12345'
385 385 '678/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
386 386 '123456789-123456')
387 387 show('data/12345678/12345678/12345678/12345678/12345678x/12345'
388 388 '678/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
389 389 '123456789-123456')
390 390 show('data/12345678/12345678/12345678/12345678/12345678/12345'
391 391 '678x/12345678/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
392 392 '123456789-123456')
393 393 show('data/12345678/12345678/12345678/12345678/12345678/12345'
394 394 '678/12345678x/12345/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
395 395 '123456789-123456')
396 396
397 print "hashed path with shortest dropped directory 8"
398 print "(just hitting the _maxshortdirslen boundary)"
397 print("hashed path with shortest dropped directory 8")
398 print("(just hitting the _maxshortdirslen boundary)")
399 399 show('data/12345678/12345678/12345678/12345678/12345678/12345'
400 400 '678/12345678/123456/xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
401 401 '123456789-123456')
402 402
403 print "hashed path that drops dir 8 due to dot or space at end is"
404 print "encoded, and thus causing to hit _maxshortdirslen"
403 print("hashed path that drops dir 8 due to dot or space at end is")
404 print("encoded, and thus causing to hit _maxshortdirslen")
405 405 show('data/12345678/12345678/12345678/12345678/12345678/12345'
406 406 '678/12345678/1234./-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
407 407 '123456789-123456')
408 408 show('data/12345678/12345678/12345678/12345678/12345678/12345'
409 409 '678/12345678/1234 /-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
410 410 '123456789-123456')
411 411
412 print "... with dir 8 short enough for encoding"
412 print("... with dir 8 short enough for encoding")
413 413 show('data/12345678/12345678/12345678/12345678/12345678/12345'
414 414 '678/12345678/12./xx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
415 415 '123456789-123456')
416 416 show('data/12345678/12345678/12345678/12345678/12345678/12345'
417 417 '678/12345678/12 /xx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
418 418 '123456789-123456')
419 419
420 print '''Extensions are replicated on hashed paths. Note that
420 print('''Extensions are replicated on hashed paths. Note that
421 421 we only get to encode files that end in .i or .d inside the
422 store. Encoded filenames are thus bound in length.'''
422 store. Encoded filenames are thus bound in length.''')
423 423 show('data/12345678/12345678/12345678/12345678/12345678/12345'
424 424 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
425 425 '123456789-12.345.i')
426 426 show('data/12345678/12345678/12345678/12345678/12345678/12345'
427 427 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
428 428 '123456789-12.345.d')
429 429 show('data/12345678/12345678/12345678/12345678/12345678/12345'
430 430 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
431 431 '123456789-12.3456.i')
432 432 show('data/12345678/12345678/12345678/12345678/12345678/12345'
433 433 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
434 434 '123456789-12.34567.i')
435 435 show('data/12345678/12345678/12345678/12345678/12345678/12345'
436 436 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
437 437 '123456789-12.345678.i')
438 438 show('data/12345678/12345678/12345678/12345678/12345678/12345'
439 439 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
440 440 '123456789-12.3456789.i')
441 441 show('data/12345678/12345678/12345678/12345678/12345678/12345'
442 442 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
443 443 '123456789-12.3456789-.i')
444 444 show('data/12345678/12345678/12345678/12345678/12345678/12345'
445 445 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
446 446 '123456789-12.3456789-1.i')
447 447 show('data/12345678/12345678/12345678/12345678/12345678/12345'
448 448 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
449 449 '123456789-12.3456789-12.i')
450 450 show('data/12345678/12345678/12345678/12345678/12345678/12345'
451 451 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
452 452 '123456789-12.3456789-123.i')
453 453 show('data/12345678/12345678/12345678/12345678/12345678/12345'
454 454 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
455 455 '123456789-12.3456789-1234.i')
456 456 show('data/12345678/12345678/12345678/12345678/12345678/12345'
457 457 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
458 458 '123456789-12.3456789-12345.i')
459 459 show('data/12345678/12345678/12345678/12345678/12345678/12345'
460 460 '678/12345678/12345/-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-'
461 461 '123456789-12.3456789-12345-ABCDEFGHIJKLMNOPRSTUVWX'
462 462 'YZ-abcdefghjiklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPRSTU'
463 463 'VWXYZ-1234567890-xxxxxxxxx-xxxxxxxxx-xxxxxxxx-xxxx'
464 464 'xxxxx-wwwwwwwww-wwwwwwwww-wwwwwwwww-wwwwwwwww-wwww'
465 465 'wwwww-wwwwwwwww-wwwwwwwww-wwwwwwwww-wwwwwwwww.i')
466 466
467 print "paths outside data/ can be encoded"
467 print("paths outside data/ can be encoded")
468 468 show('metadata/dir/00manifest.i')
469 469 show('metadata/12345678/12345678/12345678/12345678/12345678/'
470 470 '12345678/12345678/12345678/12345678/12345678/12345678/'
471 471 '12345678/12345678/00manifest.i')
General Comments 0
You need to be logged in to leave comments. Login now