-- | Interpreter tests involving 'StackRef'. module Test.Interpreter.StackRef ( test_mkStackRef ) where import Test.Hspec.Expectations (shouldSatisfy) import Test.Tasty (TestTree) import Test.Tasty.HUnit (testCase) import Michelson.Test (contractProp) import Michelson.Test.Dummy (dummyContractEnv) import Michelson.Typed test_mkStackRef :: TestTree test_mkStackRef = testCase "does not segfault" $ contractProp fullContract (flip shouldSatisfy isRight . fst) dummyContractEnv () () where stackRef = PrintComment . one . Right $ mkStackRef @1 fullContract :: FullContract 'TUnit 'TUnit fullContract = FullContract { fcCode = contractCode , fcStoreNotes = starNotes , fcParamNotesSafe = starParamNotes } contractCode :: ContractCode 'TUnit 'TUnit contractCode = CAR `Seq` DUP `Seq` Ext (PRINT stackRef) `Seq` DROP `Seq` NIL `Seq` PAIR