aboutsummaryrefslogtreecommitdiff
path: root/bootstrap/test/Spec.hs
blob: 6e9daa2104e7c73853641952f06fe728808986ce (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import           Development.Shake.FilePath     ( (</>) )
import           Fpm                            ( Arguments(..)
                                                , start
                                                )
import           System.Directory               ( withCurrentDirectory )

example_path = "test" </> "example_packages"

main :: IO ()
main = do
  testHelloWorld
  testHelloComplex
  testHelloFpm
  testCircular
  testWithMakefile
  testMakefileComplex
  testSubmodule

testHelloWorld :: IO ()
testHelloWorld =
  withCurrentDirectory (example_path </> "hello_world") $ start $ Run
    { runRelease = False
    , runExample = False
    , runCompiler = "gfortran"
    , runFlags = []
    , runRunner = Nothing
    , runTarget  = Nothing
    , runArgs    = Nothing
    }

testHelloComplex :: IO ()
testHelloComplex =
  withCurrentDirectory (example_path </> "hello_complex") $ start $ Test
    { testRelease = False
    , testCompiler = "gfortran"
    , testFlags = []
    , testRunner = Nothing
    , testTarget  = Nothing
    , testArgs    = Nothing
    }

testHelloFpm :: IO ()
testHelloFpm =
  withCurrentDirectory (example_path </> "hello_fpm") $ start $ Run
    { runRelease = False
    , runExample = False
    , runCompiler = "gfortran"
    , runFlags = []
    , runRunner = Nothing
    , runTarget  = Nothing
    , runArgs    = Nothing
    }

testWithExamples :: IO ()
testWithExamples =
  withCurrentDirectory (example_path </> "with_examples") $ start $ Run
    { runRelease = False
    , runExample = True
    , runCompiler = "gfortran"
    , runFlags = []
    , runRunner = Nothing
    , runTarget  = Nothing
    , runArgs    = Nothing
    }

testCircular :: IO ()
testCircular =
  withCurrentDirectory (example_path </> "circular_example") $ start $ Test
    { testRelease = False
    , testCompiler = "gfortran"
    , testFlags = []
    , testRunner = Nothing
    , testTarget  = Nothing
    , testArgs    = Nothing
    }

testWithMakefile :: IO ()
testWithMakefile =
  withCurrentDirectory (example_path </> "with_makefile") $ start $ Build
    { buildRelease = False
    , buildCompiler = "gfortran"
    , buildFlags = []
    }

testMakefileComplex :: IO ()
testMakefileComplex =
  withCurrentDirectory (example_path </> "makefile_complex") $ start $ Run
    { runRelease = False
    , runExample = False
    , runCompiler = "gfortran"
    , runFlags = []
    , runRunner = Nothing
    , runTarget  = Nothing
    , runArgs    = Nothing
    }

testSubmodule :: IO ()
testSubmodule =
  withCurrentDirectory (example_path </> "submodules") $ start $ Build
    { buildRelease = False
    , buildCompiler = "gfortran"
    , buildFlags = []
    }