Skip to content

Commit b7793ec

Browse files
committed
Don't setup what we don't need
1 parent 35c69f1 commit b7793ec

File tree

1 file changed

+55
-69
lines changed
  • integration/test/Testlib

1 file changed

+55
-69
lines changed

integration/test/Testlib/Run.hs

Lines changed: 55 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,21 @@ import Control.Exception as E
55
import Control.Monad
66
import Control.Monad.Codensity
77
import Control.Monad.IO.Class
8-
import Control.Monad.Reader.Class (asks)
9-
import Data.Default
108
import Data.Foldable
119
import Data.Function
1210
import Data.Functor
1311
import Data.List
1412
import Data.Maybe (fromMaybe)
15-
import Data.String (IsString (fromString))
16-
import Data.String.Conversions (cs)
17-
import Data.Text (Text)
18-
import qualified Data.Text as T
1913
import Data.Time
20-
import qualified Data.Yaml as Yaml
21-
import Network.AMQP.Extended
22-
import Network.RabbitMqAdmin
2314
import RunAllTests
2415
import System.Directory
2516
import System.Environment
2617
import System.Exit
2718
import System.FilePath
28-
import System.IO.Temp (writeTempFile)
29-
import System.Process
3019
import Testlib.Assertions
3120
import Testlib.Env
32-
import Testlib.ModService (readAndUpdateConfig)
3321
import Testlib.Options
3422
import Testlib.Printing
35-
import Testlib.ResourcePool (acquireResources)
36-
import Testlib.RunServices (backendA, backendB)
3723
import Testlib.Types
3824
import Testlib.XML
3925
import Text.Printf
@@ -127,12 +113,12 @@ runTests tests mXMLOutput cfg shardingGroup = do
127113
Nothing -> pure ()
128114
let writeOutput = writeChan output . Just
129115

130-
runCodensity (mkEnvs cfg) $ \(genv, env) ->
116+
runCodensity (mkEnvs cfg) $ \(genv, _env) ->
131117
withAsync displayOutput $ \displayThread -> do
132118
-- Although migrations are run on service start up we are running them here before
133119
-- to prevent race conditions between brig and galley
134120
-- which cause flakiness and can make the complete test suite fail
135-
runAppWithEnv env runMigrations
121+
-- runAppWithEnv env runMigrations
136122
-- Currently 4 seems to be stable, more seems to create more timeouts.
137123
report <- fmap mconcat $ pooledForConcurrentlyN 4 tests $ \(qname, _, _, action) -> do
138124
timestamp <- getCurrentTime
@@ -156,7 +142,7 @@ runTests tests mXMLOutput cfg shardingGroup = do
156142
pure (TestSuiteReport [TestCaseReport qname TestSuccess tm])
157143
writeChan output Nothing
158144
wait displayThread
159-
deleteFederationV0AndV1Queues genv
145+
-- deleteFederationV0AndV1Queues genv
160146
printReport report
161147
mapM_ (saveXMLReport report) mXMLOutput
162148
when (any (\testCase -> testCase.result /= TestSuccess) report.cases) $
@@ -168,58 +154,58 @@ runTests tests mXMLOutput cfg shardingGroup = do
168154
e <- mkEnv Nothing g
169155
pure (g, e)
170156

