aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Richardson <everythingfunctional@protonmail.com>2020-10-19 15:42:22 -0500
committerBrad Richardson <everythingfunctional@protonmail.com>2020-10-19 15:42:22 -0500
commita981372352e881d1cc7d542628959c0ac501e96e (patch)
tree3799ec4d4f9e2df106274ff043b68fcc8973825d
parentb927218b5690fe7cd4080af53831311d59db6987 (diff)
downloadfpm-a981372352e881d1cc7d542628959c0ac501e96e.tar.gz
fpm-a981372352e881d1cc7d542628959c0ac501e96e.zip
Add test for submodule object file name
-rw-r--r--bootstrap/src/BuildModel.hs5
-rw-r--r--bootstrap/unit_test/SubmoduleSourceConstructionTest.hs9
2 files changed, 13 insertions, 1 deletions
diff --git a/bootstrap/src/BuildModel.hs b/bootstrap/src/BuildModel.hs
index 9a9866a..70046d7 100644
--- a/bootstrap/src/BuildModel.hs
+++ b/bootstrap/src/BuildModel.hs
@@ -53,6 +53,7 @@ data Source =
}
| Submodule
{ submoduleSourceFileName :: FilePath
+ , submoduleObjectFileName :: FilePath -> FilePath
}
processRawSource :: RawSource -> Source
@@ -76,7 +77,9 @@ processRawSource rawSource =
, moduleProducesSmod = hasModuleSubprogramDeclaration parsedContents
}
else if hasSubmoduleDeclaration parsedContents
- then Submodule { submoduleSourceFileName = sourceFileName }
+ then Submodule { submoduleSourceFileName = sourceFileName
+ , submoduleObjectFileName = objectFileName
+ }
else undefined
pathSeparatorsToUnderscores :: FilePath -> FilePath
diff --git a/bootstrap/unit_test/SubmoduleSourceConstructionTest.hs b/bootstrap/unit_test/SubmoduleSourceConstructionTest.hs
index 6158939..5295a97 100644
--- a/bootstrap/unit_test/SubmoduleSourceConstructionTest.hs
+++ b/bootstrap/unit_test/SubmoduleSourceConstructionTest.hs
@@ -28,6 +28,9 @@ test = return $ givenInput
[ then' "it is a Submodule" checkIsSubmodule
, then' "its source file name is the same as the original"
checkSubmoduleSourceFileName
+ , then'
+ "its object file name is the 'flattened' path of the source file with '.o' appeneded"
+ checkSubmoduleObjectFileName
]
]
@@ -46,3 +49,9 @@ checkSubmoduleSourceFileName :: Source -> Result
checkSubmoduleSourceFileName s@(Submodule{}) =
assertEquals submoduleSourceFileName' $ submoduleSourceFileName s
checkSubmoduleSourceFileName _ = fail' "wasn't a Submodule"
+
+checkSubmoduleObjectFileName :: Source -> Result
+checkSubmoduleObjectFileName s@(Submodule{}) =
+ assertEquals ("." </> "some_file_somewhere.f90.o")
+ $ (submoduleObjectFileName s) "."
+checkSubmoduleObjectFileName _ = fail' "wasn't a Submodule"