From 134713a6c3620bf5b71ceaa2b6bed3a228d1c297 Mon Sep 17 00:00:00 2001 From: Brad Richardson Date: Thu, 15 Oct 2020 10:36:58 -0500 Subject: Add test for modules a module uses --- bootstrap/unit_test/ModuleSourceConstructionTest.hs | 10 ++++++++-- bootstrap/unit_test/ProgramSourceConstructionTest.hs | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'bootstrap/unit_test') diff --git a/bootstrap/unit_test/ModuleSourceConstructionTest.hs b/bootstrap/unit_test/ModuleSourceConstructionTest.hs index fd69844..20bc011 100644 --- a/bootstrap/unit_test/ModuleSourceConstructionTest.hs +++ b/bootstrap/unit_test/ModuleSourceConstructionTest.hs @@ -31,12 +31,13 @@ test = return $ givenInput , then' "its object file name is the 'flattened' path of the source file with '.o' appeneded" checkModuleObjectFileName + , then' "it knows what modules it uses directly" checkModuleModulesUsed ] ] exampleModule :: RawSource -exampleModule = - RawSource moduleSourceFileName' $ unlines ["module some_module", "end module"] +exampleModule = RawSource moduleSourceFileName' $ unlines + ["module some_module", " use module1", "USE MODULE2", "end module"] moduleSourceFileName' :: String moduleSourceFileName' = "some" "file" "somewhere.f90" @@ -55,3 +56,8 @@ checkModuleObjectFileName m@(Module{}) = assertEquals ("." "some_file_somewhere.f90.o") $ (moduleObjectFileName m) "." checkModuleObjectFileName _ = fail' "wasn't a Module" + +checkModuleModulesUsed :: Source -> Result +checkModuleModulesUsed m@(Module{}) = + assertEquals ["module1", "module2"] $ moduleModulesUsed m +checkModuleModulesUsed _ = fail' "wasn't a Module" diff --git a/bootstrap/unit_test/ProgramSourceConstructionTest.hs b/bootstrap/unit_test/ProgramSourceConstructionTest.hs index 91f0d90..6369965 100644 --- a/bootstrap/unit_test/ProgramSourceConstructionTest.hs +++ b/bootstrap/unit_test/ProgramSourceConstructionTest.hs @@ -7,7 +7,6 @@ import BuildModel ( RawSource(..) , Source(..) , processRawSource ) -import System.FilePath ( () ) import Hedge ( Result , Test , assertEquals @@ -17,6 +16,7 @@ import Hedge ( Result , then' , whenTransformed ) +import System.FilePath ( () ) test :: IO (Test ()) test = return $ givenInput @@ -64,5 +64,6 @@ checkProgramObjectFileName p@(Program{}) = checkProgramObjectFileName _ = fail' "wasn't a Program" checkProgramModulesUsed :: Source -> Result -checkProgramModulesUsed p@(Program{}) = assertEquals ["module1", "module2"] $ programModulesUsed p +checkProgramModulesUsed p@(Program{}) = + assertEquals ["module1", "module2"] $ programModulesUsed p checkProgramModulesUsed _ = fail' "wasn't a Program" -- cgit v1.2.3