171-
runMigrations :: App ()
172-
runMigrations = do
173-
cwdBase <- asks (.servicesCwdBase)
174-
let brig = "brig"
175-
let (cwd, exe) = case cwdBase of
176-
Nothing -> (Nothing, brig)
177-
Just dir ->
178-
(Just (dir </> brig), "../../dist" </> brig)
179-
getConfig <- readAndUpdateConfig def backendA Brig
180-
config <- liftIO getConfig
181-
tempFile <- liftIO $ writeTempFile "/tmp" "brig-migrations.yaml" (cs $ Yaml.encode config)
182-
dynDomains <- asks (.dynamicDomains)
183-
pool <- asks (.resourcePool)
184-
lowerCodensity $ do
185-
resources <- acquireResources (length dynDomains) pool
186-
let dbnames = [backendA.berPostgresqlDBName, backendB.berPostgresqlDBName] <> map (.berPostgresqlDBName) resources
187-
for_ dbnames $ runMigration exe tempFile cwd
188-
liftIO $ putStrLn "Postgres migrations finished"
189-
where
190-
runMigration :: (MonadIO m) => FilePath -> FilePath -> Maybe FilePath -> String -> m ()
191-
runMigration exe tempFile cwd dbname = do
192-
let cp = (proc exe ["-c", tempFile, "migrate-postgres", "--dbname", dbname]) {cwd}
193-
(_, _, _, ph) <- liftIO $ createProcess cp
194-
void $ liftIO $ waitForProcess ph
195-
196-
deleteFederationV0AndV1Queues :: GlobalEnv -> IO ()
197-
deleteFederationV0AndV1Queues env = do
198-
let testDomains = env.gDomain1 : env.gDomain2 : env.gDynamicDomains
199-
putStrLn "Attempting to delete federation V0 queues..."
200-
(mV0User, mV0Pass) <- readCredsFromEnvWithSuffix "V0"
201-
fromMaybe (putStrLn "No or incomplete credentials for fed V0 RabbitMQ") $
202-
deleteFederationQueues testDomains env.gRabbitMQConfigV0 <$> mV0User <*> mV0Pass
203-
204-
putStrLn "Attempting to delete federation V1 queues..."
205-
(mV1User, mV1Pass) <- readCredsFromEnvWithSuffix "V1"
206-
fromMaybe (putStrLn "No or incomplete credentials for fed V1 RabbitMQ") $
207-
deleteFederationQueues testDomains env.gRabbitMQConfigV1 <$> mV1User <*> mV1Pass
208-
where
209-
readCredsFromEnvWithSuffix :: String -> IO (Maybe Text, Maybe Text)
210-
readCredsFromEnvWithSuffix suffix =
211-
(,)
212-
<$> (fmap fromString <$> lookupEnv ("RABBITMQ_USERNAME_" <> suffix))
213-
<*> (fmap fromString <$> lookupEnv ("RABBITMQ_PASSWORD_" <> suffix))
214-
215-
deleteFederationQueues :: [String] -> RabbitMqAdminOpts -> Text -> Text -> IO ()
216-
deleteFederationQueues testDomains opts username password = do
217-
client <- mkRabbitMqAdminClientEnvWithCreds opts username password
218-
for_ testDomains $ \domain -> do
219-
page <- client.listQueuesByVHost opts.vHost (fromString $ "^backend-notifications\\." <> domain <> "$") True 100 1
220-
for_ page.items $ \queue -> do
221-
putStrLn $ "Deleting queue " <> T.unpack queue.name
222-
void $ deleteQueue client opts.vHost queue.name
157+
-- runMigrations :: App ()
158+
-- runMigrations = do
159+
-- cwdBase <- asks (.servicesCwdBase)
160+
-- let brig = "brig"
161+
-- let (cwd, exe) = case cwdBase of
162+
-- Nothing -> (Nothing, brig)
163+
-- Just dir ->
164+
-- (Just (dir </> brig), "../../dist" </> brig)
165+
-- getConfig <- readAndUpdateConfig def backendA Brig
166+
-- config <- liftIO getConfig
167+
-- tempFile <- liftIO $ writeTempFile "/tmp" "brig-migrations.yaml" (cs $ Yaml.encode config)
168+
-- dynDomains <- asks (.dynamicDomains)
169+
-- pool <- asks (.resourcePool)
170+
-- lowerCodensity $ do
171+
-- resources <- acquireResources (length dynDomains) pool
172+
-- let dbnames = [backendA.berPostgresqlDBName, backendB.berPostgresqlDBName] <> map (.berPostgresqlDBName) resources
173+
-- for_ dbnames $ runMigration exe tempFile cwd
174+
-- liftIO $ putStrLn "Postgres migrations finished"
175+
-- where
176+
-- runMigration :: (MonadIO m) => FilePath -> FilePath -> Maybe FilePath -> String -> m ()
177+
-- runMigration exe tempFile cwd dbname = do
178+
-- let cp = (proc exe ["-c", tempFile, "migrate-postgres", "--dbname", dbname]) {cwd}
179+
-- (_, _, _, ph) <- liftIO $ createProcess cp
180+
-- void $ liftIO $ waitForProcess ph
181+
182+
-- deleteFederationV0AndV1Queues :: GlobalEnv -> IO ()
183+
-- deleteFederationV0AndV1Queues env = do
184+
-- let testDomains = env.gDomain1 : env.gDomain2 : env.gDynamicDomains
185+
-- putStrLn "Attempting to delete federation V0 queues..."
186+
-- (mV0User, mV0Pass) <- readCredsFromEnvWithSuffix "V0"
187+
-- fromMaybe (putStrLn "No or incomplete credentials for fed V0 RabbitMQ") $
188+
-- deleteFederationQueues testDomains env.gRabbitMQConfigV0 <$> mV0User <*> mV0Pass
189+
--
190+
-- putStrLn "Attempting to delete federation V1 queues..."
191+
-- (mV1User, mV1Pass) <- readCredsFromEnvWithSuffix "V1"
192+
-- fromMaybe (putStrLn "No or incomplete credentials for fed V1 RabbitMQ") $
193+
-- deleteFederationQueues testDomains env.gRabbitMQConfigV1 <$> mV1User <*> mV1Pass
194+
-- where
195+
-- readCredsFromEnvWithSuffix :: String -> IO (Maybe Text, Maybe Text)
196+
-- readCredsFromEnvWithSuffix suffix =
197+
-- (,)
198+
-- <$> (fmap fromString <$> lookupEnv ("RABBITMQ_USERNAME_" <> suffix))
199+
-- <*> (fmap fromString <$> lookupEnv ("RABBITMQ_PASSWORD_" <> suffix))
200+
--
201+
-- deleteFederationQueues :: [String] -> RabbitMqAdminOpts -> Text -> Text -> IO ()
202+
-- deleteFederationQueues testDomains opts username password = do
203+
-- client <- mkRabbitMqAdminClientEnvWithCreds opts username password
204+
-- for_ testDomains $ \domain -> do
205+
-- page <- client.listQueuesByVHost opts.vHost (fromString $ "^backend-notifications\\." <> domain <> "$") True 100 1
206+
-- for_ page.items $ \queue -> do
207+
-- putStrLn $ "Deleting queue " <> T.unpack queue.name
208+
-- void $ deleteQueue client opts.vHost queue.name
223209

224210
doListTests :: [(String, String, String, x)] -> IO ()
225211
doListTests tests = for_ tests $ \(qname, _desc, _full, _) -> do

0 commit comments

Comments
 (0)