tests.rs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. // SPDX-License-Identifier: Apache-2.0
  2. #[cfg(test)]
  3. use crate::{codegen, sema::ast};
  4. #[test]
  5. fn test_builtin_conversion() {
  6. let input: Vec<ast::Builtin> = vec![
  7. ast::Builtin::Accounts,
  8. ast::Builtin::AddMod,
  9. ast::Builtin::ArrayLength,
  10. ast::Builtin::Balance,
  11. ast::Builtin::Blake2_128,
  12. ast::Builtin::Blake2_256,
  13. ast::Builtin::BlockCoinbase,
  14. ast::Builtin::BlockDifficulty,
  15. ast::Builtin::BlockHash,
  16. ast::Builtin::BlockNumber,
  17. ast::Builtin::Calldata,
  18. ast::Builtin::Gasleft,
  19. ast::Builtin::GasLimit,
  20. ast::Builtin::Gasprice,
  21. ast::Builtin::GetAddress,
  22. ast::Builtin::MinimumBalance,
  23. ast::Builtin::MulMod,
  24. ast::Builtin::Keccak256,
  25. ast::Builtin::Origin,
  26. ast::Builtin::ReadAddress,
  27. ast::Builtin::ReadInt8,
  28. ast::Builtin::ReadInt16LE,
  29. ast::Builtin::ReadInt32LE,
  30. ast::Builtin::ReadInt64LE,
  31. ast::Builtin::ReadInt128LE,
  32. ast::Builtin::ReadInt256LE,
  33. ast::Builtin::ReadUint16LE,
  34. ast::Builtin::ReadUint32LE,
  35. ast::Builtin::ReadUint64LE,
  36. ast::Builtin::ReadUint128LE,
  37. ast::Builtin::ReadUint256LE,
  38. ast::Builtin::Ripemd160,
  39. ast::Builtin::Sender,
  40. ast::Builtin::Slot,
  41. ast::Builtin::Sha256,
  42. ast::Builtin::Signature,
  43. ast::Builtin::SignatureVerify,
  44. ast::Builtin::Timestamp,
  45. ast::Builtin::Value,
  46. ast::Builtin::WriteAddress,
  47. ast::Builtin::WriteInt8,
  48. ast::Builtin::WriteInt16LE,
  49. ast::Builtin::WriteInt32LE,
  50. ast::Builtin::WriteInt64LE,
  51. ast::Builtin::WriteInt128LE,
  52. ast::Builtin::WriteInt256LE,
  53. ast::Builtin::WriteUint16LE,
  54. ast::Builtin::WriteUint32LE,
  55. ast::Builtin::WriteUint64LE,
  56. ast::Builtin::WriteUint128LE,
  57. ast::Builtin::WriteUint256LE,
  58. ast::Builtin::WriteString,
  59. ast::Builtin::WriteBytes,
  60. ast::Builtin::ExtendTtl,
  61. ast::Builtin::ExtendInstanceTtl,
  62. ];
  63. let output: Vec<codegen::Builtin> = vec![
  64. codegen::Builtin::Accounts,
  65. codegen::Builtin::AddMod,
  66. codegen::Builtin::ArrayLength,
  67. codegen::Builtin::Balance,
  68. codegen::Builtin::Blake2_128,
  69. codegen::Builtin::Blake2_256,
  70. codegen::Builtin::BlockCoinbase,
  71. codegen::Builtin::BlockDifficulty,
  72. codegen::Builtin::BlockHash,
  73. codegen::Builtin::BlockNumber,
  74. codegen::Builtin::Calldata,
  75. codegen::Builtin::Gasleft,
  76. codegen::Builtin::GasLimit,
  77. codegen::Builtin::Gasprice,
  78. codegen::Builtin::GetAddress,
  79. codegen::Builtin::MinimumBalance,
  80. codegen::Builtin::MulMod,
  81. codegen::Builtin::Keccak256,
  82. codegen::Builtin::Origin,
  83. codegen::Builtin::ReadFromBuffer,
  84. codegen::Builtin::ReadFromBuffer,
  85. codegen::Builtin::ReadFromBuffer,
  86. codegen::Builtin::ReadFromBuffer,
  87. codegen::Builtin::ReadFromBuffer,
  88. codegen::Builtin::ReadFromBuffer,
  89. codegen::Builtin::ReadFromBuffer,
  90. codegen::Builtin::ReadFromBuffer,
  91. codegen::Builtin::ReadFromBuffer,
  92. codegen::Builtin::ReadFromBuffer,
  93. codegen::Builtin::ReadFromBuffer,
  94. codegen::Builtin::ReadFromBuffer,
  95. codegen::Builtin::Ripemd160,
  96. codegen::Builtin::Sender,
  97. codegen::Builtin::Slot,
  98. codegen::Builtin::Sha256,
  99. codegen::Builtin::Signature,
  100. codegen::Builtin::SignatureVerify,
  101. codegen::Builtin::Timestamp,
  102. codegen::Builtin::Value,
  103. codegen::Builtin::WriteAddress,
  104. codegen::Builtin::WriteInt8,
  105. codegen::Builtin::WriteInt16LE,
  106. codegen::Builtin::WriteInt32LE,
  107. codegen::Builtin::WriteInt64LE,
  108. codegen::Builtin::WriteInt128LE,
  109. codegen::Builtin::WriteInt256LE,
  110. codegen::Builtin::WriteUint16LE,
  111. codegen::Builtin::WriteUint32LE,
  112. codegen::Builtin::WriteUint64LE,
  113. codegen::Builtin::WriteUint128LE,
  114. codegen::Builtin::WriteUint256LE,
  115. codegen::Builtin::WriteBytes,
  116. codegen::Builtin::WriteBytes,
  117. codegen::Builtin::ExtendTtl,
  118. codegen::Builtin::ExtendInstanceTtl,
  119. ];
  120. for (i, item) in input.iter().enumerate() {
  121. assert_eq!(codegen::Builtin::from(item), output[i]);
  122. }
  123. }