From: Jeff King <peff@peff.net>
To: 惠轶群 <huiyiqun@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
Your friend <pickfire@riseup.net>,
git@vger.kernel.org
Subject: Re: [PATCH/RFC/GSoC 3/3] t0301: test credential-cache support of XDG_RUNTIME_DIR
Date: Fri, 18 Mar 2016 01:00:18 -0400 [thread overview]
Message-ID: <20160318050017.GA22327@sigill.intra.peff.net> (raw)
In-Reply-To: <CAKqreuw7Am_wZQjYYjvsxx0Ccr4OOwoF=EnLvMTK9jxeBUFv5Q@mail.gmail.com>
On Fri, Mar 18, 2016 at 12:34:04PM +0800, 惠轶群 wrote:
> >> +test_expect_success 'set $XDG_RUNTIME_DIR' '
> >> + XDG_RUNTIME_DIR=$HOME/xdg_runtime/
> >> +'
> >
> > Doesn't this need to export the variable so that credential-cache can
> > see it?
>
> I'm not sure, but it seems that a little clean up code added before
> send-email
> make the test fail. At that time, I run test without building. I've send
> PATCH v2
> which runs well on my computer. However, $XDG_RUNTIME_DIR is still not
> exported, but that just works.
>
> I will try to dig deeper into the bash script to see why.
I suspect it is because you have $XDG_RUNTIME_DIR defined in your
environment, which causes the shell to automatically export it. I don't,
so an explicit "export" is required to for the variable to make it to
its children.
I think we should actually be unsetting it in test-lib.sh for all tests,
as we do for XDG_CONFIG_HOME. That makes sure the tests are running with
a known state.
For the non-XDG_RUNTIME_DIR tests, does this mean we are creating the
socket in /tmp? I'm not entirely happy with that, as we usually try to
have the test suite avoid touching anything outside of its trash
directories.
> > This runs the full suite of tests twice (once here, and once for the
> > original helper_test invocation you left below). Shouldn't we just do it
> > once (making sure that $XDG_RUNTIME_DIR is respected)?
>
> I'd like to test the behavior of git-credential-cache when $XDG_RUNTIME_DIR
> is unset.
>
> In `t/t0302-credential-store.sh`, helper_test is also run multiple times.
> That's why I do so.
OK. My main concern was just that the tests would take too long, but the
slow one is the cache test at the end, which is not repeated. So I think
this is fine.
> > I wondered if this might be racy. credential-cache tells the daemon
> > "exit", then waits for a response or EOF. The daemon sees "exit" and
> > calls exit(0) immediately. We clean up the socket in an atexit()
> > handler. So I think we are OK (the pipe will get closed when the process
> > exits, and the atexit handler must have run by then).
> >
> > But that definitely was not designed, and is just how it happens to
> > work. I'm not sure if it's worth commenting on that (here, or perhaps in
> > the daemon code).
>
> I'm still confused.
>
> What do you mean by "pipe"? should it be "socket" instead?
Sorry, yes, I used "pipe" and "socket" interchangeably there.
> What is not designed? cleanup being done, my tests passing or the
> synchronization?
The synchronization. If the daemon were implemented as:
if (!strcmp(action.buf, "exit")) {
/* acknowledge that we got command */
fclose(out);
exit(0);
}
for example, then the client would exit at the same that the daemon is
cleaning up the socket, and we may or may not call test_path_is_missing
before the cleanup is done.
I think it's OK to rely on that, but we may want to put a comment to
that effect in the daemon code so that it doesn't get changed.
-Peff
next prev parent reply other threads:[~2016-03-18 5:00 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-14 14:47 [GSOC] Microproject "Move ~/.git-credential-cache to ~/.config/git" 惠轶群
2016-03-14 15:42 ` Junio C Hamano
2016-03-14 19:53 ` 惠轶群
2016-03-14 20:33 ` Junio C Hamano
2016-03-15 1:32 ` 惠轶群
2016-03-15 2:14 ` Your friend
[not found] ` <CAKqreux-m3yHVsEQXdf+8vMNZwC0UCMBWnzbaqYJbdEEM14qiQ@mail.gmail.com>
2016-03-15 5:56 ` Ivan Tham
2016-03-15 3:13 ` Jeff King
[not found] ` <CAKqreuwv+RRziS-NcaLYZYUN0_KrfgZSe6wp0wGBza4q3_x8RA@mail.gmail.com>
2016-03-15 19:21 ` Jeff King
2016-03-16 10:45 ` 惠轶群
2016-03-16 10:07 ` [PATCH/RFC/GSoC 1/3] path.c: implement xdg_runtime_dir() Hui Yiqun
2016-03-16 10:07 ` [PATCH/RFC/GSoC 2/3] git-credential-cache: put socket to xdg-compatible path Hui Yiqun
2016-03-17 10:26 ` 惠轶群
2016-03-16 10:07 ` [PATCH/RFC/GSoC 3/3] t0301: test credential-cache support of XDG_RUNTIME_DIR Hui Yiqun
2016-03-16 16:17 ` Junio C Hamano
2016-03-16 16:40 ` 惠轶群
2016-03-16 16:55 ` Jeff King
2016-03-16 17:24 ` Junio C Hamano
2016-03-17 3:59 ` 谭俊浩
2016-03-17 8:12 ` Junio C Hamano
2016-03-17 10:10 ` 惠轶群
2016-03-17 9:45 ` 惠轶群
2016-03-16 17:15 ` Jeff King
2016-03-18 4:35 ` 惠轶群
[not found] ` <CAKqreuw7Am_wZQjYYjvsxx0Ccr4OOwoF=EnLvMTK9jxeBUFv5Q@mail.gmail.com>
2016-03-18 5:00 ` Jeff King [this message]
2016-03-18 5:11 ` 惠轶群
2016-03-18 6:02 ` 惠轶群
2016-03-18 6:12 ` [PATCH] credential-cache--daemon: clarify "exit" action semantics Jeff King
2016-03-16 17:06 ` [PATCH/RFC/GSoC 1/3] path.c: implement xdg_runtime_dir() Jeff King
2016-03-17 10:20 ` 惠轶群
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160318050017.GA22327@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=huiyiqun@gmail.com \
--cc=pickfire@riseup.net \
/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.
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 NNTP newsgroup(s).