on master help sign in
migrate tests to Cabal test-suites
commit6ee46acfa75f73b9df10b6c8f8b0e5a0b3b023f7 authorCorey O'Connor <corey@ooyala.com> dateTue 9 Oct 2012, 20:58 (14 years ago) parent3ce550b
14 files changed+535−153
test/Verify/Data/Terminfo/Parse.hs−1 test/verify_empty_image_props.hs → test/VerifyEmptyImageProps.hs+4−3 test/verify_eval_terminfo_caps.hs → test/VerifyEvalTerminfoCaps.hs+24−27 test/verify_image_ops.hs → test/VerifyImageOps.hs+18−17 test/verify_image_trans.hs → test/VerifyImageTrans.hs+7−6 test/VerifyInline.hs+23 test/verify_parse_terminfo_caps.hs → test/VerifyParseTerminfoCaps.hs+29−29 test/VerifyPictureOps.hs+8 test/verify_picture_to_span.hs → test/VerifyPictureToSpan.hs+3−3 test/verify_span_ops.hs → test/VerifySpanOps.hs+30−30 test/verify_utf8_width.hs → test/VerifyUtf8Width.hs+6−5 test/verify_inline.hs−11 test/verify_picture_ops.hs−9 vty.cabal+383−12
test/Verify/Data/Terminfo/Parse.hs−1
@@ -8,7 +8,6 @@ import Data.Terminfo.Parse
88import Data.Terminfo.Eval
99import Verify
1010
11−import Data.Array.Unboxed
1211import Data.Word
1312
1413import Numeric
test/verify_empty_image_props.hs → test/VerifyEmptyImageProps.hsrenamed+4−3
@@ -1,13 +1,14 @@
11{-# LANGUAGE ScopedTypeVariables #-}
2−module Main where
2+module VerifyEmptyImageProps where
33
44import Verify
55
66-- should be exported by Graphics.Vty.Picture
77import Graphics.Vty.Picture ( Image, empty_image )
88
9−main = run_test $ do
9+tests :: IO [Test]
10+tests = do
1011 -- should provide an image type.
1112 let _ :: Image = empty_image
12− return ()
13+ return []
1314
test/verify_eval_terminfo_caps.hs → test/VerifyEvalTerminfoCaps.hsrenamed+24−27
@@ -1,7 +1,7 @@
11{-# LANGUAGE BangPatterns #-}
22{-# LANGUAGE ScopedTypeVariables #-}
33{-# LANGUAGE NamedFieldPuns #-}
4−module Main where
4+module VerifyEvalTerminfoCaps where
55
66import Data.Marshalling
77
@@ -13,11 +13,11 @@ import qualified System.Console.Terminfo as Terminfo
1313
1414import Verify
1515
16+import Control.Applicative ( (<$>) )
1617import Control.Exception ( try, SomeException(..) )
1718
18−import Control.Monad ( mapM_, forM_ )
19+import Control.Monad ( mapM_, forM, forM_ )
1920
20−import Data.Array.Unboxed
2121import Data.Maybe ( fromJust )
2222import Data.Word
2323
@@ -87,30 +87,27 @@ caps_of_interest =
8787
8888from_capname ti name = fromJust $ Terminfo.getCapability ti (Terminfo.tiGetStr name)
8989
90−main = do
91− run_test $ do
92− eval_buffer :: Ptr Word8 <- liftIO $ mallocBytes (1024 * 1024) -- Should be big enough for all termcaps ;-)
93− forM_ terminals_of_interest $ \term_name -> do
94− liftIO $ putStrLn $ "testing parsing of caps for terminal: " ++ term_name
95− mti <- liftIO $ try $ Terminfo.setupTerm term_name
96− case mti of
97− Left (_e :: SomeException)
98− -> return ()
99− Right ti -> do
100− forM_ caps_of_interest $ \cap_name -> do
101− liftIO $ putStrLn $ "\tevaluating cap: " ++ cap_name
102− case Terminfo.getCapability ti (Terminfo.tiGetStr cap_name) of
103− Just cap_def -> do
104− parse_result <- parse_cap_expression cap_def
105− let test_name = "\teval cap " ++ cap_name ++ " -> " ++ show cap_def
106− _ <- case parse_result of
107− Left error -> verify test_name ( failed { reason = "prase error " ++ show error } )
108− Right !cap_expr -> verify test_name ( verify_eval_cap eval_buffer cap_expr )
109− return ()
110− Nothing -> do
111− return ()
112− return ()
113− return ()
90+tests :: IO [Test]
91+tests = do
92+ eval_buffer :: Ptr Word8 <- mallocBytes (1024 * 1024) -- Should be big enough for any termcaps ;-)
93+ fmap concat $ forM terminals_of_interest $ \term_name -> do
94+ putStrLn $ "adding tests for terminal: " ++ term_name
95+ mti <- try $ Terminfo.setupTerm term_name
96+ case mti of
97+ Left (_e :: SomeException)
98+ -> return []
99+ Right ti -> do
100+ fmap concat $ forM caps_of_interest $ \cap_name -> do
101+ case Terminfo.getCapability ti (Terminfo.tiGetStr cap_name) of
102+ Just cap_def -> do
103+ putStrLn $ "\tadding test for cap: " ++ cap_name
104+ let test_name = term_name ++ "(" ++ cap_name ++ ")"
105+ parse_result <- parse_cap_expression cap_def
106+ case parse_result of
107+ Left error -> return [ verify test_name ( failed { reason = "parse error " ++ show error } ) ]
108+ Right !cap_expr -> return [ verify test_name ( verify_eval_cap eval_buffer cap_expr ) ]
109+ Nothing -> do
110+ return []
114111
115112{-# NOINLINE verify_eval_cap #-}
116113verify_eval_cap :: Ptr Word8 -> CapExpression -> Int -> Property
test/verify_image_ops.hs → test/VerifyImageOps.hsrenamed+18−17
@@ -1,5 +1,6 @@
11{-# LANGUAGE ScopedTypeVariables #-}
2−module Main where
2+module VerifyImageOps where
3+
34import Graphics.Vty.Attributes
45import Verify.Graphics.Vty.Image
56
@@ -105,20 +106,20 @@ disjoint_width_vert_join_bg_fill (NonEmpty stack_0) (NonEmpty stack_1) =
105106 ( expected_width == (image_width $ part_bottom image) )
106107 _ -> True
107108
108−main = run_test $ do
109− _ <- verify "two_sw_horiz_concat" two_sw_horiz_concat
110− _ <- verify "many_sw_horiz_concat" many_sw_horiz_concat
111− _ <- verify "two_sw_vert_concat" two_sw_vert_concat
112− _ <- verify "horiz_concat_sw_assoc" horiz_concat_sw_assoc
113− _ <- verify "many_dw_horiz_concat" many_dw_horiz_concat
114− _ <- verify "two_dw_horiz_concat" two_dw_horiz_concat
115− _ <- verify "two_dw_vert_concat" two_dw_vert_concat
116− _ <- verify "horiz_concat_dw_assoc" horiz_concat_dw_assoc
117− liftIO $ putStrLn $ replicate 80 '-'
118− _ <- verify "single row vert concats to correct height" vert_contat_single_row
119− _ <- verify "disjoint_height_horiz_join" disjoint_height_horiz_join
120− _ <- verify "disjoint_height_horiz_join BG fill" disjoint_height_horiz_join_bg_fill
121− _ <- verify "disjoint_width_vert_join" disjoint_width_vert_join
122− _ <- verify "disjoint_width_vert_join BG fill" disjoint_width_vert_join_bg_fill
123− return ()
109+tests :: IO [Test]
110+tests = return
111+ [ verify "two_sw_horiz_concat" two_sw_horiz_concat
112+ , verify "many_sw_horiz_concat" many_sw_horiz_concat
113+ , verify "two_sw_vert_concat" two_sw_vert_concat
114+ , verify "horiz_concat_sw_assoc" horiz_concat_sw_assoc
115+ , verify "many_dw_horiz_concat" many_dw_horiz_concat
116+ , verify "two_dw_horiz_concat" two_dw_horiz_concat
117+ , verify "two_dw_vert_concat" two_dw_vert_concat
118+ , verify "horiz_concat_dw_assoc" horiz_concat_dw_assoc
119+ , verify "single row vert concats to correct height" vert_contat_single_row
120+ , verify "disjoint_height_horiz_join" disjoint_height_horiz_join
121+ , verify "disjoint_height_horiz_join BG fill" disjoint_height_horiz_join_bg_fill
122+ , verify "disjoint_width_vert_join" disjoint_width_vert_join
123+ , verify "disjoint_width_vert_join BG fill" disjoint_width_vert_join_bg_fill
124+ ]
124125
test/verify_image_trans.hs → test/VerifyImageTrans.hsrenamed+7−6
@@ -1,5 +1,5 @@
11{-# LANGUAGE NamedFieldPuns #-}
2−module Main where
2+module VerifyImageTrans where
33
44import Verify.Graphics.Vty.Image
55
@@ -24,8 +24,9 @@ verify_horiz_contat_w_attr_change_simplifies ( SingleRowTwoAttrImage (SingleRowS
2424 | char_count0 == 0 || char_count1 == 0 || attr0 == attr1 = is_horiz_text_of_columns i (char_count0 + char_count1)
2525 | otherwise = False == is_horiz_text_of_columns i (char_count0 + char_count1)
2626
27−main :: IO ()
28−main = run_test $ do
29− _ <- verify "verify_horiz_contat_wo_attr_change_simplifies" verify_horiz_contat_wo_attr_change_simplifies
30− _ <- verify "verify_horiz_contat_w_attr_change_simplifies" verify_horiz_contat_w_attr_change_simplifies
31− return ()
27+tests :: IO [Test]
28+tests = return
29+ [ verify "verify_horiz_contat_wo_attr_change_simplifies" verify_horiz_contat_wo_attr_change_simplifies
30+ , verify "verify_horiz_contat_w_attr_change_simplifies" verify_horiz_contat_w_attr_change_simplifies
31+ ]
32+
test/VerifyInline.hsnew file+23
@@ -0,0 +1,23 @@
1+module VerifyInline where
2+
3+import Graphics.Vty.Inline
4+import Graphics.Vty.Terminal
5+
6+import Verify
7+
8+import Distribution.TestSuite
9+
10+tests :: IO [Test]
11+tests = return
12+ [ Test $ TestInstance
13+ { name = "verify vty inline"
14+ , run = do
15+ t <- terminal_handle
16+ put_attr_change t $ default_all
17+ return $ Finished Pass
18+ , tags = []
19+ , options = []
20+ , setOption = \_ _ -> Left "no options supported"
21+ }
22+ ]
23+
test/verify_parse_terminfo_caps.hs → test/VerifyParseTerminfoCaps.hsrenamed+29−29
@@ -1,6 +1,6 @@
11{-# LANGUAGE ScopedTypeVariables #-}
22{-# LANGUAGE NamedFieldPuns #-}
3−module Main where
3+module VerifyParseTerminfoCaps where
44
55import Prelude hiding ( catch )
66
@@ -9,11 +9,11 @@ import qualified System.Console.Terminfo as Terminfo
99import Verify.Data.Terminfo.Parse
1010import Verify
1111
12+import Control.Applicative ( (<$>) )
1213import Control.Exception ( try, SomeException(..) )
13−import Control.Monad ( mapM_, forM_ )
14+import Control.Monad ( mapM_, forM, forM_ )
1415
15−import Data.Array.Unboxed
16−import Data.Maybe ( fromJust )
16+import Data.Maybe ( catMaybes, fromJust )
1717import Data.Word
1818
1919import Numeric
@@ -82,31 +82,31 @@ caps_of_interest =
8282
8383from_capname ti name = fromJust $ Terminfo.getCapability ti (Terminfo.tiGetStr name)
8484
85−main = do
86− run_test $ do
87− forM_ terminals_of_interest $ \term_name -> do
88− liftIO $ putStrLn $ "testing parsing of caps for terminal: " ++ term_name
89− mti <- liftIO $ try $ Terminfo.setupTerm term_name
90− case mti of
91− Left (_e :: SomeException)
92− -> return ()
93− Right ti -> do
94− forM_ caps_of_interest $ \cap_name -> do
95− liftIO $ putStrLn $ "\tparsing cap: " ++ cap_name
96− case Terminfo.getCapability ti (Terminfo.tiGetStr cap_name) of
97− Just cap_def -> do
98− verify ( "\tparse cap " ++ cap_name ++ " -> " ++ show cap_def )
99− ( verify_parse_cap cap_def $ const ( return succeeded ) )
100− return ()
101− Nothing -> do
102− return ()
103− -- The quickcheck tests
104− verify "parse_non_paramaterized_caps" non_paramaterized_caps
105− verify "parse cap string with literal %" literal_percent_caps
106− verify "parse cap string with %i op" inc_first_two_caps
107− verify "parse cap string with %pN op" push_param_caps
108− return ()
109− return ()
85+tests :: IO [Test]
86+tests = do
87+ parse_tests <- concat <$> forM terminals_of_interest ( \term_name -> do
88+ putStrLn $ "testing parsing of caps for terminal: " ++ term_name
89+ mti <- liftIO $ try $ Terminfo.setupTerm term_name
90+ case mti of
91+ Left (_e :: SomeException)
92+ -> return []
93+ Right ti -> do
94+ concat <$> forM caps_of_interest ( \cap_name -> do
95+ liftIO $ putStrLn $ "\tparsing cap: " ++ cap_name
96+ case Terminfo.getCapability ti (Terminfo.tiGetStr cap_name) of
97+ Just cap_def -> do
98+ return [ verify ( "\tparse cap " ++ cap_name ++ " -> " ++ show cap_def )
99+ ( verify_parse_cap cap_def $ const (return succeeded) ) ]
100+ Nothing -> do
101+ return []
102+ )
103+ )
104+ -- The quickcheck tests
105+ return $ [ verify "parse_non_paramaterized_caps" non_paramaterized_caps
106+ , verify "parse cap string with literal %" literal_percent_caps
107+ , verify "parse cap string with %i op" inc_first_two_caps
108+ , verify "parse cap string with %pN op" push_param_caps
109+ ] ++ parse_tests
110110
111111verify_parse_cap cap_string on_parse = liftIOResult $ do
112112 parse_result <- parse_cap_expression cap_string
test/VerifyPictureOps.hsnew file+8
@@ -0,0 +1,8 @@
1+module VerifyPictureOps where
2+
3+import Graphics.Vty.Picture ( translate )
4+
5+import Verify
6+
7+tests :: IO [Test]
8+tests = return []
test/verify_picture_to_span.hs → test/VerifyPictureToSpan.hsrenamed+3−3
@@ -1,4 +1,4 @@
1−module Main where
1+module VerifyPictureToSpan where
22
33import Graphics.Vty.Picture
44import Graphics.Vty.Span
@@ -6,5 +6,5 @@ import Graphics.Vty.PictureToSpans
66
77import Verify
88
9−main = run_test $ do
10− return ()
9+tests :: IO [Test]
10+tests = return []
test/verify_span_ops.hs → test/VerifySpanOps.hsrenamed+30−30
@@ -1,6 +1,6 @@
11{-# LANGUAGE DisambiguateRecordFields #-}
22{-# LANGUAGE NamedFieldPuns #-}
3−module Main where
3+module VerifySpanOps where
44
55import Verify.Graphics.Vty.Picture
66import Verify.Graphics.Vty.Image
@@ -148,33 +148,33 @@ single_attr_single_span_stack_op_coverage stack =
148148 spans = spans_for_pic p (region_for_window w)
149149 in verify_all_spans_have_width (stack_image stack) spans (stack_width stack)
150150
151−main :: IO ()
152−main = run_test $ do
153− _ <- verify "unit image is cropped when window size == (0,0) [0]" unit_image_and_zero_window_0
154− _ <- verify "unit image is cropped when window size == (0,0) [1]" unit_image_and_zero_window_1
155− _ <- verify "horiz span image is cropped when window size == (0,0) [0]" horiz_span_image_and_zero_window_0
156− _ <- verify "horiz span image is cropped when window size == (0,0) [1]" horiz_span_image_and_zero_window_1
157− _ <- verify "horiz span image is not cropped when window size == size of image [width]" horiz_span_image_and_equal_window_0
158− _ <- verify "horiz span image is not cropped when window size == size of image [height]" horiz_span_image_and_equal_window_1
159− _ <- verify "horiz span image is not cropped when window size < size of image [width]" horiz_span_image_and_lesser_window_0
160− _ <- verify "horiz span image is not cropped when window size > size of image [width]" horiz_span_image_and_greater_window_0
161− _ <- verify "arbitrary image is padded or cropped" arb_image_is_cropped
162− _ <- verify "The span ops actually define content for all the rows in the output region" span_ops_actually_fill_rows
163− _ <- verify "The span ops actually define content for all the columns in the output region" span_ops_actually_fill_columns
164− _ <- verify "first span op is always to set the text attribute" first_span_op_sets_attr
165− _ <- verify "a stack of single attr text spans should define content for all the columns [output region == size of stack]"
166− single_attr_single_span_stack_op_coverage
167− _ <- verify "a single attr text span is cropped when window size < size of stack image [width]"
168− single_attr_single_span_stack_cropped_0
169− _ <- verify "a single attr text span is cropped when window size < size of stack image [height]"
170− single_attr_single_span_stack_cropped_1
171− _ <- verify "single attr text span <|> single attr text span cropped. [width]"
172− single_attr_single_span_stack_cropped_2
173− _ <- verify "single attr text span <|> single attr text span cropped. [height]"
174− single_attr_single_span_stack_cropped_3
175− _ <- verify "single attr text span <-> single attr text span cropped. [width]"
176− single_attr_single_span_stack_cropped_4
177− _ <- verify "single attr text span <-> single attr text span cropped. [height]"
178− single_attr_single_span_stack_cropped_5
179− return ()
151+tests :: IO [Test]
152+tests = return
153+ [ verify "unit image is cropped when window size == (0,0) [0]" unit_image_and_zero_window_0
154+ , verify "unit image is cropped when window size == (0,0) [1]" unit_image_and_zero_window_1
155+ , verify "horiz span image is cropped when window size == (0,0) [0]" horiz_span_image_and_zero_window_0
156+ , verify "horiz span image is cropped when window size == (0,0) [1]" horiz_span_image_and_zero_window_1
157+ , verify "horiz span image is not cropped when window size == size of image [width]" horiz_span_image_and_equal_window_0
158+ , verify "horiz span image is not cropped when window size == size of image [height]" horiz_span_image_and_equal_window_1
159+ , verify "horiz span image is not cropped when window size < size of image [width]" horiz_span_image_and_lesser_window_0
160+ , verify "horiz span image is not cropped when window size > size of image [width]" horiz_span_image_and_greater_window_0
161+ , verify "arbitrary image is padded or cropped" arb_image_is_cropped
162+ , verify "The span ops actually define content for all the rows in the output region" span_ops_actually_fill_rows
163+ , verify "The span ops actually define content for all the columns in the output region" span_ops_actually_fill_columns
164+ , verify "first span op is always to set the text attribute" first_span_op_sets_attr
165+ , verify "a stack of single attr text spans should define content for all the columns [output region == size of stack]"
166+ single_attr_single_span_stack_op_coverage
167+ , verify "a single attr text span is cropped when window size < size of stack image [width]"
168+ single_attr_single_span_stack_cropped_0
169+ , verify "a single attr text span is cropped when window size < size of stack image [height]"
170+ single_attr_single_span_stack_cropped_1
171+ , verify "single attr text span <|> single attr text span cropped. [width]"
172+ single_attr_single_span_stack_cropped_2
173+ , verify "single attr text span <|> single attr text span cropped. [height]"
174+ single_attr_single_span_stack_cropped_3
175+ , verify "single attr text span <-> single attr text span cropped. [width]"
176+ single_attr_single_span_stack_cropped_4
177+ , verify "single attr text span <-> single attr text span cropped. [height]"
178+ single_attr_single_span_stack_cropped_5
179+ ]
180180
test/verify_utf8_width.hs → test/VerifyUtf8Width.hsrenamed+6−5
@@ -1,4 +1,4 @@
1−module Main where
1+module VerifyUtf8Width where
22import Verify
33
44import Graphics.Vty.Attributes
@@ -10,8 +10,9 @@ sw_is_1_column (SingleColumnChar c) = image_width (char def_attr c) == 1
1010dw_is_2_column :: DoubleColumnChar -> Bool
1111dw_is_2_column (DoubleColumnChar c) = image_width (char def_attr c) == 2
1212
13−main = run_test $ do
14− verify "sw_is_1_column" sw_is_1_column
15− verify "dw_is_2_column" dw_is_2_column
16− return ()
13+tests :: IO [Test]
14+tests = return
15+ [ verify "sw_is_1_column" sw_is_1_column
16+ , verify "dw_is_2_column" dw_is_2_column
17+ ]
1718
test/verify_inline.hsdeleted−11
@@ -1,11 +0,0 @@
1−module Main where
2−
3−import Graphics.Vty.Inline
4−import Graphics.Vty.Terminal
5−
6−import Verify
7−
8−main = run_test $ do
9− t <- terminal_handle
10− put_attr_change t $ default_all
11− return ()
test/verify_picture_ops.hsdeleted−9
@@ -1,9 +0,0 @@
1−module Main where
2−
3−import Graphics.Vty.Picture ( translate )
4−
5−import Verify
6−
7−main = run_test $ do
8− return ()
9−
vty.cabal+383−12
@@ -209,18 +209,389 @@ test-suite verify-display-attributes
209209 utf8-string >= 0.3 && < 0.4,
210210 vector >= 0.7
211211
212−-- verify_display_attributes.hs
213−-- verify_empty_image_props.hs
214−-- verify_eval_terminfo_caps.hs
215−-- verify_image_ops.hs
216−-- verify_image_trans.hs
217−-- verify_inline.hs
218−-- verify_parse_terminfo_caps.hs
219−-- verify_picture_ops.hs
220−-- verify_picture_to_span.hs
221−-- verify_span_ops.hs
222−-- verify_utf8_width.hs
223−-- test suites
212+test-suite verify-empty-image-props
213+ default-language: Haskell2010
214+
215+ type: detailed-0.9
216+
217+ hs-source-dirs: src test
218+
219+ test-module: VerifyEmptyImageProps
220+
221+ other-modules: Graphics.Vty.Picture
222+ Verify
223+
224+ build-depends: Cabal == 1.17.*,
225+ QuickCheck == 2.4.*,
226+ random == 1.0.*,
227+ base >= 4 && < 5,
228+ bytestring,
229+ containers,
230+ deepseq >= 1.1 && < 1.4,
231+ ghc-prim,
232+ mtl >= 1.1.1.0 && < 2.2,
233+ parallel >= 2.2 && < 3.3,
234+ parsec >= 2 && < 4,
235+ terminfo >= 0.3 && < 0.4,
236+ unix,
237+ utf8-string >= 0.3 && < 0.4,
238+ vector >= 0.7
239+
240+test-suite verify-eval-terminfo-caps
241+ default-language: Haskell2010
242+
243+ type: detailed-0.9
244+
245+ hs-source-dirs: src test
246+
247+ test-module: VerifyEvalTerminfoCaps
248+
249+ other-modules: Data.Terminfo.Parse
250+ Data.Terminfo.Eval
251+ Data.Marshalling
252+ Codec.Binary.UTF8.Width
253+ Verify
254+
255+ build-depends: Cabal == 1.17.*,
256+ QuickCheck == 2.4.*,
257+ random == 1.0.*,
258+ base >= 4 && < 5,
259+ bytestring,
260+ containers,
261+ deepseq >= 1.1 && < 1.4,
262+ ghc-prim,
263+ mtl >= 1.1.1.0 && < 2.2,
264+ parallel >= 2.2 && < 3.3,
265+ parsec >= 2 && < 4,
266+ terminfo >= 0.3 && < 0.4,
267+ unix,
268+ utf8-string >= 0.3 && < 0.4,
269+ vector >= 0.7
270+
271+test-suite verify-image-ops
272+ default-language: Haskell2010
273+
274+ type: detailed-0.9
275+
276+ hs-source-dirs: src test
277+
278+ test-module: VerifyImageOps
279+
280+ other-modules: Graphics.Vty.Attributes
281+ Graphics.Vty.DisplayAttributes
282+ Graphics.Vty.DisplayRegion
283+ Graphics.Vty.Image
284+ Graphics.Vty.Picture
285+ Graphics.Vty.Span
286+ Graphics.Vty.Debug.Image
287+ Codec.Binary.UTF8.Width
288+ Verify
289+ Verify.Graphics.Vty.Attributes
290+ Verify.Graphics.Vty.Image
291+
292+ c-sources: cbits/gwinsz.c
293+ cbits/set_term_timing.c
294+ cbits/mk_wcwidth.c
295+
296+ include-dirs: cbits
297+
298+ build-depends: Cabal == 1.17.*,
299+ QuickCheck == 2.4.*,
300+ random == 1.0.*,
301+ base >= 4 && < 5,
302+ bytestring,
303+ containers,
304+ deepseq >= 1.1 && < 1.4,
305+ ghc-prim,
306+ mtl >= 1.1.1.0 && < 2.2,
307+ parallel >= 2.2 && < 3.3,
308+ parsec >= 2 && < 4,
309+ terminfo >= 0.3 && < 0.4,
310+ unix,
311+ utf8-string >= 0.3 && < 0.4,
312+ vector >= 0.7
313+
314+test-suite verify-image-trans
315+ default-language: Haskell2010
316+
317+ type: detailed-0.9
318+
319+ hs-source-dirs: src test
320+
321+ test-module: VerifyImageTrans
322+
323+ other-modules: Graphics.Vty.Attributes
324+ Graphics.Vty.Debug.Image
325+ Graphics.Vty.Image
326+ Codec.Binary.UTF8.Width
327+ Verify
328+ Verify.Graphics.Vty.Attributes
329+ Verify.Graphics.Vty.Image
330+
331+ c-sources: cbits/mk_wcwidth.c
332+
333+ include-dirs: cbits
334+
335+ build-depends: Cabal == 1.17.*,
336+ QuickCheck == 2.4.*,
337+ random == 1.0.*,
338+ base >= 4 && < 5,
339+ bytestring,
340+ containers,
341+ deepseq >= 1.1 && < 1.4,
342+ ghc-prim,
343+ mtl >= 1.1.1.0 && < 2.2,
344+ parallel >= 2.2 && < 3.3,
345+ parsec >= 2 && < 4,
346+ terminfo >= 0.3 && < 0.4,
347+ unix,
348+ utf8-string >= 0.3 && < 0.4,
349+ vector >= 0.7
350+
351+test-suite verify-inline
352+ default-language: Haskell2010
353+
354+ type: detailed-0.9
355+
356+ hs-source-dirs: src test
357+
358+ test-module: VerifyInline
359+
360+ other-modules: Codec.Binary.UTF8.Width
361+ Data.Terminfo.Eval
362+ Data.Terminfo.Parse
363+ Data.Marshalling
364+ Graphics.Vty.Attributes
365+ Graphics.Vty.DisplayAttributes
366+ Graphics.Vty.DisplayRegion
367+ Graphics.Vty.Image
368+ Graphics.Vty.Inline
369+ Graphics.Vty.Span
370+ Graphics.Vty.Terminal
371+ Graphics.Vty.Terminal.Generic
372+ Graphics.Vty.Terminal.MacOSX
373+ Graphics.Vty.Terminal.TerminfoBased
374+ Graphics.Vty.Terminal.XTermColor
375+
376+ c-sources: cbits/gwinsz.c
377+ cbits/set_term_timing.c
378+ cbits/mk_wcwidth.c
379+
380+ include-dirs: cbits
381+
382+ build-depends: Cabal == 1.17.*,
383+ QuickCheck == 2.4.*,
384+ random == 1.0.*,
385+ base >= 4 && < 5,
386+ bytestring,
387+ containers,
388+ deepseq >= 1.1 && < 1.4,
389+ ghc-prim,
390+ mtl >= 1.1.1.0 && < 2.2,
391+ parallel >= 2.2 && < 3.3,
392+ parsec >= 2 && < 4,
393+ terminfo >= 0.3 && < 0.4,
394+ unix,
395+ utf8-string >= 0.3 && < 0.4,
396+ vector >= 0.7
397+
398+test-suite verify-parse-terminfo-caps
399+ default-language: Haskell2010
400+
401+ type: detailed-0.9
402+
403+ hs-source-dirs: src test
404+
405+ test-module: VerifyParseTerminfoCaps
406+
407+ other-modules: Data.Terminfo.Parse
408+ Verify
409+ Verify.Data.Terminfo.Parse
410+
411+ include-dirs: cbits
412+
413+ build-depends: Cabal == 1.17.*,
414+ QuickCheck == 2.4.*,
415+ random == 1.0.*,
416+ base >= 4 && < 5,
417+ bytestring,
418+ containers,
419+ deepseq >= 1.1 && < 1.4,
420+ ghc-prim,
421+ mtl >= 1.1.1.0 && < 2.2,
422+ parallel >= 2.2 && < 3.3,
423+ parsec >= 2 && < 4,
424+ terminfo >= 0.3 && < 0.4,
425+ unix,
426+ utf8-string >= 0.3 && < 0.4,
427+ vector >= 0.7
428+
429+test-suite verify-picture-ops
430+ default-language: Haskell2010
431+
432+ type: detailed-0.9
433+
434+ hs-source-dirs: src test
435+
436+ test-module: VerifyPictureOps
437+
438+ other-modules: Graphics.Vty.Picture
439+ Verify
440+
441+ include-dirs: cbits
442+
443+ build-depends: Cabal == 1.17.*,
444+ QuickCheck == 2.4.*,
445+ random == 1.0.*,
446+ base >= 4 && < 5,
447+ bytestring,
448+ containers,
449+ deepseq >= 1.1 && < 1.4,
450+ ghc-prim,
451+ mtl >= 1.1.1.0 && < 2.2,
452+ parallel >= 2.2 && < 3.3,
453+ parsec >= 2 && < 4,
454+ terminfo >= 0.3 && < 0.4,
455+ unix,
456+ utf8-string >= 0.3 && < 0.4,
457+ vector >= 0.7
458+
459+test-suite verify-picture-to-span
460+ default-language: Haskell2010
461+
462+ type: detailed-0.9
463+
464+ hs-source-dirs: src test
465+
466+ test-module: VerifyPictureToSpan
467+
468+ other-modules: Graphics.Vty
469+ Graphics.Vty.Attributes
470+ Graphics.Vty.DisplayAttributes
471+ Graphics.Vty.DisplayRegion
472+ Graphics.Vty.Image
473+ Graphics.Vty.Picture
474+ Graphics.Vty.Span
475+ Graphics.Vty.Terminal
476+ Graphics.Vty.Terminal.Generic
477+ Graphics.Vty.Terminal.Debug
478+ Graphics.Vty.Debug
479+ Graphics.Vty.Debug.Image
480+ Codec.Binary.UTF8.Width
481+ Verify
482+ Verify.Graphics.Vty.Attributes
483+ Verify.Graphics.Vty.DisplayRegion
484+ Verify.Graphics.Vty.Picture
485+ Verify.Graphics.Vty.Image
486+ Verify.Graphics.Vty.Span
487+
488+ c-sources: cbits/gwinsz.c
489+ cbits/set_term_timing.c
490+ cbits/mk_wcwidth.c
491+
492+ include-dirs: cbits
493+
494+ build-depends: Cabal == 1.17.*,
495+ QuickCheck == 2.4.*,
496+ random == 1.0.*,
497+ base >= 4 && < 5,
498+ bytestring,
499+ containers,
500+ deepseq >= 1.1 && < 1.4,
501+ ghc-prim,
502+ mtl >= 1.1.1.0 && < 2.2,
503+ parallel >= 2.2 && < 3.3,
504+ parsec >= 2 && < 4,
505+ terminfo >= 0.3 && < 0.4,
506+ unix,
507+ utf8-string >= 0.3 && < 0.4,
508+ vector >= 0.7
509+
510+test-suite verify-span-ops
511+ default-language: Haskell2010
512+
513+ type: detailed-0.9
514+
515+ hs-source-dirs: src test
516+
517+ test-module: VerifySpanOps
518+
519+ other-modules: Graphics.Vty
520+ Graphics.Vty.Attributes
521+ Graphics.Vty.DisplayAttributes
522+ Graphics.Vty.DisplayRegion
523+ Graphics.Vty.Image
524+ Graphics.Vty.Picture
525+ Graphics.Vty.Span
526+ Graphics.Vty.Terminal
527+ Graphics.Vty.Terminal.Generic
528+ Graphics.Vty.Terminal.Debug
529+ Graphics.Vty.Debug
530+ Graphics.Vty.Debug.Image
531+ Codec.Binary.UTF8.Width
532+ Verify
533+ Verify.Graphics.Vty.Attributes
534+ Verify.Graphics.Vty.DisplayRegion
535+ Verify.Graphics.Vty.Picture
536+ Verify.Graphics.Vty.Image
537+ Verify.Graphics.Vty.Span
538+
539+ c-sources: cbits/gwinsz.c
540+ cbits/set_term_timing.c
541+ cbits/mk_wcwidth.c
542+
543+ include-dirs: cbits
544+
545+ build-depends: Cabal == 1.17.*,
546+ QuickCheck == 2.4.*,
547+ random == 1.0.*,
548+ base >= 4 && < 5,
549+ bytestring,
550+ containers,
551+ deepseq >= 1.1 && < 1.4,
552+ ghc-prim,
553+ mtl >= 1.1.1.0 && < 2.2,
554+ parallel >= 2.2 && < 3.3,
555+ parsec >= 2 && < 4,
556+ terminfo >= 0.3 && < 0.4,
557+ unix,
558+ utf8-string >= 0.3 && < 0.4,
559+ vector >= 0.7
560+
561+test-suite verify-utf8-width
562+ default-language: Haskell2010
563+
564+ type: detailed-0.9
565+
566+ hs-source-dirs: src test
567+
568+ test-module: VerifyUtf8Width
569+
570+ other-modules: Codec.Binary.UTF8.Width
571+ Graphics.Vty.Attributes
572+ Graphics.Vty.Image
573+ Verify
574+
575+ c-sources: cbits/mk_wcwidth.c
576+
577+ include-dirs: cbits
578+
579+ build-depends: Cabal == 1.17.*,
580+ QuickCheck == 2.4.*,
581+ random == 1.0.*,
582+ base >= 4 && < 5,
583+ bytestring,
584+ containers,
585+ deepseq >= 1.1 && < 1.4,
586+ ghc-prim,
587+ mtl >= 1.1.1.0 && < 2.2,
588+ parallel >= 2.2 && < 3.3,
589+ parsec >= 2 && < 4,
590+ terminfo >= 0.3 && < 0.4,
591+ unix,
592+ utf8-string >= 0.3 && < 0.4,
593+ vector >= 0.7
594+
224595-- Bench.hs
225596-- Bench2.hs
226597-- BenchRenderChar.hs