From 3835bc887733722a21948085a02b3a046fc5dd0a Mon Sep 17 00:00:00 2001 From: rsoeldner Date: Tue, 2 Apr 2024 09:18:26 +0200 Subject: [PATCH] fix hyperlane gas tests --- src/Pact/GasModel/GasTests.hs | 6 +++++- src/Pact/Native.hs | 3 ++- tests/GasModelSpec.hs | 9 ++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Pact/GasModel/GasTests.hs b/src/Pact/GasModel/GasTests.hs index 43216e5d9..9ffec0974 100644 --- a/src/Pact/GasModel/GasTests.hs +++ b/src/Pact/GasModel/GasTests.hs @@ -42,7 +42,11 @@ import Pact.JSON.Legacy.Value -- | Gas benchmark tests for Pact native functions allNatives :: [NativeDefName] -allNatives = map fst (concatMap snd natives) <> nonNatives +allNatives = map fst (concatMap snd enhancedNatives) <> nonNatives + where + -- Note: Since we are forking natives, the `natives` list + -- does not fully capture all available natives for the tests. + enhancedNatives = hyperlaneAmendedDefs:natives -- | Non-native concepts to benchmark nonNatives :: [NativeDefName] diff --git a/src/Pact/Native.hs b/src/Pact/Native.hs index 29c30b6d0..5440272ed 100644 --- a/src/Pact/Native.hs +++ b/src/Pact/Native.hs @@ -21,6 +21,7 @@ module Pact.Native ( natives , nativeDefs + , hyperlaneAmendedDefs , pact412NativeDefs , moduleToMap , distinctDef @@ -146,7 +147,7 @@ nativeDefs :: HM.HashMap Text Ref nativeDefs = mconcat $ map moduleToMap (hyperlaneDefs:natives) pact412NativeDefs :: HM.HashMap Text Ref -pact412NativeDefs = mconcat $ map moduleToMap $ hyperlaneAmendedDefs:natives +pact412NativeDefs = foldMap moduleToMap $ hyperlaneAmendedDefs:natives moduleToMap :: NativeModule -> HM.HashMap Text Ref moduleToMap = HM.fromList . map (asString *** Direct) . snd diff --git a/tests/GasModelSpec.hs b/tests/GasModelSpec.hs index cbfc67953..7d1a52694 100644 --- a/tests/GasModelSpec.hs +++ b/tests/GasModelSpec.hs @@ -89,9 +89,10 @@ untestedNativesCheck = do , "verify-spv" , "public-chain-data" , "dec" + , "hyperlane-decode-token-message" + , "hyperlane-token-erc20","hyperlane-token-msg" , "list" , "continue" - , "hyperlane-decode-token-message" ]) allGasTestsAndGoldenShouldPass :: Spec @@ -138,14 +139,16 @@ goldenSizeOfPactValues = do allNativesInGasTable :: Spec allNativesInGasTable = do it "all native functions should be in gas table" $ do - let justNatives = map (asString . fst) (concatMap snd natives) + let justNatives = map (asString . fst) (concatMap snd $ hyperlaneAmendedDefs:natives) absent li name = case (Map.lookup name defaultGasTable) of Nothing -> name : li Just _ -> li absentNatives = foldl' absent [] justNatives (S.fromList absentNatives) `shouldBe` - (S.fromList ["CHARSET_ASCII", "CHARSET_LATIN1", "public-chain-data", "list"]) + (S.fromList ["CHARSET_ASCII", "CHARSET_LATIN1" + ,"hyperlane-token-erc20", "hyperlane-token-msg" + ,"public-chain-data", "list"]) -- | Use this to run a single named test. _runNative :: NativeDefName -> IO (Maybe [(T.Text,Gas)])