testremote: Fix over-allocation of resources and bad caching
Including starting up a large number of external special remote processes. (Regression introduced in version 8.20200501)
This commit is contained in:
parent
10db6c7a41
commit
5098236c6b
4 changed files with 81 additions and 32 deletions
11
Test.hs
11
Test.hs
|
@ -257,22 +257,25 @@ testRemote remotetype config preinitremote =
|
|||
@? "init failed"
|
||||
r <- annexeval $ either error return
|
||||
=<< Remote.byName' remotename
|
||||
cache <- Command.TestRemote.newRemoteVariantCache
|
||||
unavailr <- annexeval $ Types.Remote.mkUnavailable r
|
||||
exportr <- annexeval $ Command.TestRemote.exportTreeVariant r
|
||||
exportr <- annexeval $ Command.TestRemote.exportTreeVariant cache r
|
||||
ks <- annexeval $ mapM Command.TestRemote.randKey keysizes
|
||||
v <- getv
|
||||
cv <- annexeval cache
|
||||
liftIO $ atomically $ putTMVar v
|
||||
(r, (unavailr, (exportr, ks)))
|
||||
(r, (unavailr, (exportr, (ks, cv))))
|
||||
go getv = Command.TestRemote.mkTestTrees runannex mkrs mkunavailr mkexportr mkks
|
||||
where
|
||||
runannex = inmainrepo . annexeval
|
||||
mkrs = Command.TestRemote.remoteVariants mkr basesz False
|
||||
mkrs = Command.TestRemote.remoteVariants cache mkr basesz False
|
||||
mkr = descas (remotetype ++ " remote") (fst <$> v)
|
||||
mkunavailr = fst . snd <$> v
|
||||
mkexportr = fst . snd . snd <$> v
|
||||
mkks = map (\(sz, n) -> desckeysize sz (getk n))
|
||||
(zip keysizes [0..])
|
||||
getk n = fmap (!! n) (snd . snd . snd <$> v)
|
||||
getk n = fmap (!! n) (fst . snd . snd . snd <$> v)
|
||||
cache = snd . snd . snd . snd <$> v
|
||||
v = liftIO $ atomically . readTMVar =<< getv
|
||||
descas = Command.TestRemote.Described
|
||||
desckeysize sz = descas ("key size " ++ show sz)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue