Test findModuleFiles.
authorAndrey Mokhov <andrey.mokhov@gmail.com>
Sun, 21 Feb 2016 02:22:26 +0000 (02:22 +0000)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Sun, 21 Feb 2016 02:22:26 +0000 (02:22 +0000)
See #197, #210.

src/Rules/Selftest.hs

index f549b0f..f4890b0 100644 (file)
@@ -6,6 +6,7 @@ import Development.Shake
 import Test.QuickCheck
 
 import Base
+import Oracles.ModuleFiles
 import Settings.Builders.Ar (chunksOfSize)
 import Way
 
@@ -26,6 +27,7 @@ selftestRules =
         testMatchVersionedFilePath
         testModuleNames
         testLookupAll
+        testModuleFilesOracle
 
 testWays :: Action ()
 testWays = do
@@ -83,3 +85,14 @@ testLookupAll = do
     dicts = nubBy ((==) `on` fst) <$> vector 20
     extras :: Gen [Int]
     extras = vector 20
+
+testModuleFilesOracle :: Action ()
+testModuleFilesOracle = do
+    putBuild $ "==== moduleFilesOracle"
+    result <- findModuleFiles ["compiler/codeGen", "compiler/parser"]
+        [ "CodeGen.Platform.ARM"
+        , "Lexer"
+        , "Missing.Module"]
+    test $ result == [ Just "compiler/codeGen/CodeGen/Platform/ARM.hs"
+                     , Just "compiler/parser/Lexer.x"
+                     , Nothing]