Re: [GSoC][PATCH v4 4/4] credential-cache: add tests for XDG functionality
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 16, 2017, 16:29 UTC
- Message-ID
- <xmqq8to5chh5.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20170316051827.97198-5-lehmacdj@gmail.com>
Devin Lehmacher <lehmacdj@gmail.com> writes:
Show 6 quoted lines
> @@ -20,4 +21,67 @@ helper_test_timeout cache --timeout=1 > # our socket, leaving us with no way to access the daemon. > git credential-cache exit > > +# we need to use rm -rf here since sometimes the daemon hasn't finished > +# cleaning up after itself and rmdir fails
Hmmmm. Peff, do you have ideas on better ways to do this (or explanation why this is the best we could do)?
Show 44 quoted lines
> +test_expect_success 'credential-cache --socket option overrides default location' ' > + test_when_finished "rm -rf \"$HOME\"/dir/" && > + check approve "cache --socket \"$HOME/dir/socket\"" <<-\EOF && > + protocol=https > + host=example.com > + username=store-user > + password=store-pass > + EOF > + test -S "$HOME/dir/socket" && > + git credential-cache exit > +' > + > +XDG_CACHE_HOME="$HOME/xdg" > +export XDG_CACHE_HOME > +# test behavior when XDG_CACHE_HOME is set > +helper_test cache > + > +test_expect_success "use custom XDG_CACHE_HOME if set and default sockets are not created" ' > + test -S "$XDG_CACHE_HOME/git/credential/socket" && > + test_path_is_missing "$HOME/.git-credential-cache/socket" && > + test_path_is_missing "$HOME/.cache/git/credential/socket" && > + git credential-cache exit > +' > +unset XDG_CACHE_HOME > + > +test_expect_success "use custom XDG_CACHE_HOME even if xdg socket exists" ' > + check approve cache <<-\EOF && > + protocol=https > + host=example.com > + username=store-user > + password=store-pass > + EOF > + test -S "$HOME/.cache/git/credential/socket" && > + XDG_CACHE_HOME="$HOME/xdg" && > + export XDG_CACHE_HOME && > + check approve cache <<-\EOF && > + protocol=https > + host=example.com > + username=store-user > + password=store-pass > + EOF > + test -S "$HOME/xdg/git/credential/socket" && > + git credential-cache exit && > + unset XDG_CACHE_HOME
This unset will not run if any of the above steps since it was set and exported fails. It probably should be in test_when_finished and should use safe_unset shell function instead.
Show 14 quoted lines
> +' > + > +# we need to use rm -rf here since sometimes the daemon hasn't finished > +# cleaning up after itself and rmdir fails > +test_expect_success 'use user socket if user directory exists' ' > + test_when_finished "rm -rf \"$HOME/.git-credential-cache/\"" && > + mkdir -p -m 700 "$HOME/.git-credential-cache/" && > + check approve cache <<-\EOF && > + protocol=https > + host=example.com > + username=store-user > + password=store-pass > + EOF > + test -S "$HOME/.git-credential-cache/socket" &&
We should also test that the XDG location is not touched at the same time that the traditional directory was used for the socket.
> + git credential-cache exit > +'
This last test should be replicated to also check the case where we have a symbolic link at ~/.git-credential-cache that points at a directory.
> test_done
Thanks.