From 04015afafab0347f9e852a0ca345f03febf515c2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 18 Oct 2016 16:56:38 -0400 Subject: test: Deal with gpg-agent behavior change that broke the test suite. gpg-agent started deleting its socket file on shutdown, and this tickled an ugly behavior in removeDirectoryRecursive, https://github.com/haskell/directory/issues/60 Running removeDirectoryRecursive again on exception avoids the problem. --- Utility/Gpg.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'Utility') diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs index af740c3e0..21171b6fb 100644 --- a/Utility/Gpg.hs +++ b/Utility/Gpg.hs @@ -352,7 +352,14 @@ testHarness cmd a = do [testSecretKey, testKey] return dir - cleanup orig tmpdir = removeDirectoryRecursive tmpdir >> reset orig + cleanup orig tmpdir = do + removeDirectoryRecursive tmpdir + -- gpg-agent may be shutting down at the same time + -- and may delete its socket at the same time as + -- we're trying to, causing an exception. Retrying + -- will deal with this race. + `catchIO` (\_ -> removeDirectoryRecursive tmpdir) + reset orig reset (Just v) = setEnv var v True reset _ = unsetEnv var -- cgit v1.2.3