##// END OF EJS Templates
posix: always seek to EOF when opening a file in append mode...
posix: always seek to EOF when opening a file in append mode Python 3 already does this, so skip it there. Consider the program: #include <stdio.h> int main() { FILE *f = fopen("narf", "w"); fprintf(f, "narf\n"); fclose(f); f = fopen("narf", "a"); printf("%ld\n", ftell(f)); fprintf(f, "troz\n"); printf("%ld\n", ftell(f)); return 0; } on macOS, FreeBSD, and Linux with glibc, this program prints 5 10 but on musl libc (Alpine Linux and probably others) this prints 0 10 By my reading of https://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html this is technically correct, specifically: > Opening a file with append mode (a as the first character in the > mode argument) shall cause all subsequent writes to the file to be > forced to the then current end-of-file, regardless of intervening > calls to fseek(). in other words, the file position doesn't really matter in append-mode files, and we can't depend on it being at all meaningful unless we perform a seek() before tell() after open(..., 'a'). Experimentally after a .write() we can do a .tell() and it'll always be reasonable, but I'm unclear from reading the specification if that's a smart thing to rely on. This matches what we do on Windows and what Python 3 does for free, so let's just be consistent. Thanks to Yuya for the idea.

File last commit:

r41388:73ccba60 default
r42778:97ada9b8 5.0.2 stable
Show More
test-trusted.py.out
195 lines | 4.6 KiB | text/plain | TextLexer
/ tests / test-trusted.py.out
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 # same user, same group
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# same user, different group
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# different user, same group
Martin Geisler
ui: lowercase "not trusting file" warning message
r16939 not trusting file .hg/hgrc from untrusted user abc, group bar
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# different user, same group, but we trust the group
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# different user, different group
Martin Geisler
ui: lowercase "not trusting file" warning message
r16939 not trusting file .hg/hgrc from untrusted user abc, group def
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# different user, different group, but we trust the user
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# different user, different group, but we trust the group
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# different user, different group, but we trust the user and the group
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# we trust all users
# different user, different group
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# we trust all groups
# different user, different group
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# we trust all users and groups
# different user, different group
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# we don't get confused by users and groups with the same name
# different user, different group
Martin Geisler
ui: lowercase "not trusting file" warning message
r16939 not trusting file .hg/hgrc from untrusted user abc, group def
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# list of user names
# different user, different group, but we trust the user
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# list of group names
# different user, different group, but we trust the group
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
# Can't figure out the name of the user running this process
# different user, different group
Martin Geisler
ui: lowercase "not trusting file" warning message
r16939 not trusting file .hg/hgrc from untrusted user abc, group def
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551 global = /some/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 untrusted
. . global = /some/path
. . local = /another/path
Alexis S. L. Carvalho
Only read .hg/hgrc files from trusted users/groups...
r3551
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 # prints debug warnings
# different user, different group
Martin Geisler
ui: lowercase "not trusting file" warning message
r16939 not trusting file .hg/hgrc from untrusted user abc, group def
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted
Matt Mackall
ui: report_untrusted fixes...
r8204 ignoring untrusted configuration option paths.local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 global = /some/path
untrusted
. . global = /some/path
Pulkit Goyal
tests: make test-trusted use print_function...
r28934 . ignoring untrusted configuration option paths.local = /another/path
Matt Mackall
ui: report_untrusted fixes...
r8204 . local = /another/path
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552
Ry4an Brase
ui: always report untrusted hgrc files when debug enabled...
r13493 # report_untrusted enabled without debug hides warnings
# different user, different group
trusted
global = /some/path
untrusted
. . global = /some/path
. . local = /another/path
# report_untrusted enabled with debug shows warnings
# different user, different group
Martin Geisler
ui: lowercase "not trusting file" warning message
r16939 not trusting file .hg/hgrc from untrusted user abc, group def
Ry4an Brase
ui: always report untrusted hgrc files when debug enabled...
r13493 trusted
ignoring untrusted configuration option paths.local = /another/path
global = /some/path
untrusted
. . global = /some/path
Pulkit Goyal
tests: make test-trusted use print_function...
r28934 . ignoring untrusted configuration option paths.local = /another/path
Ry4an Brase
ui: always report untrusted hgrc files when debug enabled...
r13493 . local = /another/path
Matt Mackall
ui: fold readsections into readconfig...
r8142 # ui.readconfig sections
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 quux
# read trusted, untrusted, new ui, trusted
Martin Geisler
ui: lowercase "not trusting file" warning message
r16939 not trusting file foobar from untrusted user abc, group def
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 trusted:
Matt Mackall
ui: report_untrusted fixes...
r8204 ignoring untrusted configuration option foobar.baz = quux
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 None
untrusted:
quux
# error handling
# file doesn't exist
# same user, same group
# different user, different group
# parse error
# different user, different group
Martin Geisler
ui: lowercase "not trusting file" warning message
r16939 not trusting file .hg/hgrc from untrusted user abc, group def
Augie Fackler
py3: almost fix test-trusted.py...
r41388 ParseError('foo', '.hg/hgrc:1')
Alexis S. L. Carvalho
save settings from untrusted config files in a separate configparser...
r3552 # same user, same group
Augie Fackler
py3: almost fix test-trusted.py...
r41388 ParseError('foo', '.hg/hgrc:1')
Martijn Pieters
config: honour the trusted flag in ui.configbytes
r31472
# access typed information
# different user, different group
not trusting file .hg/hgrc from untrusted user abc, group def
# suboptions, trusted and untrusted
(None, []) ('main', [('one', 'one'), ('two', 'two')])
# path, trusted and untrusted
None .hg/monty/python
# bool, trusted and untrusted
False True
# int, trusted and untrusted
0 42
# bytes, trusted and untrusted
0 84934656
# list, trusted and untrusted
[] ['spam', 'ham', 'eggs']