From: "Øyvind A. Holm" <sunny@sunbase.org>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: "Git mailing list" <git@vger.kernel.org>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>
Subject: Re: t1308-config-set.sh fails on current master
Date: Wed, 14 Jun 2017 04:17:40 +0200 [thread overview]
Message-ID: <20170614021739.erkdifufziwiqjxp@sunbase.org> (raw)
In-Reply-To: <20170614012535.GU133952@aiede.mtv.corp.google.com>
[-- Attachment #1: Type: text/plain, Size: 14002 bytes --]
Hi, Jonathan, thanks for having a look at this.
On 2017-06-13 18:25:35, Jonathan Nieder wrote:
> Øyvind A. Holm wrote:
> > t1308-config-set.sh fails on current master
> > (v2.13.1-449-g02a2850ad58e). The error is introduced by commit
> > e2d90fd1c33a ("config.mak.uname: set FREAD_READS_DIRECTORIES for
> > Linux and FreeBSD"). Reverting the commit results in a conflict, but
> > the test works on the commit before, 02912f477586.
> >
> > Tested on
> >
> > Debian GNU/Linux 8.8 (jessie)
> > Linux Mint 18 Sarah
>
> Interesting. I'm not able to reproduce it, but of course that doesn't
> mean much.
I'll admit that I have a somewhat special build system, but it's been
working great since I created it 7 months ago, and I run the test suite
every time I install a new git. I'm using the Makefile located at
https://gitlab.com/sunny256/src-other/blob/master/devel/git/Makefile
It's only doing regular stuff like "make configure", "./configure", etc,
but I'm mentioning it in case the Makefile reveals something
interesting. The git installation is in a non-standard location, the
newest version of git I've installed is for example located under
/usr/src-other/pool/git.master.v2.13.1-394-g41dd4330a121/ .
> What is the output of the following command?
>
> ./t1308-config-set.sh --run=1,23 -x -v -i
Initialized empty Git repository in /home/sunny/src/git/src-other/devel/git/git/t/trash directory.t1308-config-set/.git/
expecting success:
cat >.git/config <<-\EOF
[case]
penguin = very blue
Movie = BadPhysics
UPPERCASE = true
MixedCase = true
my =
foo
baz = sam
[Cores]
WhatEver = Second
baz = bar
[cores]
baz = bat
[CORES]
baz = ball
[my "Foo bAr"]
hi = mixed-case
[my "FOO BAR"]
hi = upper-case
[my "foo bar"]
hi = lower-case
[case]
baz = bat
baz = hask
[lamb]
chop = 65
head = none
[goat]
legs = 4
head = true
skin = false
nose = 1
horns
EOF
+ cat
ok 1 - setup default config
skipping test: get value for a simple key
check_config get_value case.penguin "very blue"
ok 2 # skip get value for a simple key (--run)
skipping test: get value for a key with value as an empty string
check_config get_value case.my ""
ok 3 # skip get value for a key with value as an empty string (--run)
skipping test: get value for a key with value as NULL
check_config get_value case.foo "(NULL)"
ok 4 # skip get value for a key with value as NULL (--run)
skipping test: upper case key
check_config get_value case.UPPERCASE "true" &&
check_config get_value case.uppercase "true"
ok 5 # skip upper case key (--run)
skipping test: mixed case key
check_config get_value case.MixedCase "true" &&
check_config get_value case.MIXEDCASE "true" &&
check_config get_value case.mixedcase "true"
ok 6 # skip mixed case key (--run)
skipping test: key and value with mixed case
check_config get_value case.Movie "BadPhysics"
ok 7 # skip key and value with mixed case (--run)
skipping test: key with case sensitive subsection
check_config get_value "my.Foo bAr.hi" "mixed-case" &&
check_config get_value "my.FOO BAR.hi" "upper-case" &&
check_config get_value "my.foo bar.hi" "lower-case"
ok 8 # skip key with case sensitive subsection (--run)
skipping test: key with case insensitive section header
check_config get_value cores.baz "ball" &&
check_config get_value Cores.baz "ball" &&
check_config get_value CORES.baz "ball" &&
check_config get_value coreS.baz "ball"
ok 9 # skip key with case insensitive section header (--run)
skipping test: key with case insensitive section header & variable
check_config get_value CORES.BAZ "ball" &&
check_config get_value cores.baz "ball" &&
check_config get_value cores.BaZ "ball" &&
check_config get_value cOreS.bAz "ball"
ok 10 # skip key with case insensitive section header & variable (--run)
skipping test: find value with misspelled key
check_config expect_code 1 get_value "my.fOo Bar.hi" "Value not found for \"my.fOo Bar.hi\""
ok 11 # skip find value with misspelled key (--run)
skipping test: find value with the highest priority
check_config get_value case.baz "hask"
ok 12 # skip find value with the highest priority (--run)
skipping test: find integer value for a key
check_config get_int lamb.chop 65
ok 13 # skip find integer value for a key (--run)
skipping test: find string value for a key
check_config get_string case.baz hask &&
check_config expect_code 1 get_string case.ba "Value not found for \"case.ba\""
ok 14 # skip find string value for a key (--run)
skipping test: check line error when NULL string is queried
test_expect_code 128 test-config get_string case.foo 2>result &&
test_i18ngrep "fatal: .*case\.foo.*\.git/config.*line 7" result
ok 15 # skip check line error when NULL string is queried (--run)
skipping test: find integer if value is non parse-able
check_config expect_code 128 get_int lamb.head
ok 16 # skip find integer if value is non parse-able (--run)
skipping test: find bool value for the entered key
check_config get_bool goat.head 1 &&
check_config get_bool goat.skin 0 &&
check_config get_bool goat.nose 1 &&
check_config get_bool goat.horns 1 &&
check_config get_bool goat.legs 1
ok 17 # skip find bool value for the entered key (--run)
skipping test: find multiple values
check_config get_value_multi case.baz sam bat hask
ok 18 # skip find multiple values (--run)
skipping test: find value from a configset
cat >config2 <<-\EOF &&
[case]
baz = lama
[my]
new = silk
[case]
baz = ball
EOF
echo silk >expect &&
test-config configset_get_value my.new config2 .git/config >actual &&
test_cmp expect actual
ok 19 # skip find value from a configset (--run)
skipping test: find value with highest priority from a configset
echo hask >expect &&
test-config configset_get_value case.baz config2 .git/config >actual &&
test_cmp expect actual
ok 20 # skip find value with highest priority from a configset (--run)
skipping test: find value_list for a key from a configset
cat >except <<-\EOF &&
sam
bat
hask
lama
ball
EOF
test-config configset_get_value case.baz config2 .git/config >actual &&
test_cmp expect actual
ok 21 # skip find value_list for a key from a configset (--run)
skipping test: proper error on non-existent files
echo "Error (-1) reading configuration file non-existent-file." >expect &&
test_expect_code 2 test-config configset_get_value foo.bar non-existent-file 2>actual &&
test_cmp expect actual
ok 22 # skip proper error on non-existent files (--run)
expecting success:
echo "Error (-1) reading configuration file a-directory." >expect &&
mkdir a-directory &&
test_expect_code 2 test-config configset_get_value foo.bar a-directory 2>output &&
grep "^warning:" output &&
grep "^Error" output >actual &&
test_cmp expect actual
+ echo Error (-1) reading configuration file a-directory.
+ mkdir a-directory
+ test_expect_code 2 test-config configset_get_value foo.bar a-directory
Value not found for "foo.bar"
error: last command exited with $?=1
not ok 23 - proper error on directory "files"
#
# echo "Error (-1) reading configuration file a-directory." >expect &&
# mkdir a-directory &&
# test_expect_code 2 test-config configset_get_value foo.bar a-directory 2>output &&
# grep "^warning:" output &&
# grep "^Error" output >actual &&
# test_cmp expect actual
#
> Other diagnostics:
>
> - what is the output of "env"?
GIT_PS1_SHOWDIRTYSTATE=1
SSH_AGENT_PID=22038
XDG_SESSION_ID=31
DSN=svn+ssh://sunny256@developer.skolelinux.no/repos
TERM=screen-256color-bce
SHELL=/bin/bash
SSH_CLIENT=37.253.243.58 43994 22
GL=git@gitlab.com:sunny256
LC_NUMERIC=C
OLDPWD=/home/sunny/src/git/src-other/devel/git/git
AFVROOT=/home/sunny/afvroot
GH=git@github.com:sunny256
LNS=sunny@sunbase.org:/home/sunny/src/git
SSH_TTY=/dev/pts/1
WHOIS_SERVER=whois.dotster.com
USER=sunny
HISTFILESIZE=10000000
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;37;41:ex=01;32:*.bat=01;32:*.btm=01;32:*.cmd=01;32:*.com=01;32:*.csh=01;32:*.exe=01;32:*.sh=01;32:*.Z=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cpio=01;31:*.deb=01;31:*.gz=01;31:*.lzh=01;31:*.rpm=01;31:*.tar=01;31:*.taz=01;31:*.tgz=01;31:*.tz=01;31:*.z=01;31:*.zip=01;31:*.avi=01;35:*.bmp=01;35:*.gif=01;35:*.jpg=01;35:*.mov=01;35:*.mpg=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.html=01;33:*.txt=01;33:*.utf8=01;33:*~=00;34:
MTOOLS_DATE_STRING=yyyy-mm-dd
MTOOLS_TWENTY_FOUR_HOUR_CLOCK=1
SSH_AUTH_SOCK=/tmp/ssh-VdBkCiAwUqdc/agent.22035
TERMCAP=SC|screen-256color-bce|VT 100/ANSI X3.64 virtual terminal:\
:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bs:bt=\E[Z:\
:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:ct=\E[3g:\
:do=^J:nd=\E[C:pt:rc=\E8:rs=\Ec:sc=\E7:st=\EH:up=\EM:\
:le=^H:bl=^G:cr=^M:it#8:ho=\E[H:nw=\EE:ta=^I:is=\E)0:\
:li#56:co#180:am:xn:xv:LP:sr=\EM:al=\E[L:AL=\E[%dL:\
:cs=\E[%i%d;%dr:dl=\E[M:DL=\E[%dM:dc=\E[P:DC=\E[%dP:\
:im=\E[4h:ei=\E[4l:mi:IC=\E[%d@:ks=\E[?1h\E=:\
:ke=\E[?1l\E>:vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l:\
:ti=\E[?1049h:te=\E[?1049l:us=\E[4m:ue=\E[24m:so=\E[3m:\
:se=\E[23m:mb=\E[5m:md=\E[1m:mh=\E[2m:mr=\E[7m:\
:me=\E[m:ms:\
:Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:\
:vb=\Eg:G0:as=\E(0:ae=\E(B:\
:ac=\140\140aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:\
:po=\E[5i:pf=\E[4i:Km=\E[M:k0=\E[10~:k1=\EOP:k2=\EOQ:\
:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:\
:k8=\E[19~:k9=\E[20~:k;=\E[21~:F1=\E[23~:F2=\E[24~:\
:F3=\E[1;2P:F4=\E[1;2Q:F5=\E[1;2R:F6=\E[1;2S:\
:F7=\E[15;2~:F8=\E[17;2~:F9=\E[18;2~:FA=\E[19;2~:kb=\x7f:\
:K2=\EOE:kB=\E[Z:kF=\E[1;2B:kR=\E[1;2A:*4=\E[3;2~:\
:*7=\E[1;2F:#2=\E[1;2H:#3=\E[2;2~:#4=\E[1;2D:%c=\E[6;2~:\
:%e=\E[5;2~:%i=\E[1;2C:kh=\E[1~:@1=\E[1~:kH=\E[4~:\
:@7=\E[4~:kN=\E[6~:kP=\E[5~:kI=\E[2~:kD=\E[3~:ku=\EOA:\
:kd=\EOB:kr=\EOC:kl=\EOD:km:
GR=sunny@sunbase.org:/home/sunny/repos/Git
PAGER=less -S
NCDU_SHELL=mc
PATH=/home/sunny/bin/Local/sunbase:/home/sunny/bin:/usr/src-other/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/src-other/prg/git/libexec/git-core:/opt/git-annex
MAIL=/home/sunny/mail/inbox
STY=21459.vanl
BC_ENV_ARGS=-l --quiet
LC_COLLATE=C
PP=git@github.com:piratpartiet
PWD=/home/sunny/src/git/src-other/devel/git/git/t
IRCSERVER=irc.homelien.no
MAILDIR=/home/sunny/mail
BMS=sunny@bellmann:/home/sunny/src/git
EDITOR=v
SESS_UUID=,bash_profile/cf9306e4-e476-11e6-ab83-db5caa6d21d3,screen/e9db0984-e476-11e6-b0ae-db5caa6d21d3,ssh-agent/fc7d8b3e-e476-11e6-8155-db5caa6d21d3,
LANG=en_GB.UTF-8
BB=git@bitbucket.org:sunny256
SUUID_LOGDIR=/home/sunny/uuids
TZ=CET
WHOIS_HIDE=1
SLX=svn+ssh://sunny256@svn.skolelinux.no/repos/skolelinux
SVN_SSH=ssh
PS1=\[\033[0m\033[1;33m\]$(date +"%Y-%m-%d %T") \[\033[01;31m\]\u\[\033[1;35m\]@\[\033[01;34m\]\h\[\033[m\]:\[\033[1;32m\]\w\033[1;33m\]$(__git_ps1 " (%s)")\[\033[m\]\n\$
GIT_PS1_SHOWUNTRACKEDFILES=1
IRCNAME=sunny
HISTCONTROL=ignoreboth
BM=sunny@bellmann:/home/sunny/repos/Git
NCURSES_NO_UTF8_ACS=1
HOME=/home/sunny
SHLVL=4
IRCNICK=sunny256
LESSCHARSET=utf-8
GIT_PS1_SHOWSTASHSTATE=1
SUUID_EDITOR=vim
LOGNAME=sunny
LESS=-RSX
WINDOW=2
CVS_RSH=ssh
GIT_PS1_SHOWUPSTREAM=verbose
SSH_CONNECTION=37.253.243.58 43994 178.79.142.16 22
PROMPT_COMMAND=history -a
CVSEDITOR=/home/sunny/bin/cvs-editor
TREE_CHARSET=UTF-8
XDG_RUNTIME_DIR=/run/user/1000
SR=svn+ssh://sunny@sunbase.org/home/sunny/repos/Svn
RSYNC_RSH=ssh
LC_TIME=en_DK.UTF-8
HISTTIMEFORMAT=%F %T
GHH=https://sunny256@github.com/sunny256
_=/usr/local/bin/env
> - cat ../GIT-BUILD-OPTIONS
SHELL_PATH='/bin/sh'
PERL_PATH='/usr/bin/perl'
DIFF='diff'
PYTHON_PATH='/usr/bin/python'
TAR='tar'
NO_CURL=''
NO_EXPAT=''
USE_LIBPCRE=''
NO_PERL=''
NO_PYTHON=''
NO_UNIX_SOCKETS=''
PAGER_ENV='LESS=FRX LV=-c'
DC_SHA1='YesPlease'
NO_GETTEXT=''
GETTEXT_POISON=''
> - if you run that under 'strace -f -o /tmp/strace.out', does the
> strace.out say anything interesting?
In fact, when running the test under strace, another test fails too, and
it's also reproducible:
$ strace -f -o /tmp/strace.out ./t1308-config-set.sh
ok 1 - setup default config
[snip]
ok 22 - proper error on non-existent files
not ok 23 - proper error on directory "files"
#
# echo "Error (-1) reading configuration file a-directory." >expect &&
# mkdir a-directory &&
# test_expect_code 2 test-config configset_get_value foo.bar a-directory 2>output &&
# grep "^warning:" output &&
# grep "^Error" output >actual &&
# test_cmp expect actual
#
not ok 24 - proper error on non-accessible files
#
# chmod -r .git/config &&
# test_when_finished "chmod +r .git/config" &&
# echo "Error (-1) reading configuration file .git/config." >expect &&
# test_expect_code 2 test-config configset_get_value foo.bar .git/config 2>output &&
# grep "^warning:" output &&
# grep "^Error" output >actual &&
# test_cmp expect actual
#
ok 25 - proper error on error in default config files
ok 26 - proper error on error in custom config files
ok 27 - check line errors for malformed values
ok 28 - error on modifying repo config without repo
ok 29 - iteration shows correct origins
# failed 2 among 29 test(s)
1..29
$
I didn't see any red flags in the strace output, but I've put the file
for download at
http://sunbase.org/strace.git-v2.13.1-449-g02a2850ad58e.out
Thanks,
Øyvind
N 60.376° E 5.3334°
OpenPGP fingerprint: A006 05D6 E676 B319 55E2 E77E FB0C BEE8 94A5 06E5
6f7b6448-50a2-11e7-8259-db5caa6d21d3
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 181 bytes --]
next prev parent reply other threads:[~2017-06-14 2:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-14 1:15 t1308-config-set.sh fails on current master Øyvind A. Holm
2017-06-14 1:25 ` Jonathan Nieder
2017-06-14 2:17 ` Øyvind A. Holm [this message]
2017-06-14 5:02 ` Jeff King
2017-06-14 5:15 ` Jeff King
2017-06-14 5:30 ` [PATCH] configure.ac: loosen FREAD_READS_DIRECTORIES test program Jeff King
2017-06-14 10:59 ` Øyvind A. Holm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170614021739.erkdifufziwiqjxp@sunbase.org \
--to=sunny@sunbase.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=pclouds@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).