packages feed

ghc-bench-0.3.3: test/RunSpec.hs

module RunSpec (spec) where

import Helper
import System.IO.Silently
import README (ensureFile)

import Run qualified
import Run (DryRun(..), Prepare(..), PrintQR(..))

spec :: Spec
spec = do
  describe "--dry-run" do
    it "prints commands" do
      let run = Run.run "~/.cache/ghc-bench" ($ "<sandbox>") DryRun NoPrepare [] "/path/to/ghc-9.12.4" 20
      capture_ run >>= ensureFile "test/dry-run" . encodeUtf8 . pack

  describe "parseOptions" do
    it "accepts --dry-run" do
      Run.parseOptions ["--dry-run", "foo", "bar"]
        `shouldBe` (DryRun, (NoPrepare, (NoPrintQR, ["foo", "bar"])))

    it "accepts --prepare" do
      Run.parseOptions ["--prepare", "foo", "bar"]
        `shouldBe` (NoDryRun, (Prepare, (NoPrintQR, ["foo", "bar"])))

    it "accepts --qr" do
      Run.parseOptions ["--qr", "foo", "bar"]
        `shouldBe` (NoDryRun, (NoPrepare, (PrintQR, ["foo", "bar"])))