From 3621971ac9d21bcea27bd1715471ffb20d0037de Mon Sep 17 00:00:00 2001 From: Avi Dessauer Date: Tue, 18 Oct 2022 23:53:58 -0500 Subject: [PATCH] Fix/delete tests --- test/Spec.hs | 199 ++------------------------------------------- test/benchSection | 3 + test/hie.yaml.cbl | 20 ----- test/stackHie.yaml | 14 +++- 4 files changed, 22 insertions(+), 214 deletions(-) diff --git a/test/Spec.hs b/test/Spec.hs index 95795d7..6da4c45 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -13,213 +13,32 @@ main = hspec spec spec :: Spec spec = do - describe "Should Succeed" $ - it "successfully parses executable section" $ - exeSection ~> parseExe 0 - `shouldParse` [Comp Exe "gen-hie" "app/Main.hs"] - describe "Should Succeed" $ - it "successfully parses test section" $ - testSection ~> parseTestSuite 0 - `shouldParse` [Comp Test "implicit-hie-test" "test"] - describe "Should Succeed" $ - it "successfully parses library section" $ - libSection ~> parseLib 0 - `shouldParse` [Comp Lib "" "src"] - describe "Should Succeed" $ - it "successfully parses library section with 2 hs-source-dirs" $ - libSection2 ~> parseLib 0 - `shouldParse` [Comp Lib "" "src", Comp Lib "" "src2"] - describe "Should Succeed" $ - it "successfully parses library section with 2 paths under hs-source-dirs" $ - libSection3 ~> parseLib 0 - `shouldParse` [Comp Lib "" "src", Comp Lib "" "src2"] - describe "Should Succeed" $ - it "successfully parses bench section" $ - do - bs <- T.readFile "test/benchSection" - bs ~> parseBench 0 - `shouldParse` [Comp Bench "folds" "benchmarks/folds.hs"] describe "Should Succeed" $ it "successfully parses package" $ do cf <- T.readFile "implicit-hie.cabal" - cf ~> parsePackage + parsePackage' cf `shouldParse` Package "implicit-hie" - [ Comp Lib "" "src", + [ Comp Test "implicit-hie-test" "test/Spec.hs", Comp Exe "gen-hie" "app/Main.hs", - Comp Test "implicit-hie-test" "test" + Comp Lib "" "src/Hie/Cabal/Parser.hs", + Comp Lib "" "src/Hie/Locate.hs", + Comp Lib "" "src/Hie/Yaml.hs" ] - describe "Should Succeed" $ - it - "skips to end of block section" - $ let r = "test\n" - in (libSection <> r) ~?> parseLib 0 - `leavesUnconsumed` r + describe "Should Succeed" $ it "successfully generates stack hie.yaml" $ do sf <- readFile "test/stackHie.yaml" cf <- T.readFile "implicit-hie.cabal" - (hieYaml "stack" . fmtPkgs "stack" . (: []) <$> parseOnly parsePackage cf) + (hieYaml "stack" . fmtPkgs "stack" . (: []) <$> parsePackage' cf) `shouldBe` Right sf + describe "Should Succeed" $ it "successfully generates cabal hie.yaml for haskell-language-server" $ do f <- T.readFile "test/haskell-language-server-cabal" o <- readFile "test/hie.yaml.cbl" - (hieYaml "cabal" . fmtPkgs "cabal" . (: []) <$> parseOnly parsePackage f) + (hieYaml "cabal" . fmtPkgs "cabal" . (: []) <$> parsePackage' f) `shouldBe` Right o - describe "Should Succeed" $ - it "successfully parses comma list" $ - ("one, two" :: Text) ~> parseList 1 `shouldParse` ["one", "two"] - describe "Should Succeed" $ - it "successfully parses newline list" $ - ("one\n two \n three3" :: Text) ~> parseList 1 - `shouldParse` ["one", "two", "three3"] - describe "Should Succeed" $ - it "successfully parses newline comma list" $ - ("one\n two, three3" :: Text) ~> parseList 1 - `shouldParse` ["one", "two", "three3"] - describe "Should Succeed" $ - it "quoted list" $ - ("\"one\"\n two\n three3" :: Text) ~> parseList 1 - `shouldParse` ["one", "two", "three3"] - describe "Should Succeed" $ - it "list with leading commas" $ - ("one\n , two\n , three3" :: Text) ~> parseList 1 - `shouldParse` ["one", "two", "three3"] - describe "Should Succeed" $ - it "list with a comment" $ - ("foo\n -- need to include this too\n bar\n" :: Text) ~> parseList 1 - `shouldParse` ["foo", "bar"] - describe "Should Succeed" $ - it "list2 with a comment" $ - ("foo -- need to include this too\n bar\n" :: Text) ~> parseList 1 - `shouldParse` ["foo", "bar"] - describe "Should Succeed" $ - it "list3 with a comment" $ - ("foo -- need to include this too\n bar" :: Text) ~> parseList 1 - `shouldParse` ["foo", "bar"] - describe "Should Succeed" $ - it "list4 with a comment" $ - ("foo\n bar\n -- need to include this too" :: Text) ~> parseList 1 - `shouldParse` ["foo", "bar"] - describe "Should Succeed" $ - it "list5 with a comment" $ - ("foo\n bar -- need to include this too" :: Text) ~> parseList 1 - `shouldParse` ["foo", "bar"] - describe "Should Succeed" $ - it "succesfully parses exe component with other-modules containing dots" $ - exeSection2 ~> parseExe 0 - `shouldParse` [ Comp Exe "gen-hie" "app/Main.hs", - Comp Exe "gen-hie" "app/Hie/Executable/Helper.hs", - Comp Exe "gen-hie" "app/Hie/Executable/Utils.hs" - ] - describe "Should Succeed" $ - it "succesfully parses single other-modules" $ - ("other-modules: test\ndefault-language: Haskell2011" :: Text) ~?> field 0 "other-modules" parseList - `leavesUnconsumed` "default-language: Haskell2011" - describe "Should Succeed" $ - it "succesfully parses empty other-modules1" $ - ("other-modules: test\ndefault-language: Haskell2011" :: Text) ~?> field 0 "other-modules" parseList - `leavesUnconsumed` "default-language: Haskell2011" - describe "Should Succeed" $ - it "succesfully parses empty other-modules2" $ - (" other-modules: \n build-depends:\n base >=4.9 && <5" :: Text) ~> field 0 "other-modules" parseList - `shouldParse` [] - -exeSection :: Text -exeSection = - "executable gen-hie\n\ - \ other-modules:\n\ - \ Paths_implicit_hie\n\ - \ autogen-modules:\n\ - \ Paths_implicit_hie\n\ - \ hs-source-dirs:\n\ - \ app\n\ - \ ghc-options: -O2\n\ - \ main-is: Main.hs \n" - -testSection :: Text -testSection = - "test-suite implicit-hie-test\n\ - \ type: exitcode-stdio-1.0\n\ - \ other-modules:\n\ - \ Paths_implicit_hie\n\ - \ hs-source-dirs:\n\ - \ test\n\ - \ ghc-options: -fspecialize-aggressively -Wall -Wincomplete-record-updates -Wincomplete-uni-patterns -fno-warn-unused-imports -fno-warn-unused-binds -fno-warn-name-shadowing -fwarn-redundant-constraints -threaded -rtsopts -with-rtsopts=-N\n\ - \ main-is: Spec.hs\n\ - \ build-depends:\n\ - \ attoparsec\n\ - \ , base >=4.7 && <5\n\ - \ , hspec\n\ - \ , hspec-attoparsec\n\ - \ , implicit-hie\n\ - \ , text\n\ - \ default-language: Haskell2010\n" - -libSection :: Text -libSection = - "library\n\ - \ exposed-modules:\n\ - \ Lib\n\ - \ other-modules:\n\ - \ Paths_implicit_hie\n\ - \ hs-source-dirs:\n\ - \ src\n\ - \ ghc-options: -fspecialize-aggressively -Wall -Wincomplete-record-updates -Wincomplete-uni-patterns -fno-warn-unused-imports -fno-warn-unused-binds -fno-warn-name-shadowing -fwarn-redundant-constraints\n\ - \ build-depends:\n\ - \ attoparsec\n\ - \ , base >=4.7 && <5\n\ - \ , text\n\ - \ default-language: Haskell2010\n\ - \" - -libSection2 :: Text -libSection2 = - "library\n\ - \ exposed-modules:\n\ - \ Lib\n\ - \ other-modules:\n\ - \ Paths_implicit_hie\n\ - \ hs-source-dirs:\n\ - \ src\n\ - \ hs-source-dirs:\n\ - \ src2\n\ - \ ghc-options: -fspecialize-aggressively -Wall -Wincomplete-record-updates -Wincomplete-uni-patterns -fno-warn-unused-imports -fno-warn-unused-binds -fno-warn-name-shadowing -fwarn-redundant-constraints\n\ - \ build-depends:\n\ - \ attoparsec\n\ - \ , base >=4.7 && <5\n\ - \ , text\n\ - \ default-language: Haskell2010\n\ - \" - -libSection3 :: Text -libSection3 = - "library\n\ - \ exposed-modules:\n\ - \ Lib\n\ - \ other-modules:\n\ - \ Paths_implicit_hie\n\ - \ hs-source-dirs:\n\ - \ src,\n\ - \ src2\n\ - \ ghc-options: -fspecialize-aggressively -Wall -Wincomplete-record-updates -Wincomplete-uni-patterns -fno-warn-unused-imports -fno-warn-unused-binds -fno-warn-name-shadowing -fwarn-redundant-constraints\n\ - \ build-depends:\n\ - \ attoparsec\n\ - \ , base >=4.7 && <5\n\ - \ , text\n\ - \ default-language: Haskell2010\n\ - \" - -exeSection2 :: Text -exeSection2 = - "executable gen-hie\n\ - \ other-modules:\n\ - \ Hie.Executable.Helper\n\ - \ Hie.Executable.Utils\n\ - \ hs-source-dirs:\n\ - \ app\n\ - \ main-is: Main.hs \n" diff --git a/test/benchSection b/test/benchSection index d32386c..6b22bcc 100644 --- a/test/benchSection +++ b/test/benchSection @@ -1,3 +1,6 @@ +name: folds-test +version: 0.1 + benchmark folds default-language: Haskell2010 hs-source-dirs: benchmarks diff --git a/test/hie.yaml.cbl b/test/hie.yaml.cbl index 4faf065..04cd243 100644 --- a/test/hie.yaml.cbl +++ b/test/hie.yaml.cbl @@ -1,22 +1,2 @@ cradle: cabal: - - path: "src" - component: "lib:haskell-language-server" - - - path: "exe/Main.hs" - component: "haskell-language-server:exe:haskell-language-server" - - - path: "exe/Arguments.hs" - component: "haskell-language-server:exe:haskell-language-server" - - - path: "exe/Wrapper.hs" - component: "haskell-language-server:exe:haskell-language-server-wrapper" - - - path: "exe/Arguments.hs" - component: "haskell-language-server:exe:haskell-language-server-wrapper" - - - path: "test/functional" - component: "haskell-language-server:test:func-test" - - - path: "test/utils" - component: "haskell-language-server:lib:hls-test-utils" diff --git a/test/stackHie.yaml b/test/stackHie.yaml index 8a7aed6..518e039 100644 --- a/test/stackHie.yaml +++ b/test/stackHie.yaml @@ -1,10 +1,16 @@ cradle: stack: - - path: "src" - component: "implicit-hie:lib" + - path: "test/Spec.hs" + component: "implicit-hie:test:implicit-hie-test" - path: "app/Main.hs" component: "implicit-hie:exe:gen-hie" - - path: "test" - component: "implicit-hie:test:implicit-hie-test" + - path: "src/Hie/Cabal/Parser.hs" + component: "implicit-hie:lib" + + - path: "src/Hie/Locate.hs" + component: "implicit-hie:lib" + + - path: "src/Hie/Yaml.hs" + component: "implicit-hie:lib"