summaryrefslogtreecommitdiff
path: root/testsuite/tests/rts/T5644/Util.hs
blob: b97e55c25513a95d71e00841cf68d50859b4320d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{-# LANGUAGE BangPatterns #-}

module Util where

import Data.Time
-- import Data.List.Split (splitEvery)

import Conf

timed act = do
  putStrLn ""
  t0 <- getCurrentTime
  !v <- act
  t1 <- getCurrentTime
  let td = diffUTCTime t1 t0
  putStrLn $ "Action time: " ++ show td
  return (v,td)

splitEvery _ [] = []
splitEvery n xs = let (lxs,rxs) = splitAt n xs in lxs : splitEvery n rxs

runTest :: (IO ()) -> IO ()
runTest test = do
  (_, t) <- timed test
  let format x = unwords . reverse . map reverse . splitEvery 3 . reverse . show $ x
      val = format (round (fromIntegral iTERATIONS / realToFrac t :: Double) :: Integer)

  putStr "OpsPerSecond: " 
  putStrLn val